diff options
author | Ander Conselvan de Oliveira <[email protected]> | 2012-01-25 16:24:18 +0200 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2012-03-28 22:14:34 -0400 |
commit | fd6acb97fb9164b57daf3ca4b1bd637ca4685b64 (patch) | |
tree | ab9fe6d8cdd70cadfb4048326ea5b1c21191ca8f /src/gbm/backends/dri/gbm_driint.h | |
parent | 0d1ef1f57f9011fd2bc3354d60fb19db29af7363 (diff) |
gbm: Create hooks for dri2_loader_extension in dri backend
Pass a dri2_loader extension to the dri driver when gbm creates the dri
screen. The implementation jumps through pointers in the gbm device
so that an EGL on GBM implementation can provide the real implementations.
Diffstat (limited to 'src/gbm/backends/dri/gbm_driint.h')
-rw-r--r-- | src/gbm/backends/dri/gbm_driint.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/gbm/backends/dri/gbm_driint.h b/src/gbm/backends/dri/gbm_driint.h index 514b5a620c1..3b7db65ce9f 100644 --- a/src/gbm/backends/dri/gbm_driint.h +++ b/src/gbm/backends/dri/gbm_driint.h @@ -36,6 +36,8 @@ #include <GL/gl.h> /* dri_interface needs GL types */ #include "GL/internal/dri_interface.h" +struct gbm_dri_surface; + struct gbm_dri_device { struct gbm_drm_device base; @@ -47,12 +49,23 @@ struct gbm_dri_device { __DRIdri2Extension *dri2; __DRIimageExtension *image; __DRI2flushExtension *flush; + __DRIdri2LoaderExtension *loader; const __DRIconfig **driver_configs; - const __DRIextension *extensions[3]; + const __DRIextension *extensions[4]; __DRIimage *(*lookup_image)(__DRIscreen *screen, void *image, void *data); void *lookup_user_data; + + __DRIbuffer *(*get_buffers)(__DRIdrawable * driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *data); + void (*flush_front_buffer)(__DRIdrawable * driDrawable, void *data); + __DRIbuffer *(*get_buffers_with_format)(__DRIdrawable * driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *data); }; struct gbm_dri_bo { |