diff options
author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-20 07:18:26 +0100 |
---|---|---|
committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-20 07:18:26 +0100 |
commit | 77e28d4a772c369777a344a6b07a22851be6ddf0 (patch) | |
tree | 9538843f9c9eff074cc59e7f6853cd0e3f630b5f /cogl/winsys | |
parent | 8e6997db449bcc58e79f9b9219f2f24427794a7f (diff) | |
download | cogl-77e28d4a772c369777a344a6b07a22851be6ddf0.tar.gz |
mir: only allow to set foreign surfaces with hardware buffer
And return a CoglBool accordingly.
Diffstat (limited to 'cogl/winsys')
-rw-r--r-- | cogl/winsys/cogl-winsys-egl-mir.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cogl/winsys/cogl-winsys-egl-mir.c b/cogl/winsys/cogl-winsys-egl-mir.c index 5173727d..c958cfc6 100644 --- a/cogl/winsys/cogl-winsys-egl-mir.c +++ b/cogl/winsys/cogl-winsys-egl-mir.c @@ -658,17 +658,23 @@ cogl_mir_renderer_get_connection (CoglRenderer *renderer) return NULL; } -void +CoglBool cogl_mir_onscreen_set_foreign_surface (CoglOnscreen *onscreen, MirSurface *surface) { CoglFramebuffer *fb; - _COGL_RETURN_IF_FAIL (mir_surface_is_valid (surface)); + MirSurfaceParameters parameters; + + _COGL_RETURN_VAL_IF_FAIL (mir_surface_is_valid (surface), FALSE); fb = COGL_FRAMEBUFFER (onscreen); - _COGL_RETURN_IF_FAIL (!fb->allocated); + _COGL_RETURN_VAL_IF_FAIL (!fb->allocated, FALSE); + + mir_surface_get_parameters (surface, ¶meters); + _COGL_RETURN_VAL_IF_FAIL (parameters.buffer_usage == mir_buffer_usage_hardware, FALSE); onscreen->foreign_surface = surface; + return TRUE; } MirSurface * |