Move struct softpipe_texture definition into sp_texture.h
authorBrian <brian.paul@tungstengraphics.com>
Fri, 7 Dec 2007 17:21:56 +0000 (10:21 -0700)
committerBen Skeggs <skeggsb@gmail.com>
Sun, 9 Dec 2007 01:05:26 +0000 (12:05 +1100)
Also, added softpipe_texture() cast wrapper.

src/mesa/pipe/softpipe/sp_quad_fs.c
src/mesa/pipe/softpipe/sp_state.h
src/mesa/pipe/softpipe/sp_state_sampler.c
src/mesa/pipe/softpipe/sp_surface.c
src/mesa/pipe/softpipe/sp_texture.c
src/mesa/pipe/softpipe/sp_texture.h

index 7184fcda52190ec4d130cca39db004b58dd11e0d..1aba54d12aa109ebdebfc583942913d6bc80906b 100644 (file)
@@ -49,6 +49,7 @@
 #include "sp_state.h"
 #include "sp_headers.h"
 #include "sp_quad.h"
+#include "sp_texture.h"
 #include "sp_tex_sample.h"
 
 
index daf9955ca5f536bab9c557c7c595482235bfae75..ea9d2e62be62997e81444d638668763ef9c16e3d 100644 (file)
@@ -52,35 +52,6 @@ struct sp_fragment_shader_state {
 #endif
 };
 
-struct softpipe_texture
-{
-   struct pipe_texture base;
-
-   /* Derived from the above:
-    */
-   unsigned pitch;
-   unsigned depth_pitch;          /* per-image on i945? */
-   unsigned total_height;
-
-   unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];
-
-   /* Explicitly store the offset of each image for each cube face or
-    * depth value.  Pretty much have to accept that hardware formats
-    * are going to be so diverse that there is no unified way to
-    * compute the offsets of depth/cube images within a mipmap level,
-    * so have to store them as a lookup table:
-    */
-   unsigned *image_offset[PIPE_MAX_TEXTURE_LEVELS];   /**< array [depth] of offsets */
-
-   /* Includes image offset tables:
-    */
-   unsigned long level_offset[PIPE_MAX_TEXTURE_LEVELS];
-
-   /* The data is held here:
-    */
-   struct pipe_buffer_handle *buffer;
-};
-
 void *
 softpipe_create_alpha_test_state(struct pipe_context *,
                                  const struct pipe_alpha_test_state *);
index e71b9159e3f4b2abf616120ab82305984e13f794..173901f04e631f9d896faed5c562df170b08d283 100644 (file)
@@ -32,6 +32,7 @@
 #include "pipe/p_util.h"
 #include "sp_context.h"
 #include "sp_state.h"
+#include "sp_texture.h"
 #include "sp_tile_cache.h"
 
 
@@ -73,7 +74,7 @@ softpipe_set_texture_state(struct pipe_context *pipe,
    struct softpipe_context *softpipe = softpipe_context(pipe);
 
    assert(unit < PIPE_MAX_SAMPLERS);
-   softpipe->texture[unit] = (struct softpipe_texture *)texture;  /* ptr, not struct */
+   softpipe->texture[unit] = softpipe_texture(texture);  /* ptr, not struct */
 
    sp_tile_cache_set_texture(softpipe->tex_cache[unit], texture);
 
index c61e0842fc2405aa5a3d43abcdeb6cc386f2f304..16f0209eee419a206e74c0d54ec13a0fcfe5056c 100644 (file)
@@ -32,6 +32,7 @@
 #include "sp_context.h"
 #include "sp_state.h"
 #include "sp_surface.h"
+#include "sp_texture.h"
 #include "sp_tile_cache.h"
 
 /**
@@ -568,7 +569,7 @@ softpipe_get_tex_surface(struct pipe_context *pipe,
                          struct pipe_texture *pt,
                          unsigned face, unsigned level, unsigned zslice)
 {
-   struct softpipe_texture *spt = (struct softpipe_texture *)pt;
+   struct softpipe_texture *spt = softpipe_texture(pt);
    struct pipe_surface *ps;
    unsigned offset;  /* in bytes */
 
index 53486f9bba5707ab988d8558e43ccbf12e46ce04..e8cdd67435bb44afe33e8850b04e5e1aafb5857c 100644 (file)
@@ -412,7 +412,7 @@ softpipe_texture_release(struct pipe_context *pipe, struct pipe_texture **pt)
        __FUNCTION__, (void *) *pt, (*pt)->refcount - 1);
    */
    if (--(*pt)->refcount <= 0) {
-      struct softpipe_texture *spt = (struct softpipe_texture *)*pt;
+      struct softpipe_texture *spt = softpipe_texture(*pt);
       uint i;
 
       /*
index 2aca57bd1d259fa4c0975bece6689a192d535890..732064d98671eaa736327c943024c0981a9c1f89 100644 (file)
@@ -6,6 +6,45 @@ struct pipe_context;
 struct pipe_texture;
 
 
+struct softpipe_texture
+{
+   struct pipe_texture base;
+
+   /* Derived from the above:
+    */
+   unsigned pitch;
+   unsigned depth_pitch;          /* per-image on i945? */
+   unsigned total_height;
+
+   unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];
+
+   /* Explicitly store the offset of each image for each cube face or
+    * depth value.  Pretty much have to accept that hardware formats
+    * are going to be so diverse that there is no unified way to
+    * compute the offsets of depth/cube images within a mipmap level,
+    * so have to store them as a lookup table:
+    */
+   unsigned *image_offset[PIPE_MAX_TEXTURE_LEVELS];   /**< array [depth] of offsets */
+
+   /* Includes image offset tables:
+    */
+   unsigned long level_offset[PIPE_MAX_TEXTURE_LEVELS];
+
+   /* The data is held here:
+    */
+   struct pipe_buffer_handle *buffer;
+};
+
+
+/** cast wrapper */
+static INLINE struct softpipe_texture *
+softpipe_texture(struct pipe_texture *pt)
+{
+   return (struct softpipe_texture *) pt;
+}
+
+
+
 extern void
 softpipe_texture_create(struct pipe_context *pipe, struct pipe_texture **pt);