3348
|
|
|
Brandon Schaefer |
8 years ago
|
|
|
3347
|
|
|
Brandon Schaefer |
8 years ago
|
|
|
3346
|
|
|
Brandon Schaefer |
8 years ago
|
|
|
3345
|
|
|
Kevin DuBois |
8 years ago
|
|
|
3344
|
|
|
Alan Griffiths |
8 years ago
|
|
|
3343
|
|
New, extensible, display and enumeration API.
Hide all the structs behind the API so we can extend them with all the extra information - scale, form factor, etc - that QtMir would like to have.
This currently does not have any form of configuration setting interface, as that's not needed for QtMir's immediate needs.
Approved by mir-ci-bot, Alexandros Frantzis, Alan Griffiths, Andreas Pokorny, Kevin DuBois, Cemil Azizoglu.
|
Christopher James Ha... |
8 years ago
|
|
|
3342
|
|
|
Alan Griffiths |
8 years ago
|
|
|
3341
|
|
client: add a mir_surface_spec_set_buffer_stream() and mir_surface_spec_set_presentation_chain() function that's capable of arranging both MirBufferStreams and MirPresentationChains within the MirSurface.
This solves: 1) How to create a MirSurface with the NBS stuff at its start 2) How MirPresentationChains can scale in X/Y directions (similar to how MirBufferStreams scale) 3) How to mix and match MirPresentationChains with MirBufferStreams in one multi-stream MirSurface, if the user wishes. 4) What the display-size of a MirPresentationChains with multiple physically-sized buffers will be. 5) Allows for one PresentationChain to be displayed in different MirSurfaces, with flexibility in their scaling.
I had to think a bit about how we define our sizes to get to this point, but I think its coherent:
MirSurface sizes are set by the shell. When the shell decides to resize the client it sends the mir surface resize event. The size of their component contents (stream/chain) are something left up to the client, with sensible defaults. If the client has deviated from the default, it must manage the resize event and rearrange its composition and streams to fit within the size given to it by the server/shell.
MirPresentationChains display size are set by the client when they're associated with a MirSurface. The physical sizes are plainly the size of the MirBuffer. MirPresentationChains don't intrinsically have sizes in-and-of-themselves, as they're really just a bunch of buffers.
MirBufferStreams let the mir code manage their own physical and virtual sizes. The physical and displayed sizes largely change together by action of the server (legacy behavior), but setting scale and resize events can cause persistent or temporary differences between the two.
Approved by Andreas Pokorny, Chris Halse Rogers, mir-ci-bot, Cemil Azizoglu, PS Jenkins bot.
|
Kevin DuBois |
8 years ago
|
|
|
3340
|
|
|
Daniel van Vugt |
8 years ago
|
|
|
3339
|
|
|
Alan Griffiths |
8 years ago
|
|
|
3338
|
|
|
Alexandros Frantzis |
8 years ago
|
|
|
3337
|
|
|
Kevin DuBois |
8 years ago
|
|
|
3336
|
|
|
Daniel van Vugt |
8 years ago
|
|
|
3335
|
|
|
Alberto Aguirre |
8 years ago
|
|
|
3334
|
|
|
Daniel van Vugt |
8 years ago
|
|
|
3333
|
|
|
Alberto Aguirre |
8 years ago
|
|
|
3332
|
|
|
Andreas Pokorny |
8 years ago
|
|
|
3331
|
|
|
Kevin DuBois |
8 years ago
|
|
|
3330
|
|
|
Andreas Pokorny |
8 years ago
|
|
|
3329
|
|
|
Kevin DuBois |
8 years ago
|
|
|