summaryrefslogtreecommitdiff
path: root/clients/simple-egl.c
diff options
context:
space:
mode:
Diffstat (limited to 'clients/simple-egl.c')
-rw-r--r--clients/simple-egl.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index 808c2eea..a67ce2f8 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -277,18 +277,16 @@ toggle_fullscreen(struct window *window, int fullscreen)
struct wl_callback *callback;
window->fullscreen = fullscreen;
window->configured = 0;
if (fullscreen) {
- window->opaque = 1;
wl_shell_surface_set_fullscreen(window->shell_surface,
WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT,
0, NULL);
} else {
- window->opaque = 0;
wl_shell_surface_set_toplevel(window->shell_surface);
handle_configure(window, window->shell_surface, 0,
window->window_size.width,
window->window_size.height);
}
@@ -400,13 +398,13 @@ redraw(void *data, struct wl_callback *callback, uint32_t time)
glDisableVertexAttribArray(window->gl.pos);
glDisableVertexAttribArray(window->gl.col);
eglSwapBuffers(window->display->egl.dpy, window->egl_surface);
- if (window->opaque) {
+ if (window->opaque || window->fullscreen) {
region = wl_compositor_create_region(window->display->compositor);
wl_region_add(region, 0, 0,
window->window_size.width,
window->window_size.height);
wl_surface_set_opaque_region(window->surface, region);
wl_region_destroy(region);
@@ -591,24 +589,24 @@ usage(int error_code)
int
main(int argc, char **argv)
{
struct sigaction sigint;
struct display display = { 0 };
struct window window = { 0 };
- int i, opaque = 0;
+ int i;
window.display = &display;
display.window = &window;
window.window_size.width = 250;
window.window_size.height = 250;
for (i = 1; i < argc; i++) {
if (strcmp("-f", argv[i]) == 0)
window.fullscreen = 1;
else if (strcmp("-o", argv[i]) == 0)
- opaque = 1;
+ window.opaque = 1;
else if (strcmp("-h", argv[i]) == 0)
usage(EXIT_SUCCESS);
else
usage(EXIT_FAILURE);
}
@@ -618,16 +616,13 @@ main(int argc, char **argv)
wl_display_add_global_listener(display.display,
display_handle_global, &display);
wl_display_get_fd(display.display, event_mask_update, &display);
wl_display_iterate(display.display, WL_DISPLAY_READABLE);
- if (window.fullscreen)
- window.opaque = 1;
-
- init_egl(&display, opaque);
+ init_egl(&display, window.opaque);
create_surface(&window);
init_gl(&window);
sigint.sa_handler = signal_int;
sigemptyset(&sigint.sa_mask);
sigint.sa_flags = SA_RESETHAND;