mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-23 18:10:36 +02:00
Move struct softpipe_texture definition into sp_texture.h
Also, added softpipe_texture() cast wrapper.
This commit is contained in:
parent
94a3cb078d
commit
4c90dc7027
6 changed files with 45 additions and 32 deletions
|
|
@ -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"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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 *);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue