initial code for render-to-texture
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 14 Jan 2003 04:49:07 +0000 (04:49 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 14 Jan 2003 04:49:07 +0000 (04:49 +0000)
src/mesa/drivers/x11/fakeglx.c
src/mesa/drivers/x11/glxapi.c
src/mesa/drivers/x11/glxapi.h
src/mesa/drivers/x11/realglx.c

index 3027c3bb60fafb55eb3c154d36caf911b9e5d2e1..480bc0a50678a20d072d50494441a73bf534f278 100644 (file)
@@ -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;
 }
index 81170a7ef3622099dc566061d7da38c92046162c..25653f8f6f2546538c21fa9eba74b15af604473c 100644 (file)
@@ -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                                       */
 /**********************************************************************/
@@ -1068,6 +1103,15 @@ _glxapi_get_extensions(void)
 #endif
 #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
    };
@@ -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 */
 };
 
index 2bb2ff5208d2157c0e5bedbdd081426a2020fac6..2090d02d75d87882b32a37fd4c5ef3d9054e520b 100644 (file)
@@ -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);
 };
 
 
index 749984336654a9a0863ba82d413e37b1d6a1c836..8ce9720a8b3752cdd27d141ec990ad41156978af 100644 (file)
@@ -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;
 }