summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2003-01-14 04:49:07 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2003-01-14 04:49:07 +0000
commit3c5bfac63bcbc4028c552fe74d904e6a3416ff36 (patch)
treeb6bda8011e2087d521be2c6481a414d06836849f
parente1e446bf775a7f2ea93b4e54c7748ef603500977 (diff)
initial code for render-to-texture
-rw-r--r--src/mesa/drivers/x11/fakeglx.c37
-rw-r--r--src/mesa/drivers/x11/glxapi.c53
-rw-r--r--src/mesa/drivers/x11/glxapi.h11
-rw-r--r--src/mesa/drivers/x11/realglx.c11
4 files changed, 100 insertions, 12 deletions
diff --git a/src/mesa/drivers/x11/fakeglx.c b/src/mesa/drivers/x11/fakeglx.c
index 3027c3bb60..480bc0a506 100644
--- a/src/mesa/drivers/x11/fakeglx.c
+++ b/src/mesa/drivers/x11/fakeglx.c
@@ -1,4 +1,4 @@
-/* $Id: fakeglx.c,v 1.77 2002/11/18 15:11:49 brianp Exp $ */
+/* $Id: fakeglx.c,v 1.78 2003/01/14 04:49:07 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -81,7 +81,8 @@
"GLX_EXT_visual_rating " \
"GLX_SGI_video_sync " \
"GLX_SGIX_fbconfig " \
- "GLX_SGIX_pbuffer"
+ "GLX_SGIX_pbuffer" \
+ "GLX_ARB_render_texture"
/* Silence compiler warnings */
@@ -2615,7 +2616,7 @@ Fake_glXSet3DfxModeMESA( int mode )
-/*** AGP memory allocation ***/
+/*** GLX_NV_vertex_array range ***/
static void *
Fake_glXAllocateMemoryNV( GLsizei size,
GLfloat readFrequency,
@@ -2637,7 +2638,7 @@ Fake_glXFreeMemoryNV( GLvoid *pointer )
}
-/*** GLX_MESA_agp_offset */
+/*** GLX_MESA_agp_offset ***/
static GLuint
Fake_glXGetAGPOffsetMESA( const GLvoid *pointer )
@@ -2647,6 +2648,29 @@ Fake_glXGetAGPOffsetMESA( const GLvoid *pointer )
}
+/*** GLX_ARB_render_texture ***/
+
+static Bool
+Fake_glXBindTexImageARB( Display *dpy, GLXPbuffer pbuffer, int buffer )
+{
+ return False;
+}
+
+
+static Bool
+Fake_glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer )
+{
+ return False;
+}
+
+
+static Bool
+Fake_glXDrawableAttribARB( Display *dpy, GLXDrawable draw, const int *attribList )
+{
+ return False;
+}
+
+
extern struct _glxapi_table *_mesa_GetGLXDispatchTable(void);
struct _glxapi_table *_mesa_GetGLXDispatchTable(void)
@@ -2792,5 +2816,10 @@ struct _glxapi_table *_mesa_GetGLXDispatchTable(void)
/*** GLX_MESA_agp_offset ***/
glx.GetAGPOffsetMESA = Fake_glXGetAGPOffsetMESA;
+ /*** GLX_ARB_render_texture ***/
+ glx.BindTexImageARB = Fake_glXBindTexImageARB;
+ glx.ReleaseTexImageARB = Fake_glXReleaseTexImageARB;
+ glx.DrawableAttribARB = Fake_glXDrawableAttribARB;
+
return &glx;
}
diff --git a/src/mesa/drivers/x11/glxapi.c b/src/mesa/drivers/x11/glxapi.c
index 81170a7ef3..25653f8f6f 100644
--- a/src/mesa/drivers/x11/glxapi.c
+++ b/src/mesa/drivers/x11/glxapi.c
@@ -1,4 +1,4 @@
-/* $Id: glxapi.c,v 1.31 2002/11/18 15:11:52 brianp Exp $ */
+/* $Id: glxapi.c,v 1.32 2003/01/14 04:49:07 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -988,7 +988,6 @@ Bool glXSet3DfxModeMESA(int mode)
-
/*** GLX_NV_vertex_array_range ***/
void *
@@ -1032,6 +1031,42 @@ glXGetAGPOffsetMESA( const GLvoid *pointer )
}
+/*** GLX_ARB_render_Texture ***/
+
+Bool
+glXBindTexImageARB( Display *dpy, GLXPbuffer pbuffer, int buffer )
+{
+ struct _glxapi_table *t;
+ GET_DISPATCH(dpy, t);
+ if (!t)
+ return False;
+ return (t->BindTexImageARB)(dpy, pbuffer, buffer);
+}
+
+
+Bool
+glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer )
+{
+ struct _glxapi_table *t;
+ GET_DISPATCH(dpy, t);
+ if (!t)
+ return False;
+ return (t->ReleaseTexImageARB)(dpy, pbuffer, buffer);
+}
+
+
+Bool
+glXDrawableAttribARB( Display *dpy, GLXDrawable draw, const int *attribList )
+{
+ struct _glxapi_table *t;
+ GET_DISPATCH(dpy, t);
+ if (!t)
+ return False;
+ return (t->DrawableAttribARB)(dpy, draw, attribList);
+}
+
+
+
/**********************************************************************/
/* GLX API management functions */
/**********************************************************************/
@@ -1069,6 +1104,15 @@ _glxapi_get_extensions(void)
#ifdef GLX_MESA_set_3dfx_mode
"GLX_MESA_set_3dfx_mode",
#endif
+#ifdef GLX_SGIX_fbconfig
+ "GLX_SGIX_fbconfig",
+#endif
+#ifdef GLX_SGIX_pbuffer
+ "GLX_SGIX_pbuffer",
+#endif
+#ifdef GLX_ARB_render_texture
+ "GLX_ARB_render_texture",
+#endif
NULL
};
return extensions;
@@ -1248,6 +1292,11 @@ static struct name_address_pair GLX_functions[] = {
/*** GLX_MESA_agp_offset ***/
{ "glXGetAGPOffsetMESA", (GLvoid *) glXGetAGPOffsetMESA },
+ /*** GLX_ARB_render_texture ***/
+ { "glXBindTexImageARB", (GLvoid *) glXBindTexImageARB },
+ { "glXReleaseTexImageARB", (GLvoid *) glXReleaseTexImageARB },
+ { "glXDrawableAttribARB", (GLvoid *) glXDrawableAttribARB },
+
{ NULL, NULL } /* end of list */
};
diff --git a/src/mesa/drivers/x11/glxapi.h b/src/mesa/drivers/x11/glxapi.h
index 2bb2ff5208..2090d02d75 100644
--- a/src/mesa/drivers/x11/glxapi.h
+++ b/src/mesa/drivers/x11/glxapi.h
@@ -1,10 +1,10 @@
-/* $Id: glxapi.h,v 1.14 2002/10/08 23:16:26 brianp Exp $ */
+/* $Id: glxapi.h,v 1.15 2003/01/14 04:49:07 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 4.0.2
+ * Version: 5.1
*
- * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -205,6 +205,11 @@ struct _glxapi_table {
/*** GLX_MESA_agp_offset ***/
GLuint (*GetAGPOffsetMESA)( const GLvoid *pointer );
+
+ /*** GLX_ARB_render_texture ***/
+ Bool (*BindTexImageARB)(Display *dpy, GLXPbuffer pbuffer, int buffer);
+ Bool (*ReleaseTexImageARB)(Display *dpy, GLXPbuffer pbuffer, int buffer);
+ Bool (*DrawableAttribARB)(Display *dpy, GLXDrawable draw, const int *attribList);
};
diff --git a/src/mesa/drivers/x11/realglx.c b/src/mesa/drivers/x11/realglx.c
index 7499843366..8ce9720a8b 100644
--- a/src/mesa/drivers/x11/realglx.c
+++ b/src/mesa/drivers/x11/realglx.c
@@ -1,10 +1,10 @@
-/* $Id: realglx.c,v 1.6 2002/10/08 23:16:27 brianp Exp $ */
+/* $Id: realglx.c,v 1.7 2003/01/14 04:49:07 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.5
+ * Version: 5.1
*
- * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -177,5 +177,10 @@ _real_GetGLXDispatchTable(void)
/*** GLX_MESA_agp_offset ***/
glx.GetAGPOffsetMESA = _real_glXGetAGPOffsetMESA;
+ /*** GLX_ARB_render_texture ***/
+ glx.BindTexImageARB = _real_glXBindTexImageARB;
+ glx.ReleaseTexImageARB = _real_glXReleaseTexImageARB;
+ glx.DrawableAttribARB = _real_glXDrawableAttribARB;
+
return &glx;
}