gears: Fail if compiled without cairo-egl
This commit is contained in:
+5
-2
@@ -207,9 +207,12 @@ draw_gears(struct gears *gears)
|
|||||||
window_get_child_allocation(gears->window, &allocation);
|
window_get_child_allocation(gears->window, &allocation);
|
||||||
window_get_allocation(gears->window, &window_allocation);
|
window_get_allocation(gears->window, &window_allocation);
|
||||||
|
|
||||||
display_acquire_window_surface(gears->d,
|
if (display_acquire_window_surface(gears->d,
|
||||||
gears->window,
|
gears->window,
|
||||||
gears->context);
|
gears->context) < 0) {
|
||||||
|
die("Unable to acquire window surface, "
|
||||||
|
"compiled without cairo-egl?\n");
|
||||||
|
}
|
||||||
|
|
||||||
glViewport(allocation.x,
|
glViewport(allocation.x,
|
||||||
window_allocation.height - allocation.height - allocation.x,
|
window_allocation.height - allocation.height - allocation.x,
|
||||||
|
|||||||
+7
-3
@@ -2211,7 +2211,7 @@ display_get_shell(struct display *display)
|
|||||||
return display->shell;
|
return display->shell;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
display_acquire_window_surface(struct display *display,
|
display_acquire_window_surface(struct display *display,
|
||||||
struct window *window,
|
struct window *window,
|
||||||
EGLContext ctx)
|
EGLContext ctx)
|
||||||
@@ -2221,10 +2221,10 @@ display_acquire_window_surface(struct display *display,
|
|||||||
cairo_device_t *device;
|
cairo_device_t *device;
|
||||||
|
|
||||||
if (!window->cairo_surface)
|
if (!window->cairo_surface)
|
||||||
return;
|
return -1;
|
||||||
device = cairo_surface_get_device(window->cairo_surface);
|
device = cairo_surface_get_device(window->cairo_surface);
|
||||||
if (!device)
|
if (!device)
|
||||||
return;
|
return -1;
|
||||||
|
|
||||||
if (!ctx) {
|
if (!ctx) {
|
||||||
if (device == display->rgb_device)
|
if (device == display->rgb_device)
|
||||||
@@ -2241,6 +2241,10 @@ display_acquire_window_surface(struct display *display,
|
|||||||
cairo_device_acquire(device);
|
cairo_device_acquire(device);
|
||||||
if (!eglMakeCurrent(display->dpy, data->surf, data->surf, ctx))
|
if (!eglMakeCurrent(display->dpy, data->surf, data->surf, ctx))
|
||||||
fprintf(stderr, "failed to make surface current\n");
|
fprintf(stderr, "failed to make surface current\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -67,7 +67,7 @@ display_get_rgb_egl_config(struct display *d);
|
|||||||
EGLConfig
|
EGLConfig
|
||||||
display_get_argb_egl_config(struct display *d);
|
display_get_argb_egl_config(struct display *d);
|
||||||
|
|
||||||
void
|
int
|
||||||
display_acquire_window_surface(struct display *display,
|
display_acquire_window_surface(struct display *display,
|
||||||
struct window *window,
|
struct window *window,
|
||||||
EGLContext ctx);
|
EGLContext ctx);
|
||||||
|
|||||||
Reference in New Issue
Block a user