mesa: Change "BRIAN PAUL" to "THE AUTHORS" in license text.
[mesa.git] / src / mesa / drivers / x11 / xm_api.c
index 43a97f9eb5d233c7c4e1827ab5f9348335f74347..eab4c32c1ba911d80e6c42fe65196e142a7f07de 100644 (file)
@@ -17,7 +17,7 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
@@ -64,6 +64,7 @@
 
 #include "glxheader.h"
 #include "xmesaP.h"
+#include "main/api_exec.h"
 #include "main/context.h"
 #include "main/extensions.h"
 #include "main/framebuffer.h"
@@ -71,6 +72,8 @@
 #include "main/macros.h"
 #include "main/renderbuffer.h"
 #include "main/teximage.h"
+#include "main/version.h"
+#include "main/vtxfmt.h"
 #include "glapi/glthread.h"
 #include "swrast/swrast.h"
 #include "swrast/s_renderbuffer.h"
@@ -844,15 +847,18 @@ XMesaVisual XMesaCreateVisual( XMesaDisplay *display,
       alpha_bits = v->mesa_visual.alphaBits;
    }
 
-   _mesa_initialize_visual( &v->mesa_visual,
-                            db_flag, stereo_flag,
-                            red_bits, green_bits,
-                            blue_bits, alpha_bits,
-                            depth_size,
-                            stencil_size,
-                            accum_red_size, accum_green_size,
-                            accum_blue_size, accum_alpha_size,
-                            0 );
+   if (!_mesa_initialize_visual(&v->mesa_visual,
+                                db_flag, stereo_flag,
+                                red_bits, green_bits,
+                                blue_bits, alpha_bits,
+                                depth_size,
+                                stencil_size,
+                                accum_red_size, accum_green_size,
+                                accum_blue_size, accum_alpha_size,
+                                0)) {
+      FREE(v);
+      return NULL;
+   }
 
    /* XXX minor hack */
    v->mesa_visual.level = level;
@@ -900,7 +906,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
    /* initialize with default driver functions, then plug in XMesa funcs */
    _mesa_init_driver_functions(&functions);
    xmesa_init_driver_functions(v, &functions);
-   if (!_mesa_initialize_context(mesaCtx, API_OPENGL, &v->mesa_visual,
+   if (!_mesa_initialize_context(mesaCtx, API_OPENGL_COMPAT, &v->mesa_visual,
                       share_list ? &(share_list->mesa) : (struct gl_context *) NULL,
                       &functions)) {
       free(c);
@@ -922,12 +928,12 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
    _mesa_enable_2_0_extensions(mesaCtx);
    _mesa_enable_2_1_extensions(mesaCtx);
     if (mesaCtx->Mesa_DXTn) {
-       _mesa_enable_extension(mesaCtx, "GL_EXT_texture_compression_s3tc");
-       _mesa_enable_extension(mesaCtx, "GL_S3_s3tc");
+       mesaCtx->Extensions.EXT_texture_compression_s3tc = GL_TRUE;
+       mesaCtx->Extensions.ANGLE_texture_compression_dxt = GL_TRUE; 
     }
-    _mesa_enable_extension(mesaCtx, "GL_3DFX_texture_compression_FXT1");
+    mesaCtx->Extensions.TDFX_texture_compression_FXT1 = GL_TRUE;
 #if ENABLE_EXT_timer_query
-    _mesa_enable_extension(mesaCtx, "GL_EXT_timer_query");
+    mesaCtx->Extensions.EXT_timer_query = GL_TRUE;
 #endif
 
 
@@ -958,6 +964,12 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
 
    _mesa_meta_init(mesaCtx);
 
+   _mesa_compute_version(mesaCtx);
+
+    /* Exec table initialization requires the version to be computed */
+   _mesa_initialize_dispatch_tables(mesaCtx);
+   _mesa_initialize_vbo_vtxfmt(mesaCtx);
+
    return c;
 }