Norman Feske 69ac68ca98 nit_fb: prevent enlarging mode when out of RAM
This patch adds a safety check to nit_fb to ensures that nit_fb never
runs out of RAM. Should the available RAM not suffice for resizing the
virtual framebuffer to a new mode, it keeps the current mode.
2018-02-15 10:22:10 +01:00
..
2016-08-10 11:07:46 +02:00

The 'nit_fb' server provides a single session of the 'Input' and 'Framebuffer'
services by presenting a Nitpicker view at a predefined screen position. If
instantiated multiple times, it can be used to statically arrange multiple
virtual frame buffers on one physical screen. The size and screen position
of each 'nit_fb' instance can be defined via Genode's configuration mechansim
using the following attributes of the 'nit_fb' config node:

! <config xpos="100" ypos="150" width="300" height="200" origin="top_left"/>

The 'origin' attribute denotes the coordinate origin of the values specified
in the 'xpos' and 'ypos' attributes. Supported origins are "top_left",
"top_right", "bottom_left", and "bottom_right". This attribute allows one to
align the nitpicker view at any of the four screen boundaries.

The 'width' and 'height' attribute values can be negative. If so, they are
relative to the physical screen size. E.g., when using a screen size of
640x480, the effective width for a 'width' attribute value of "-100" would
be 640 - 100 = 540.

In case 'nit_fb' is used in a dynamic fashion, e.g., in combination with a
window manager, the 'initial_width' and 'initial_height' attributes must be
used to set the initial dimensions of the frame buffer rather than 'width'
and 'height'. Mixing those attributes is not supported, 'width' or 'height'
will have priority.