int main(int argc, char** argv) { UApplicationOptions* options = u_application_options_new_from_cmd_line(argc, argv); UApplicationDescription* desc = u_application_description_new(); UApplicationId* id = u_application_id_new_from_stringn("UbuntuApplicationCAPI", 21); u_application_description_set_application_id(desc, id); UApplicationInstance* instance = u_application_instance_new_from_description_with_options(desc, options); UAUiSessionProperties* props = ua_ui_session_properties_new(); ua_ui_session_properties_set_type(props, U_USER_SESSION); UAUiSession* ua_ui_session_new_with_properties(props); UAUiDisplay* display = ua_ui_display_new_with_index(0); printf("Display resolution: (x,y) = (%d,%d)\n", ua_ui_display_query_horizontal_res(display), ua_ui_display_query_vertical_res(display)); UAUiWindowProperties* wprops = ua_ui_window_properties_new_for_normal_window(); ua_ui_window_properties_set_titlen(wprops, "Window 1", 8); ua_ui_window_properties_set_role(wprops, U_MAIN_ROLE); ua_ui_window_properties_set_input_cb_and_ctx(wprops, on_new_event, NULL); UAUiWindow* surface = ua_ui_window_new_for_application_with_properties(instance, wprops); View view(surface); while(true) { view.render(); view.step(); } }
static void create_window (GstMirSink * sink, struct display *display, int width, int height) { struct window *window; /* No need to create a window a second time */ if (sink->window) return; g_mutex_lock (&sink->mir_lock); window = malloc (sizeof *window); window->display = display; window->width = width; window->height = height; window->properties = ua_ui_window_properties_new_for_normal_window (); ua_ui_window_properties_set_titlen (window->properties, "MirSinkWindow", 13); ua_ui_window_properties_set_role (window->properties, 1); ua_ui_window_properties_set_input_cb_and_ctx (window->properties, NULL, NULL); GST_DEBUG ("Creating new UA window"); window->window = ua_ui_window_new_for_application_with_properties (sink->session-> app_instance, window->properties); GST_DEBUG ("Setting window geometry"); window->width = window->display->width; window->height = window->display->height; GST_DEBUG_OBJECT (sink, "width: %d, height: %d", window->width, window->height); if (height != 0 || width != 0) ua_ui_window_resize (window->window, window->width, window->height); window->egl_native_window = ua_ui_window_get_native_type (window->window); sink->window = window; g_mutex_unlock (&sink->mir_lock); }