Use screen_create_window_type() to create an application window.
To create a window:
-
Create a variable for the context and window instances and create a variable to
store the name of the window group.
screen_context_t screen_context = 0;
screen_window_t screen_window = 0;
char window_group_name[64];
-
Create a context. The context describes the relationship between the application
and the underlying windowing system.
screen_create_context(&screen_context, SCREEN_APPLICATION_CONTEXT);
-
Create a window. The screen_create_window() function takes
the window variable and the context variable that you created in the first
step.
screen_create_window(&screen_window, screen_context);
-
Retrieve the window ID, as a string, so that child windows can use it to join this window's group.
The SCREEN_PROPERTY_ID property is guaranteed to be unique within the system.
This is the name of the window group that's used by any child window wishing to join this
group. You must add any child window to a window group in order to make the child window
visible.
screen_get_window_property_cv(screen_window,\
SCREEN_PROPERTY_ID,\
sizeof(window_group_name),\
window_group_name );
-
Set the window properties. In the following step, the pixel format and usage
values are set for the window. In this example, the window will be used to
display a video.
int format = SCREEN_FORMAT_RGBA8888;
screen_set_window_property_iv(screen_window, SCREEN_PROPERTY_FORMAT, &format);
int usage = SCREEN_USAGE_NATIVE;
screen_set_window_property_iv(screen_window, SCREEN_PROPERTY_USAGE, &usage);
-
Create a window buffer. In this example, the buffer is used to store video data
for the window. The screen_create_window_buffers() function
takes the window and an integer that defines the number of buffers to create for
this window.
screen_create_window_buffers(screen_window, 1);
Although any instances created are destroyed when the
application exits, it is best practice to destroy any window,
pixmap, and context instances that you created but no longer
require.
The following code snippet is included at the end of the application above:
screen_destroy_window(screen_window);
screen_destroy_context(screen_context);