st/mesa: support for 1D/2D texture arrays
authorBrian Paul <brianp@vmware.com>
Wed, 26 Jan 2011 03:26:22 +0000 (20:26 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 26 Jan 2011 03:26:22 +0000 (20:26 -0700)
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_extensions.c
src/mesa/state_tracker/st_mesa_to_tgsi.c

index 795910734bf6314d8c38b56dc7c46fd3cb00041c..9653dcd655d12793754c8ec9c7c9e08bd5a383c7 100644 (file)
@@ -74,19 +74,18 @@ gl_target_to_pipe(GLenum target)
    switch (target) {
    case GL_TEXTURE_1D:
       return PIPE_TEXTURE_1D;
-
    case GL_TEXTURE_2D:
       return PIPE_TEXTURE_2D;
-
    case GL_TEXTURE_RECTANGLE_NV:
       return PIPE_TEXTURE_RECT;
-
    case GL_TEXTURE_3D:
       return PIPE_TEXTURE_3D;
-
    case GL_TEXTURE_CUBE_MAP_ARB:
       return PIPE_TEXTURE_CUBE;
-
+   case GL_TEXTURE_1D_ARRAY_EXT:
+      return PIPE_TEXTURE_1D_ARRAY;
+   case GL_TEXTURE_2D_ARRAY_EXT:
+      return PIPE_TEXTURE_2D_ARRAY;
    default:
       assert(0);
       return 0;
index d7ed7ea3a5c6e3560e8d534e1a064c3f7ad34d82..a81cbe85d34a6481a6a350aa73c9d14b4e471bc6 100644 (file)
@@ -420,6 +420,12 @@ void st_init_extensions(struct st_context *st)
       ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
    }
 
+   /* GL_EXT_texture_array */
+   if (screen->get_param(screen, PIPE_CAP_ARRAY_TEXTURES)) {
+      ctx->Extensions.EXT_texture_array = GL_TRUE;
+      ctx->Extensions.MESA_texture_array = GL_TRUE;
+   }
+
    /* GL_ARB_framebuffer_object */
    if (ctx->Extensions.EXT_packed_depth_stencil) {
       /* we support always support GL_EXT_framebuffer_blit */
index a14551b4345bc41c7103c553a0700b1c3b91b7dc..5c68fd78c30fe946cb2dd48f14f202406597a2e5 100644 (file)
@@ -286,6 +286,8 @@ translate_texture_target( GLuint textarget,
    case TEXTURE_3D_INDEX:   return TGSI_TEXTURE_3D;
    case TEXTURE_CUBE_INDEX: return TGSI_TEXTURE_CUBE;
    case TEXTURE_RECT_INDEX: return TGSI_TEXTURE_RECT;
+   case TEXTURE_1D_ARRAY_INDEX:   return TGSI_TEXTURE_1D_ARRAY;
+   case TEXTURE_2D_ARRAY_INDEX:   return TGSI_TEXTURE_2D_ARRAY;
    default:
       debug_assert( 0 );
       return TGSI_TEXTURE_1D;