summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-04-02 23:58:33 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2010-02-18 15:39:21 +0100
commit3db39605c77b554ec449f31f54b8bf2fe33f21f2 (patch)
treef49a69d044d8255cf9ecb1bc0573ed7940fa42d0
parentd3ee7612fd533232d0a776695e540c8a15b38ab4 (diff)
Fix after rebase against Mesa 7.4
-rw-r--r--src/mesa/drivers/dri/glamo/glamo_context.c36
-rw-r--r--src/mesa/drivers/dri/glamo/glamo_screen.c42
-rw-r--r--src/mesa/drivers/dri/glamo/glamo_state.c2
-rw-r--r--src/mesa/drivers/dri/glamo/glamo_state.h2
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);