aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-11-19 11:21:45 +0100
committermarha <marha@users.sourceforge.net>2012-11-19 11:21:45 +0100
commit57b3e446b9b4017ccfdd3227be481df590740426 (patch)
tree0e4899f530f75d343c090202fc7123c78f9b4866 /mesalib/src/mesa/state_tracker/st_gen_mipmap.c
parent24635abae6008bef13e30d798b3f33abab412770 (diff)
parentb3e1e62c45f525cdd332073aaa34d8452cb23374 (diff)
downloadvcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.tar.gz
vcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.tar.bz2
vcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.zip
Merge remote-tracking branch 'origin/released'
* origin/released: git update 19 nov 2012 Added bash script to update released branch Conflicts: mesalib/src/mapi/glapi/gen/gl_API.xml mesalib/src/mesa/program/.gitignore pixman/pixman/pixman-mmx.c xorg-server/Xi/xiquerypointer.c xorg-server/xkb/xkb.c
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_gen_mipmap.c')
-rw-r--r--mesalib/src/mesa/state_tracker/st_gen_mipmap.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
index 889200686..c09261312 100644
--- a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
@@ -121,30 +121,16 @@ compute_num_levels(struct gl_context *ctx,
struct gl_texture_object *texObj,
GLenum target)
{
- if (target == GL_TEXTURE_RECTANGLE_ARB) {
- return 1;
- }
- else {
- const struct gl_texture_image *baseImage =
- _mesa_get_tex_image(ctx, texObj, target, texObj->BaseLevel);
- GLuint size, numLevels;
+ const struct gl_texture_image *baseImage;
+ GLuint numLevels;
- size = MAX2(baseImage->Width2, baseImage->Height2);
- size = MAX2(size, baseImage->Depth2);
+ baseImage = _mesa_get_tex_image(ctx, texObj, target, texObj->BaseLevel);
- numLevels = texObj->BaseLevel;
-
- while (size > 0) {
- numLevels++;
- size >>= 1;
- }
+ numLevels = texObj->BaseLevel + baseImage->MaxNumLevels;
+ numLevels = MIN2(numLevels, texObj->MaxLevel + 1);
+ assert(numLevels >= 1);
- numLevels = MIN2(numLevels, texObj->MaxLevel + 1);
-
- assert(numLevels >= 1);
-
- return numLevels;
- }
+ return numLevels;
}