fixed pointer arithmetic error in glCopyPixels
[mesa.git] / src / mesa / main / extensions.c
index fc26efbb62f370693def33f051dd912bfc9d6782..9f0542395c8d1bdb13a95855f498a27066979b60 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: extensions.c,v 1.61 2001/05/29 15:23:49 brianp Exp $ */
+/* $Id: extensions.c,v 1.70 2002/03/13 04:33:16 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  4.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"),
@@ -56,16 +56,21 @@ static struct {
    const char *name;
    int flag_offset;
 } default_extensions[] = {
+   { OFF, "GL_ARB_depth_texture",              F(ARB_depth_texture) },
    { OFF, "GL_ARB_imaging",                    F(ARB_imaging) },
    { OFF, "GL_ARB_multisample",                F(ARB_multisample) },
    { OFF, "GL_ARB_multitexture",               F(ARB_multitexture) },
+   { OFF, "GL_ARB_shadow",                     F(ARB_shadow) },
+   { OFF, "GL_ARB_shadow_ambient",             F(SGIX_shadow_ambient) },
    { OFF, "GL_ARB_texture_border_clamp",       F(ARB_texture_border_clamp) },
    { OFF, "GL_ARB_texture_compression",        F(ARB_texture_compression) },
    { OFF, "GL_ARB_texture_cube_map",           F(ARB_texture_cube_map) },
    { OFF, "GL_ARB_texture_env_add",            F(EXT_texture_env_add) },
    { OFF, "GL_ARB_texture_env_combine",        F(ARB_texture_env_combine) },
    { OFF, "GL_ARB_texture_env_dot3",           F(ARB_texture_env_dot3) },
+   { OFF, "GL_ARB_texture_mirrored_repeat",    F(ARB_texture_mirrored_repeat)},
    { ON,  "GL_ARB_transpose_matrix",           0 },
+   { ON,  "GL_ARB_window_pos",                 F(ARB_window_pos) },
    { ON,  "GL_EXT_abgr",                       0 },
    { ON,  "GL_EXT_bgra",                       0 },
    { OFF, "GL_EXT_blend_color",                F(EXT_blend_color) },
@@ -89,6 +94,7 @@ static struct {
    { OFF, "GL_EXT_stencil_wrap",               F(EXT_stencil_wrap) },
    { ON,  "GL_EXT_texture3D",                  F(EXT_texture3D) },
    { OFF, "GL_EXT_texture_compression_s3tc",   F(EXT_texture_compression_s3tc) },
+   { OFF, "GL_EXT_texture_edge_clamp",         F(SGIS_texture_edge_clamp) },
    { OFF, "GL_EXT_texture_env_add",            F(EXT_texture_env_add) },
    { OFF, "GL_EXT_texture_env_combine",        F(EXT_texture_env_combine) },
    { OFF, "GL_EXT_texture_env_dot3",           F(EXT_texture_env_dot3) },
@@ -98,6 +104,7 @@ static struct {
    { ON,  "GL_EXT_vertex_array",               0 },
    { OFF, "GL_EXT_vertex_array_set",           F(EXT_vertex_array_set) },
    { OFF, "GL_HP_occlusion_test",              F(HP_occlusion_test) },
+   { ON,  "GL_IBM_rasterpos_clip",             F(IBM_rasterpos_clip) },
    { OFF, "GL_INGR_blend_func_separate",       F(INGR_blend_func_separate) },
    { OFF, "GL_MESA_packed_depth_stencil",      0 },
    { OFF, "GL_MESA_resize_buffers",            F(MESA_resize_buffers) },
@@ -105,6 +112,8 @@ static struct {
    { ON,  "GL_MESA_window_pos",                F(MESA_window_pos) },
    { OFF, "GL_NV_blend_square",                F(NV_blend_square) },
    { ON,  "GL_NV_texgen_reflection",           F(NV_texgen_reflection) },
+   { OFF, "GL_NV_vertex_program",              F(NV_vertex_program) },
+   { OFF, "GL_NV_vertex_program1_1",           F(NV_vertex_program1_1) },
    { OFF, "GL_SGI_color_matrix",               F(SGI_color_matrix) },
    { OFF, "GL_SGI_color_table",                F(SGI_color_table) },
    { OFF, "GL_SGIS_generate_mipmap",           F(SGIS_generate_mipmap) },
@@ -129,13 +138,17 @@ void
 _mesa_enable_sw_extensions(GLcontext *ctx)
 {
    const char *extensions[] = {
+      "GL_ARB_depth_texture",
       "GL_ARB_imaging",
       "GL_ARB_multitexture",
+      "GL_ARB_shadow",
+      "GL_ARB_shadow_ambient",
       "GL_ARB_texture_border_clamp",
       "GL_ARB_texture_cube_map",
       "GL_ARB_texture_env_add",
       "GL_ARB_texture_env_combine",
       "GL_ARB_texture_env_dot3",
+      "GL_ARB_texture_mirrored_repeat",
       "GL_EXT_blend_color",
       "GL_EXT_blend_func_separate",
       "GL_EXT_blend_logic_op",
@@ -149,6 +162,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
       "GL_EXT_secondary_color",
       "GL_EXT_shared_texture_palette",
       "GL_EXT_stencil_wrap",
+      "GL_EXT_texture_edge_clamp",
       "GL_EXT_texture_env_add",
       "GL_EXT_texture_env_combine",
       "GL_EXT_texture_env_dot3",
@@ -158,6 +172,8 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
       "GL_MESA_resize_buffers",
       "GL_NV_blend_square",
       "GL_NV_texgen_reflection",
+      "GL_NV_vertex_program",
+      "GL_NV_vertex_program1_1",
       "GL_SGI_color_matrix",
       "GL_SGI_color_table",
       "GL_SGIS_generate_mipmap",
@@ -203,6 +219,34 @@ _mesa_enable_imaging_extensions(GLcontext *ctx)
 }
 
 
+
+/*
+ * Enable all OpenGL 1.3 features and extensions.
+ */
+void
+_mesa_enable_1_3_extensions(GLcontext *ctx)
+{
+   const char *extensions[] = {
+      "GL_ARB_multisample",
+      "GL_ARB_multitexture",
+      "GL_ARB_texture_border_clamp",
+      "GL_ARB_texture_compression",
+      "GL_ARB_texture_cube_map",
+      "GL_ARB_texture_env_add",
+      "GL_ARB_texture_env_combine",
+      "GL_ARB_texture_env_dot3",
+      "GL_ARB_transpose_matrix",
+      NULL
+   };
+   GLuint i;
+
+   for (i = 0; extensions[i]; i++) {
+      _mesa_enable_extension(ctx, extensions[i]);
+   }
+}
+
+
+
 /*
  * Add a new extenstion.  This would be called from a Mesa driver.
  */