Framebuffer API change

Norman Feske norman.feske at ...1...
Wed Jan 25 14:52:22 CET 2012


Hello,

as intermediate step to support the dynamic resizing of frame buffers, I
have revisited the 'Framebuffer::Session' interface and thereby broke
API compatibility.

The following changes are worth noting:

* The former 'Session::info' is no more. This function was a relict
  from the early days when we used to pass out parameters via pointers.

* The new 'mode' function returns a structured object of the type
  'Framebuffer::Mode' that contains the mode information and pixel-
  format definitions.

* The new 'mode_sigh' function enables a client to register a signal
  handler at the framebuffer session. This signal handler gets
  notified in the event of server-side mode changes.

* Via the new 'release' function, the client is able to acknowledge a
  mode change. By calling it, the client tells the server that it no
  longer uses the original framebuffer dataspace. So the server can
  replace it by a new one. After having called 'release', the client
  can obtain the dataspace for the new mode by calling 'dataspace()'
  again.

For now, the primary motivation for this change is our desire to have
resizable virtual framebuffers (i.e., adding a resizing capability to
liquid fb). In the future, we envision the same mechanism to be used to
dynamically change physical framebuffer modes as well.

For comments and technical disussion, please also refer to the relevant
issue: https://github.com/genodelabs/genode/issues/11

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list