summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell/spu/spu_main.h
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-10-14 15:19:01 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-10-14 15:19:01 -0600
commit85dc1aec9c5fc63a01bb8db07215b84790d15d8f (patch)
treebe7e231aa36c21043e588201cf92ab861ca2e07c /src/gallium/drivers/cell/spu/spu_main.h
parent38d396e15aceaca299c5de571c4dd5b3d9b27242 (diff)
cell: support NPOT textures, clamp/repeat mode, normalized/unorm texcoords
glDrawPixels works now.
Diffstat (limited to 'src/gallium/drivers/cell/spu/spu_main.h')
-rw-r--r--src/gallium/drivers/cell/spu/spu_main.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/drivers/cell/spu/spu_main.h b/src/gallium/drivers/cell/spu/spu_main.h
index 56aac655e9..45c6f4ced1 100644
--- a/src/gallium/drivers/cell/spu/spu_main.h
+++ b/src/gallium/drivers/cell/spu/spu_main.h
@@ -107,17 +107,21 @@ struct spu_framebuffer
} ALIGN16_ATTRIB;
+/** per-texture level info */
struct spu_texture_level
{
void *start;
ushort width, height;
ushort tiles_per_row;
- vector float width4; /**< == {width, width, width, width} */
- vector float height4; /**< == {height, height, height, height} */
- vector unsigned int tex_size_x_mask; /**< splat(width-1) */
- vector unsigned int tex_size_y_mask; /**< splat(height-1) */
+ /** texcoord scale factors */
+ vector float scale_s, scale_t;
+ /** texcoord masks (if REPEAT then size-1, else ~0) */
+ vector signed int mask_s, mask_t;
+ /** texcoord clamp limits */
+ vector signed int max_s, max_t;
} ALIGN16_ATTRIB;
+
struct spu_texture
{
struct spu_texture_level level[CELL_MAX_TEXTURE_LEVELS];