~mir-team/mir/0.25

Viewing all changes in revision 3801.

client: attach a logical size to the MirRenderSurface to allow a driver to resize its content.

Split the parts that need to move to the driver into mir_egl_platform_shim.c, so its clear that the drivers have all the bits that they need to use MirRenderSurface. This also makes it clearer that eglCreateWindowSurface will create a MirBufferStream/MirPresentationChain, instead of relying on them being called in the right order in the example.

Also, have the egl rendersurface client be able to resize, and render a diamond shape. (flashing didn't let us see if we were resizing correctly)

We have 3 components at work here. The server, the user-client (eg, gtk, qt, or an intrepid user using the mirclient api), and the driver-client (eg, hybris shim or mesa egl driver)

The server is in charge of the logical size of the MirSurface. It notifies the user-client of a logical size change to the MirSurface.

The user-client is in charge of the logical sizes of the MirRenderSurfaces that are subsurfaces in the MirSurface. It notifies the driver-client of what the best logical size to produce is.

The driver-client is in charge of the physical size of the buffers that are submitted to the MirRenderSurface.

This MP adds the logical size notification between the user-client and the driver-client by attaching an intended logical size to the MirRenderSurface. The driver-client can still submit buffers of different sizes, but it should try to render so that the physical and logical sizes match.

Approved by mir-ci-bot, Cemil Azizoglu.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: