radeon: move glGetTexImage handlers to seperate file
authorMaciej Cencora <m.cencora@gmail.com>
Sun, 17 Jan 2010 11:47:46 +0000 (12:47 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Sun, 7 Mar 2010 11:22:09 +0000 (12:22 +0100)
src/mesa/drivers/dri/r200/Makefile
src/mesa/drivers/dri/r200/radeon_tex_getimage.c [new symlink]
src/mesa/drivers/dri/r300/Makefile
src/mesa/drivers/dri/r300/radeon_tex_getimage.c [new symlink]
src/mesa/drivers/dri/r600/Makefile
src/mesa/drivers/dri/r600/radeon_tex_getimage.c [new symlink]
src/mesa/drivers/dri/radeon/Makefile
src/mesa/drivers/dri/radeon/radeon_tex_getimage.c [new file with mode: 0644]
src/mesa/drivers/dri/radeon/radeon_texture.c

index d91e5482e93e1cbf8f3dbe94b78e5062ab33e607..3f8710057059611a0667107178dcafa692faf7cf 100644 (file)
@@ -25,6 +25,7 @@ RADEON_COMMON_SOURCES = \
        radeon_span.c \
        radeon_texture.c \
        radeon_tex_copy.c \
+       radeon_tex_getimage.c \
        radeon_tile.c
 
 DRIVER_SOURCES = r200_context.c \
diff --git a/src/mesa/drivers/dri/r200/radeon_tex_getimage.c b/src/mesa/drivers/dri/r200/radeon_tex_getimage.c
new file mode 120000 (symlink)
index 0000000..d9836d7
--- /dev/null
@@ -0,0 +1 @@
+../radeon/radeon_tex_getimage.c
\ No newline at end of file
index 730d801bb0fb72d893e35d42f65f734862fd243d..4257a32b89f56ad2aab07ab818b646ebb498f4c7 100644 (file)
@@ -35,6 +35,7 @@ RADEON_COMMON_SOURCES = \
        radeon_queryobj.c \
        radeon_texture.c \
        radeon_tex_copy.c \
+       radeon_tex_getimage.c \
        radeon_tile.c
 
 DRIVER_SOURCES = \
diff --git a/src/mesa/drivers/dri/r300/radeon_tex_getimage.c b/src/mesa/drivers/dri/r300/radeon_tex_getimage.c
new file mode 120000 (symlink)
index 0000000..d9836d7
--- /dev/null
@@ -0,0 +1 @@
+../radeon/radeon_tex_getimage.c
\ No newline at end of file
index b6d1c5f459ece38bb4061ef6dbc9f918c9c1a929..f76859d11e24add4019276afae8a044332a6d07d 100644 (file)
@@ -35,6 +35,7 @@ RADEON_COMMON_SOURCES = \
        radeon_texture.c \
        radeon_queryobj.c \
        radeon_tex_copy.c \
+       radeon_tex_getimage.c \
        radeon_tile.c
 
 DRIVER_SOURCES = \
diff --git a/src/mesa/drivers/dri/r600/radeon_tex_getimage.c b/src/mesa/drivers/dri/r600/radeon_tex_getimage.c
new file mode 120000 (symlink)
index 0000000..d9836d7
--- /dev/null
@@ -0,0 +1 @@
+../radeon/radeon_tex_getimage.c
\ No newline at end of file
index f7e8059c4f854302eb3aba2c9c3148ce5fbe4a67..6904ebbee3bbbae99093a7f393c89d58f83b8d3d 100644 (file)
@@ -26,6 +26,7 @@ RADEON_COMMON_SOURCES = \
        radeon_span.c \
        radeon_texture.c \
        radeon_tex_copy.c \
+       radeon_tex_getimage.c \
        radeon_tile.c
 
 DRIVER_SOURCES = \
diff --git a/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c b/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c
new file mode 100644 (file)
index 0000000..7bf6dcc
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2009 Maciej Cencora.
+ * Copyright (C) 2008 Nicolai Haehnle.
+ * Copyright (C) The Weather Channel, Inc.  2002.  All Rights Reserved.
+ *
+ * The Weather Channel (TM) funded Tungsten Graphics to develop the
+ * initial release of the Radeon 8500 driver under the XFree86 license.
+ * This notice must be preserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * 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 THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS 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.
+ *
+ */
+
+#include "radeon_common_context.h"
+#include "radeon_texture.h"
+#include "radeon_mipmap_tree.h"
+
+#include "main/texgetimage.h"
+
+/**
+ * Need to map texture image into memory before copying image data,
+ * then unmap it.
+ */
+static void
+radeon_get_tex_image(GLcontext * ctx, GLenum target, GLint level,
+             GLenum format, GLenum type, GLvoid * pixels,
+             struct gl_texture_object *texObj,
+             struct gl_texture_image *texImage, int compressed)
+{
+    radeon_texture_image *image = get_radeon_texture_image(texImage);
+
+    radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
+                 "%s(%p, tex %p, image %p) compressed %d.\n",
+                 __func__, ctx, texObj, image, compressed);
+
+    if (image->mt) {
+        /* Map the texture image read-only */
+        radeon_teximage_map(image, GL_FALSE);
+    } else {
+        /* Image hasn't been uploaded to a miptree yet */
+        assert(image->base.Data);
+    }
+
+    if (compressed) {
+        /* FIXME: this can't work for small textures (mips) which
+                 use different hw stride */
+        _mesa_get_compressed_teximage(ctx, target, level, pixels,
+                          texObj, texImage);
+    } else {
+        _mesa_get_teximage(ctx, target, level, format, type, pixels,
+                   texObj, texImage);
+    }
+
+    if (image->mt) {
+        radeon_teximage_unmap(image);
+    }
+}
+
+void
+radeonGetTexImage(GLcontext * ctx, GLenum target, GLint level,
+          GLenum format, GLenum type, GLvoid * pixels,
+          struct gl_texture_object *texObj,
+          struct gl_texture_image *texImage)
+{
+    radeon_get_tex_image(ctx, target, level, format, type, pixels,
+                 texObj, texImage, 0);
+}
+
+void
+radeonGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level,
+                GLvoid *pixels,
+                struct gl_texture_object *texObj,
+                struct gl_texture_image *texImage)
+{
+    radeon_get_tex_image(ctx, target, level, 0, 0, pixels,
+                 texObj, texImage, 1);
+}
index 62dec2d4e06712d7f44d8808d1c71ac15897eaa1..6a8e70d47e6631f14d13d989496feb2be523c4d5 100644 (file)
@@ -39,7 +39,6 @@
 #include "main/texstore.h"
 #include "main/teximage.h"
 #include "main/texobj.h"
-#include "main/texgetimage.h"
 
 #include "xmlpool.h"           /* for symbolic values of enum-type options */
 
@@ -998,62 +997,3 @@ void radeonTexSubImage3D(GLcontext * ctx, GLenum target, GLint level,
        radeon_texsubimage(ctx, 3, target, level, xoffset, yoffset, zoffset, width, height, depth, 0,
                format, type, pixels, packing, texObj, texImage, 0);
 }
-
-/**
- * Need to map texture image into memory before copying image data,
- * then unmap it.
- */
-static void
-radeon_get_tex_image(GLcontext * ctx, GLenum target, GLint level,
-                    GLenum format, GLenum type, GLvoid * pixels,
-                    struct gl_texture_object *texObj,
-                    struct gl_texture_image *texImage, int compressed)
-{
-       radeon_texture_image *image = get_radeon_texture_image(texImage);
-
-       radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
-                       "%s(%p, tex %p, image %p) compressed %d.\n",
-                       __func__, ctx, texObj, image, compressed);
-
-       if (image->mt) {
-               /* Map the texture image read-only */
-               radeon_teximage_map(image, GL_FALSE);
-       } else {
-               /* Image hasn't been uploaded to a miptree yet */
-               assert(image->base.Data);
-       }
-
-       if (compressed) {
-               /* FIXME: this can't work for small textures (mips) which
-                        use different hw stride */
-               _mesa_get_compressed_teximage(ctx, target, level, pixels,
-                                             texObj, texImage);
-       } else {
-               _mesa_get_teximage(ctx, target, level, format, type, pixels,
-                                  texObj, texImage);
-       }
-     
-       if (image->mt) {
-               radeon_teximage_unmap(image);
-       }
-}
-
-void
-radeonGetTexImage(GLcontext * ctx, GLenum target, GLint level,
-                 GLenum format, GLenum type, GLvoid * pixels,
-                 struct gl_texture_object *texObj,
-                 struct gl_texture_image *texImage)
-{
-       radeon_get_tex_image(ctx, target, level, format, type, pixels,
-                            texObj, texImage, 0);
-}
-
-void
-radeonGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level,
-                           GLvoid *pixels,
-                           struct gl_texture_object *texObj,
-                           struct gl_texture_image *texImage)
-{
-       radeon_get_tex_image(ctx, target, level, 0, 0, pixels,
-                            texObj, texImage, 1);
-}