diff options
author | Brian Paul <[email protected]> | 2008-10-14 15:19:01 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-10-14 15:19:01 -0600 |
commit | 85dc1aec9c5fc63a01bb8db07215b84790d15d8f (patch) | |
tree | be7e231aa36c21043e588201cf92ab861ca2e07c /src/gallium/drivers/cell/spu/spu_main.h | |
parent | 38d396e15aceaca299c5de571c4dd5b3d9b27242 (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.h | 12 |
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 56aac655e90..45c6f4ced1d 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]; |