mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-30 00:58:14 +02:00
mesa: consolidate multiple next_mipmap_level_size
Refactor to make next_mipmap_level_size defined in mipmap.c a _mesa_ helper function that can then be used by texture_view Signed-off-by: Courtney Goeltzenleuchter <courtney@LunarG.com> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
320ec1deac
commit
bb5947de99
3 changed files with 11 additions and 26 deletions
|
|
@ -1767,8 +1767,8 @@ _mesa_generate_mipmap_level(GLenum target,
|
|||
* compute next (level+1) image size
|
||||
* \return GL_FALSE if no smaller size can be generated (eg. src is 1x1x1 size)
|
||||
*/
|
||||
static GLboolean
|
||||
next_mipmap_level_size(GLenum target, GLint border,
|
||||
GLboolean
|
||||
_mesa_next_mipmap_level_size(GLenum target, GLint border,
|
||||
GLint srcWidth, GLint srcHeight, GLint srcDepth,
|
||||
GLint *dstWidth, GLint *dstHeight, GLint *dstDepth)
|
||||
{
|
||||
|
|
@ -1911,7 +1911,7 @@ generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target,
|
|||
srcDepth = srcImage->Depth;
|
||||
border = srcImage->Border;
|
||||
|
||||
nextLevel = next_mipmap_level_size(target, border,
|
||||
nextLevel = _mesa_next_mipmap_level_size(target, border,
|
||||
srcWidth, srcHeight, srcDepth,
|
||||
&dstWidth, &dstHeight, &dstDepth);
|
||||
if (!nextLevel)
|
||||
|
|
@ -2102,7 +2102,7 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
|
|||
srcDepth = srcImage->Depth;
|
||||
border = srcImage->Border;
|
||||
|
||||
nextLevel = next_mipmap_level_size(target, border,
|
||||
nextLevel = _mesa_next_mipmap_level_size(target, border,
|
||||
srcWidth, srcHeight, srcDepth,
|
||||
&dstWidth, &dstHeight, &dstDepth);
|
||||
if (!nextLevel)
|
||||
|
|
|
|||
|
|
@ -51,5 +51,9 @@ extern void
|
|||
_mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
|
||||
struct gl_texture_object *texObj);
|
||||
|
||||
extern GLboolean
|
||||
_mesa_next_mipmap_level_size(GLenum target, GLint border,
|
||||
GLint srcWidth, GLint srcHeight, GLint srcDepth,
|
||||
GLint *dstWidth, GLint *dstHeight, GLint *dstDepth);
|
||||
|
||||
#endif /* MIPMAP_H */
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "macros.h"
|
||||
#include "teximage.h"
|
||||
#include "texobj.h"
|
||||
#include "mipmap.h"
|
||||
#include "texstorage.h"
|
||||
#include "mtypes.h"
|
||||
|
||||
|
|
@ -98,27 +99,6 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compute the size of the next mipmap level.
|
||||
*/
|
||||
static void
|
||||
next_mipmap_level_size(GLenum target,
|
||||
GLint *width, GLint *height, GLint *depth)
|
||||
{
|
||||
if (*width > 1) {
|
||||
*width /= 2;
|
||||
}
|
||||
|
||||
if ((*height > 1) && (target != GL_TEXTURE_1D_ARRAY)) {
|
||||
*height /= 2;
|
||||
}
|
||||
|
||||
if ((*depth > 1) && (target != GL_TEXTURE_2D_ARRAY)) {
|
||||
*depth /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Helper to get a particular texture image in a texture object */
|
||||
static struct gl_texture_image *
|
||||
get_tex_image(struct gl_context *ctx,
|
||||
|
|
@ -162,7 +142,8 @@ initialize_texture_fields(struct gl_context *ctx,
|
|||
0, internalFormat, texFormat);
|
||||
}
|
||||
|
||||
next_mipmap_level_size(target, &levelWidth, &levelHeight, &levelDepth);
|
||||
_mesa_next_mipmap_level_size(target, 0, levelWidth, levelHeight, levelDepth,
|
||||
&levelWidth, &levelHeight, &levelDepth);
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue