Also, added softpipe_texture() cast wrapper.
#include "sp_state.h"
#include "sp_headers.h"
#include "sp_quad.h"
+#include "sp_texture.h"
#include "sp_tex_sample.h"
#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 *);
#include "pipe/p_util.h"
#include "sp_context.h"
#include "sp_state.h"
+#include "sp_texture.h"
#include "sp_tile_cache.h"
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);
#include "sp_context.h"
#include "sp_state.h"
#include "sp_surface.h"
+#include "sp_texture.h"
#include "sp_tile_cache.h"
/**
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 */
__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;
/*
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);