summaryrefslogtreecommitdiff
path: root/src/common/native.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/native.c')
-rw-r--r--src/common/native.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/common/native.c b/src/common/native.c
index 6e1c69a..33837e4 100644
--- a/src/common/native.c
+++ b/src/common/native.c
@@ -12,13 +12,17 @@
void *yasl_display_get_native_handle(struct yasl_display *d)
{
- return d && d->ops->display_get_native_handle ?
+ if (!d) return NULL;
+ if (d->native_handle) return d->native_handle;
+ return d->ops && d->ops->display_get_native_handle ?
d->ops->display_get_native_handle(d) : NULL;
}
void *yasl_surface_get_native_handle(struct yasl_surface *s)
{
- return s && s->display->ops->surface_get_native_handle ?
+ if (!s) return NULL;
+ if (s->native_handle) return s->native_handle;
+ return s->display && s->display->ops && s->display->ops->surface_get_native_handle ?
s->display->ops->surface_get_native_handle(s) : NULL;
}