487 views
in System Integration by

Hello,

We are writing an application using generic platform package on embedded linux.

It is required to display the exact same content to two devices simultaneously. One is local LCD and another is HDMI.

Our board supplier, unfortunately, tried to display one frame buffer to two devices at lower level but failed to reach the goal.

So we are trying to find some other ways.

 

As far as I have seen, the following issue is very similar to ours, but it could be applied for OpenGL ES 2.0 only.

https://ask.embedded-wizard.de/367/dual-screen-output-linux-opengl-es2-0?show=367#q367

 

Is it possible to display to two devices using generic platform package in the same way as above?

The frame buffers are mapping to "/dev/fb0" for local LCD and "/dev/fb1" for HDMI respectively.

 

Best Regards,

Kangmin

1 Answer

0 votes
by

Hello Kangmin,

of course, this should be possible (I did not verify it - but I'm very confident that it will work...).

You can use the option EW_USE_OFFSCREEN_BUFFER in order to prepare the content of the entire GUI in a separate off-screen buffer.

Then you can adapt the function GenericEndUpdate() that you will find in the module ewextgfx.c of your Generic Platform Package in order to copy the content into your both framebuffers instead of one framebuffer.

Best regards,

Manfred.

by
Hi Manfred

 

Thank you for your input.

It helped me a lot for understanding what I should do.

 

Best Regards,

Kangmin
by
Hi Manfred,

I have a couple of questions.
Those devices might have different resolutions. One resolution is 1280x800 and another is 1280x720.
In this case, the way of separating off-screen buffer can be used?

I'd like to create two viewports and use them because, in terms of maintenance, it would be better than modifying GenericEndUpdate() in person.
If it is ok, do you think there is no problem while copying the off-screen buffer to the framebuffer?
(In other words, is it safe to copy between two buffers?)

Lastly, we don't want the content to be different between two devices.
I think two options come to mind.
One is to shrink it before copying to framebuffer. But I don't think this is practical use.
The other one is to truncate it before copying to framebuffer. But we don't want to do it.
Do you have any idea on this issue?

Best Regards,
Kangmin
by
Hi Kangmin,

two viewports means, that you have to make the update twice - however Mosaic is not aware of this and will not repeat the drawing operations for the second viewport.

The module ewextgfx.c is intended to be adapted in case of a generic platform. Within GenericEndUpdate() you can take care to clip or limit the copy operation to the smaller framebuffer.

Concerning the two resolutions: Maybe it makes sense to create the UI in 1280x720 and copy it into the 1280x800 framebuffer centered?

Best regards,

Manfred.

Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint

...