mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
radeon: add miptree offset functions
This commit is contained in:
parent
c73f4fdb65
commit
0968512f8f
2 changed files with 30 additions and 2 deletions
|
|
@ -358,3 +358,29 @@ void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t,
|
|||
texImage->Width, texImage->Height, texImage->Depth,
|
||||
texImage->TexFormat->TexelBytes, t->tile_bits, compressed);
|
||||
}
|
||||
|
||||
/* Although we use the image_offset[] array to store relative offsets
|
||||
* to cube faces, Mesa doesn't know anything about this and expects
|
||||
* each cube face to be treated as a separate image.
|
||||
*
|
||||
* These functions present that view to mesa:
|
||||
*/
|
||||
const GLuint *
|
||||
radeon_miptree_depth_offsets(radeon_mipmap_tree *mt, GLuint level)
|
||||
{
|
||||
static const GLuint zero = 0;
|
||||
if (mt->target != GL_TEXTURE_3D || mt->faces == 1)
|
||||
return &zero;
|
||||
else
|
||||
return mt->levels[level].faces[0].offset;
|
||||
}
|
||||
|
||||
GLuint
|
||||
radeon_miptree_image_offset(radeon_mipmap_tree *mt,
|
||||
GLuint face, GLuint level)
|
||||
{
|
||||
if (mt->target == GL_TEXTURE_CUBE_MAP_ARB)
|
||||
return (mt->levels[level].faces[face].offset);
|
||||
else
|
||||
return mt->levels[level].faces[0].offset;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,8 @@ GLboolean radeon_miptree_matches_image(radeon_mipmap_tree *mt,
|
|||
GLboolean radeon_miptree_matches_texture(radeon_mipmap_tree *mt, struct gl_texture_object *texObj);
|
||||
void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t,
|
||||
struct gl_texture_image *texImage, GLuint face, GLuint level);
|
||||
|
||||
|
||||
GLuint radeon_miptree_image_offset(radeon_mipmap_tree *mt,
|
||||
GLuint face, GLuint level);
|
||||
const GLuint *
|
||||
radeon_miptree_depth_offsets(radeon_mipmap_tree *mt, GLuint level);
|
||||
#endif /* __RADEON_MIPMAP_TREE_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue