From 3db39605c77b554ec449f31f54b8bf2fe33f21f2 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 2 Apr 2009 23:58:33 +0100 Subject: Fix after rebase against Mesa 7.4 --- src/mesa/drivers/dri/glamo/glamo_context.c | 36 ++++++++++++++++++++++++- src/mesa/drivers/dri/glamo/glamo_screen.c | 42 +++++++++++++++++++++++++++--- src/mesa/drivers/dri/glamo/glamo_state.c | 2 +- src/mesa/drivers/dri/glamo/glamo_state.h | 2 +- 4 files changed, 76 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/glamo/glamo_context.c b/src/mesa/drivers/dri/glamo/glamo_context.c index d4ea7f376b..42251470c0 100644 --- a/src/mesa/drivers/dri/glamo/glamo_context.c +++ b/src/mesa/drivers/dri/glamo/glamo_context.c @@ -37,6 +37,37 @@ #include "glamo_state.h" +#define DRIVER_DATE "20090402" + + +static const GLubyte *glamoGetString(GLcontext *ctx, GLenum name) +{ + static char buffer[128]; + + switch (name) { + case GL_VENDOR: + return (GLubyte *)"Thomas White"; + case GL_RENDERER: { + driGetRendererString(buffer, "glamo", DRIVER_DATE, 0); + return (GLubyte *) buffer; + } + default: + return 0; + } +} + + +static void glamoBufferSize(GLframebuffer *buffer, + GLuint *width, GLuint *height) +{ + GET_CURRENT_CONTEXT(ctx); + glamoContextPtr glamesa = GLAMO_CONTEXT(ctx); + + *width = glamesa->driDrawable->w; + *height = glamesa->driDrawable->h; +} + + GLboolean glamoCreateContext(const __GLcontextModes *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate) @@ -68,6 +99,9 @@ GLboolean glamoCreateContext(const __GLcontextModes *glVisual, glamoScreen = context->glamoScreen = (glamoScreenPtr)sPriv->private; + ctx->Driver.GetString = glamoGetString; + ctx->Driver.GetBufferSize = glamoBufferSize; + context->driContext = driContextPriv; context->driScreen = sPriv; context->driDrawable = NULL; @@ -87,7 +121,7 @@ GLboolean glamoCreateContext(const __GLcontextModes *glVisual, _swrast_allow_vertex_fog(ctx, GL_FALSE); _tnl_allow_pixel_fog(ctx, GL_TRUE); _tnl_allow_vertex_fog(ctx, GL_FALSE); - + glamoInitStateFuncs(ctx); return GL_TRUE; 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; */ diff --git a/src/mesa/drivers/dri/glamo/glamo_state.c b/src/mesa/drivers/dri/glamo/glamo_state.c index 0abd6523fb..eaf65ac8f2 100644 --- a/src/mesa/drivers/dri/glamo/glamo_state.c +++ b/src/mesa/drivers/dri/glamo/glamo_state.c @@ -23,7 +23,7 @@ */ -#include "context.h" +#include "main/context.h" void glamoClear(GLcontext *ctx, GLbitfield mask) diff --git a/src/mesa/drivers/dri/glamo/glamo_state.h b/src/mesa/drivers/dri/glamo/glamo_state.h index 09a34f5662..98f0b97e48 100644 --- a/src/mesa/drivers/dri/glamo/glamo_state.h +++ b/src/mesa/drivers/dri/glamo/glamo_state.h @@ -25,7 +25,7 @@ #ifndef __GLAMO_STATE_H #define __GLAMO_STATE_H -#include "context.h" +#include "main/context.h" extern void glamoInitStateFuncs(GLcontext *ctx); -- cgit v1.2.3