diff options
Diffstat (limited to 'src/mesa/drivers/dri/glamo/glamo_screen.c')
-rw-r--r-- | src/mesa/drivers/dri/glamo/glamo_screen.c | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/glamo/glamo_screen.c b/src/mesa/drivers/dri/glamo/glamo_screen.c index 7ec44ac161..1701eac2c0 100644 --- a/src/mesa/drivers/dri/glamo/glamo_screen.c +++ b/src/mesa/drivers/dri/glamo/glamo_screen.c @@ -27,8 +27,8 @@ #include "utils.h" #include "xmlconfig.h" #include "GL/internal/dri_interface.h" -#include "framebuffer.h" -#include "renderbuffer.h" +#include "main/framebuffer.h" +#include "main/renderbuffer.h" #include "glamo_screen.h" #include "glamo_context.h" @@ -108,6 +108,42 @@ static const __DRIconfig **glamoInitScreen(__DRIscreenPrivate *sPriv) } +static const __DRIconfig **glamoInitScreen2(__DRIscreenPrivate *sPriv) +{ + __DRIconfig **configs; + uint8_t depth_bits_array[2]; + uint8_t stencil_bits_array[2]; + static const GLenum db_modes[] = { GLX_SWAP_COPY_OML, GLX_NONE }; + + /* Driver initialisation */ + if ( glamoInitDriver(sPriv) ) { + return NULL; + } + + /* Screen-specific initialisation */ + sPriv->private = glamoCreateScreen(sPriv); + if ( !sPriv->private ) { + glamoDestroyScreen(sPriv); + return NULL; + } + + depth_bits_array[0] = 0; + stencil_bits_array[0] = 0; + depth_bits_array[1] = 16; + stencil_bits_array[1] = 0; + + configs = driCreateConfigs(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, + depth_bits_array, stencil_bits_array, 2, + db_modes, 2); + + if ( configs == NULL ) { + fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, __LINE__); + return NULL; + } + + return (const __DRIconfig **)configs; +} + static GLboolean glamoCreateBuffer(__DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, const __GLcontextModes *glVis, @@ -164,7 +200,7 @@ const struct __DriverAPIRec driDriverAPI = { .SwapBuffersMSC = NULL, .CopySubBuffer = NULL, .GetDrawableMSC = NULL, /* Not used */ - .InitScreen2 = NULL /* For DRI2 */ + .InitScreen2 = glamoInitScreen2, /* For DRI2 */ }; /* kate: space-indent on; indent-width 3; mixedindent off; indent-mode cstyle; */ |