Properties that are associated with Screen API objects
#include <screen/screen.h>
enum { SCREEN_PROPERTY_ALPHA_MODE = 1, SCREEN_PROPERTY_GAMMA = 2, SCREEN_PROPERTY_BRIGHTNESS = 3, SCREEN_PROPERTY_BUFFER_COUNT = 4, SCREEN_PROPERTY_BUFFER_SIZE = 5, SCREEN_PROPERTY_BUTTONS = 6, SCREEN_PROPERTY_CLASS = 7, SCREEN_PROPERTY_COLOR_SPACE = 8, SCREEN_PROPERTY_CONTRAST = 9, SCREEN_PROPERTY_DEVICE = 10, SCREEN_PROPERTY_DISPLAY = 11, SCREEN_PROPERTY_EGL_HANDLE = 12, SCREEN_PROPERTY_FLIP = 13, SCREEN_PROPERTY_FORMAT = 14, SCREEN_PROPERTY_FRONT_BUFFER = 15, SCREEN_PROPERTY_GLOBAL_ALPHA = 16, SCREEN_PROPERTY_PIPELINE = 17, SCREEN_PROPERTY_GROUP = 18, SCREEN_PROPERTY_HUE = 19, SCREEN_PROPERTY_ID_STRING = 20, SCREEN_PROPERTY_INPUT_VALUE = 21, SCREEN_PROPERTY_INTERLACED = 22, SCREEN_PROPERTY_JOG_COUNT = 23, SCREEN_PROPERTY_KEY_CAP = 24, SCREEN_PROPERTY_FLAGS = 25, SCREEN_PROPERTY_MODIFIERS = 26, SCREEN_PROPERTY_SCAN = 27, SCREEN_PROPERTY_SYM = 28, SCREEN_PROPERTY_MIRROR = 29, SCREEN_PROPERTY_NAME = 30, SCREEN_PROPERTY_OWNER_PID = 31, SCREEN_PROPERTY_PHYSICALLY_CONTIGUOUS = 32, SCREEN_PROPERTY_PLANAR_OFFSETS = 33, SCREEN_PROPERTY_POINTER = 34, SCREEN_PROPERTY_POSITION = 35, SCREEN_PROPERTY_PROTECTED = 36, SCREEN_PROPERTY_RENDER_BUFFERS = 37, SCREEN_PROPERTY_ROTATION = 38, SCREEN_PROPERTY_SATURATION = 39, SCREEN_PROPERTY_SIZE = 40, SCREEN_PROPERTY_SOURCE_POSITION = 41, SCREEN_PROPERTY_SOURCE_SIZE = 42, SCREEN_PROPERTY_STATIC = 43, SCREEN_PROPERTY_STRIDE = 44, SCREEN_PROPERTY_SWAP_INTERVAL = 45, SCREEN_PROPERTY_TRANSPARENCY = 46, SCREEN_PROPERTY_TYPE = 47, SCREEN_PROPERTY_USAGE = 48, SCREEN_PROPERTY_USER_DATA = 49, SCREEN_PROPERTY_USER_HANDLE = 50, SCREEN_PROPERTY_VISIBLE = 51, SCREEN_PROPERTY_WINDOW = 52, SCREEN_PROPERTY_RENDER_BUFFER_COUNT = 53, SCREEN_PROPERTY_ZORDER = 54, SCREEN_PROPERTY_PHYSICAL_ADDRESS = 55, SCREEN_PROPERTY_SCALE_QUALITY = 56, SCREEN_PROPERTY_SENSITIVITY = 57, SCREEN_PROPERTY_SCALE_MODE = 58, SCREEN_PROPERTY_DISPLAY_COUNT = 59, SCREEN_PROPERTY_DISPLAYS = 60, SCREEN_PROPERTY_CBABC_MODE = 61, SCREEN_PROPERTY_FLOATING = 63, SCREEN_PROPERTY_ATTACHED = 64, SCREEN_PROPERTY_DETACHABLE = 65, SCREEN_PROPERTY_NATIVE_RESOLUTION = 66, SCREEN_PROPERTY_PROTECTION_ENABLE = 67, SCREEN_PROPERTY_SOURCE_CLIP_POSITION = 68, SCREEN_PROPERTY_PHYSICAL_SIZE = 69, SCREEN_PROPERTY_FORMAT_COUNT = 70, SCREEN_PROPERTY_FORMATS = 71, SCREEN_PROPERTY_SOURCE_CLIP_SIZE = 72, SCREEN_PROPERTY_TOUCH_ID = 73, SCREEN_PROPERTY_VIEWPORT_POSITION = 74, SCREEN_PROPERTY_VIEWPORT_SIZE = 75, SCREEN_PROPERTY_TOUCH_ORIENTATION = 76, SCREEN_PROPERTY_TOUCH_PRESSURE = 77, SCREEN_PROPERTY_TIMESTAMP = 78, SCREEN_PROPERTY_SEQUENCE_ID = 79, SCREEN_PROPERTY_IDLE_MODE = 80, SCREEN_PROPERTY_IDLE_STATE = 81, SCREEN_PROPERTY_KEEP_AWAKES = 82, SCREEN_PROPERTY_IDLE_TIMEOUT = 83, SCREEN_PROPERTY_FOCUS = 84, SCREEN_PROPERTY_MTOUCH_FOCUS = 85, SCREEN_PROPERTY_POINTER_FOCUS = 86, SCREEN_PROPERTY_ID = 87, SCREEN_PROPERTY_POWER_MODE = 88, SCREEN_PROPERTY_MODE_COUNT = 89, SCREEN_PROPERTY_MODE = 90, SCREEN_PROPERTY_CLIP_POSITION = 91, SCREEN_PROPERTY_CLIP_SIZE = 92, SCREEN_PROPERTY_COLOR = 93, SCREEN_PROPERTY_MOUSE_WHEEL = 94, SCREEN_PROPERTY_CONTEXT = 95, SCREEN_PROPERTY_DEBUG = 96, SCREEN_PROPERTY_ALTERNATE = 97, SCREEN_PROPERTY_DEVICE_COUNT = 98, SCREEN_PROPERTY_OBJECT_TYPE = 100, SCREEN_PROPERTY_DEVICES = 101, SCREEN_PROPERTY_KEYMAP_PAGE = 102, SCREEN_PROPERTY_SELF_LAYOUT = 103, SCREEN_PROPERTY_GROUP_COUNT = 104, SCREEN_PROPERTY_GROUPS = 105, SCREEN_PROPERTY_PIXMAP_COUNT = 106, SCREEN_PROPERTY_PIXMAPS = 107, SCREEN_PROPERTY_WINDOW_COUNT = 108, SCREEN_PROPERTY_WINDOWS = 109, SCREEN_PROPERTY_KEYMAP = 110, SCREEN_PROPERTY_MOUSE_HORIZONTAL_WHEEL = 111, SCREEN_PROPERTY_TOUCH_TYPE = 112, SCREEN_PROPERTY_NATIVE_IMAGE = 113, SCREEN_PROPERTY_SCALE_FACTOR = 114, SCREEN_PROPERTY_DPI = 115, SCREEN_PROPERTY_METRIC_COUNT = 116, SCREEN_PROPERTY_METRICS = 117, SCREEN_PROPERTY_BUTTON_COUNT = 118, SCREEN_PROPERTY_VENDOR = 119, SCREEN_PROPERTY_PRODUCT = 120, SCREEN_PROPERTY_BRUSH_CLIP_POSITION = 121, SCREEN_PROPERTY_BRUSH_CLIP_SIZE = 122, SCREEN_PROPERTY_ANALOG0 = 123, SCREEN_PROPERTY_ANALOG1 = 124, SCREEN_PROPERTY_BRUSH = 125, SCREEN_PROPERTY_MAXIMUM_TOUCH_ID = 126, SCREEN_PROPERTY_TRANSFORM = 127, SCREEN_PROPERTY_KEY_ALTERNATE_SYM = 128, SCREEN_PROPERTY_TECHNOLOGY = 129, SCREEN_PROPERTY_PERMISSIONS = 131, SCREEN_PROPERTY_STICKY_MODIFIERS = 132, SCREEN_PROPERTY_INTENSITY = 133, SCREEN_PROPERTY_SESSION = 137, SCREEN_PROPERTY_GESTURE_PARAMETERS = 139, SCREEN_PROPERTY_DURATION = 140, SCREEN_PROPERTY_DISPLACEMENT = 141, SCREEN_PROPERTY_SPEED = 142, SCREEN_PROPERTY_ACCELERATION = 143, SCREEN_PROPERTY_BALLISTIC_COEFFICIENTS = 144, SCREEN_PROPERTY_BUTTON_MAP = 146, SCREEN_PROPERTY_CURSOR = 149, SCREEN_PROPERTY_MIRROR_MODE = 150, SCREEN_PROPERTY_EVENT = 151, SCREEN_PROPERTY_MANAGER_STRING = 152, SCREEN_PROPERTY_SUBTYPE = 153, SCREEN_PROPERTY_STATUS = 154, SCREEN_PROPERTY_FRONT_BUFFER_COUNT = 156, SCREEN_PROPERTY_STREAM = 157, SCREEN_PROPERTY_PARENT = 158, SCREEN_PROPERTY_RED_GAMMA_CURVE = 159, SCREEN_PROPERTY_GREEN_GAMMA_CURVE = 160, SCREEN_PROPERTY_BLUE_GAMMA_CURVE = 161, SCREEN_PROPERTY_PIXMAP = 162, SCREEN_PROPERTY_SESSION_COUNT = 163, SCREEN_PROPERTY_SESSIONS = 164, SCREEN_PROPERTY_STREAM_COUNT = 165, SCREEN_PROPERTY_STREAMS = 166, SCREEN_PROPERTY_KEY_PAGE = 167, SCREEN_PROPERTY_BUFFERS = 168, SCREEN_PROPERTY_REPEAT_DELAY = 169, SCREEN_PROPERTY_REPEAT_RATE = 170, SCREEN_PROPERTY_FRONT_BUFFERS = 171, SCREEN_PROPERTY_ANALOG_COUNT = 172, SCREEN_PROPERTY_WINDOW_MANAGER_ID = 173, SCREEN_PROPERTY_FD = 174, SCREEN_MAX_PROPERTY };
rw-r--r--
r--rw-rw-
rw-r--r--
rw-r--r--
rw-r--r--
r--r--r--
rw-rw----
rw-r--r--
rw-r--r--
r--r--r--
rw-rw----
r--r--r--
rw-rw----
rw-r--r--
r--r--r--
rw-rw-r--
It's important to understand the difference between pipeline ordering and the z-ordering of windows. Pipeline ordering refers to the hardware layering that is specific to your target. The z-ordering of windows refers to the layering Screen uses to arrange windows. Your application can specify both the pipeline and the z-order.
If your application assigns pipelines manually (by means of setting the SCREEN_PROPERTY_PIPELINE property), Screen respects the pipeline assignment. However, your application must ensure that the z-order values make sense with regard to the pipeline order of your target hardware. Your pipeline assignment takes precedence over z-ordering operations in Screen. Set the SCREEN_USAGE_OVERLAY flag in SCREEN_PROPERTY_USAGE if you're manually assigning the pipeline.
For example, if you assign a framebuffer to the top layer in a graphics configuration on a non-composited window which doesn't have the correct z-order set, a new window (no matter its z-order) can't be blended above the framebuffer. The same constraint applies if you assign a framebuffer to the bottom layer of a graphics configuration; your application's window can't be blended below the framebuffer. In these cases, Screen punches holes in the framebuffer in order to preserve the z-order.
To set the pipeline on another display, you need to first set the display and then the pipeline.
Screen respects your pipeline assignment unless the option -strict-pipelines is set to 0 in your configuration file. In this case, Screen uses a composition strategy that aims to optimize for the current scene while taking memory bandwidth and available pipelines into consideration. That is, if your visible application windows can't be displayed on the pipeline to which it was assigned, Screen uses other composition paths.
When retrieving or setting this property type, ensure that you have sufficient storage for one integer.
rw-rw-r--
When retrieving or setting this property type, ensure that you have sufficient storage according to the definition of the property for the specific API object. When you retrieve this property, as a pointer, at any point in your application, Screen locally allocates resources to track this group. You must call screen_destroy_group() to free up these resources when you've finished using this group. Also note that Screen permits a maximum size of 63 bytes and a terminating null character (64 bytes in total) for SCREEN_PROPERTY_GROUP as a name.
r--r--r--
rw-r--r--
rw-r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-r--r--
rw-rw-r--
rw-r--r--
r--r--r--
rw-r--r--
rw-r--r--
r--r--r--
rw-rw-r--
r--r--r--
r--r--r--
rw-rw-r--
rw-r--r--
rw-rw-r--
rw-rw-r--
rw-rw-r--
rw-r--r--
rw-r--r--
rw-r--r--
rw-r--r--
r--rw-r--
rw-r--r--
rw-r--r--
rw-r--r--
rw-rw-r--
When retrieving or setting this property type, ensure that you have sufficient storage for one void pointer. When you retrieve this property at any point in your application, Screen locally allocates resources to track this window. You must call screen_destroy_window() to free up these resources when you've finished using this window.
rw-rw----
rw-r--r--
rw-rw-r--
r--rw-r--
rw-rw-r--
rw-r--r--
r--r--r--
rw-r--r--
r--r--r--
r--r--r--
rw-rw-r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-r--r--
rw-r--r--
r--r--r--
r--r--r--
rw-r--r--
r--r--r--
rw-r--r--
rw-r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-r--r--
r--r--r--
r--r--r--
rw-r--r--
r--r--r--
r--r--r--
r--rw-r--
r--r--r--
rw-r--r--
r--r--r--
rw-rw----
rw-rw-r--
rw-rw-r--
rw-r--r--
r--r--r--
r--r--r--
rw-rw----
rw-r--r--
r--r--r--
r--r--r--
r--r--r--
rw-rw----
r--rw-r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-rw----
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-r--r--
r--r--r--
r--r--rw-
r--r--r--
rw-r--r--
rw-r--r--
rw-r--r--
rw-r--r--
r--r--r--
r--r--r--
rw-r--r--
rw-r--r--
r--r--r--
r--r--r--
r--r--r--
rw-rw----
r--r--r--
rw-r--r--
When retrieving or setting this property type, ensure that you have sufficient storage for one void pointer. When you retrieve this property at any point in your application, Screen locally allocates resources to track this session. You must call screen_destroy_session() to free up these resources when you've finished using this session.
rw-rw----
rw-r--r--
r--r--r--
r--r--r--
rw-rw-r--
rw-rw-r--
Ballistic filtering minimizes the noise normally seen on successive touch events that follow a low-speed ballistic trajectory. The lower the speed of the ballistic movement (e.g., a stationary finger), the more gain reduction is applied to the speed of the movement. By doing so, the result is a solid touch with no noise. Screen passes touch events through ballistic filtering to reduce jitter. The first 6 integers of this property ([A, B, C, D, E, F, ...]) configure a digital filter while the remaining 10 integers are currently unused, but are reserved for future filter configurations. The coordinates of the latest touch event are generated by calculating the dot product of the most recent 6 touch events and the 6 ballistic coefficients that are specified in this property.
The coefficients are in fixed-point notation that's based on the scaling factor SCREEN_PROPERTY_SCALE_FACTOR. For example, if SCREEN_PROPERTY_SCALE_FACTOR is 16, then the coefficients are in 16.16 fixed-point notation (i.e., a value of 1 is expressed by 65536). When you set the SCREEN_PROPERTY_SCALE_FACTOR property of a device, prior to retrieving this property, you affect the values of these ballistic coefficients.
rw-r--r--
rw-r--r--
rw-r--r--
rw-rw----
rw-r--r--
By managed, we mean that the manager is permitted to set the object's owner properties, in addition to being able to set the object's parent properties. For example, being managed means that the manager can set the size, position, and buffer size for an object.
The manager defines the contents of the string. After the object sets this property, the object is owned by the parent or the window manager. The manager, or parent, continues to own this object until SCREEN_PROPERTY_MANAGER_STRING is set again - this time by the manager, or parent. The original owner receives a SCREEN_EVENT_PROPERTY event each time this property is set. The ownership returns to the original owner. An empty string received by the owner in the SCREEN_EVENT_PROPERTY event indicates either a failure, or that the manager, or parent, has declined the management request.
For example, let's say the owner of a window wants the window to be managed. The owner can either call screen_manage_window() or set this property. After setting this property, the window is managed by its parent, or the window manager, until the owner receives a SCREEN_EVENT_PROPERTY event with SCREEN_PROPERTY_MANAGER_STRING as the property.
rw-r--r--
r--r--r--
r--r--rw-
r--r--r--
When retrieving or setting this property type, ensure that you have sufficient storage for one void pointer. When you retrieve this property at any point in your application, Screen locally allocates resources to track this stream. You must call screen_destroy_stream() to free up these resources when you've finished using this stream.
r--r--r--
r--r--r--
r--rw-rw-
r--rw-rw-
r--rw-rw-
When retrieving or setting this property type, ensure that you have sufficient storage for one void pointer. When you retrieve this property at any point in your application, Screen locally allocates resources to track this pixmap. You must call screen_destroy_pixmap() to free up these resources when you've finished using this pixmap.
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
r--r--r--
rw-rw-r--
rw-rw-r--
r--r--r--
r--r--r--
r--r--r--
rw-r--r--