summaryrefslogtreecommitdiff
path: root/progs/tests
diff options
context:
space:
mode:
Diffstat (limited to 'progs/tests')
-rw-r--r--progs/tests/arbnpot.c57
-rw-r--r--progs/tests/mipmap_limits.c16
2 files changed, 48 insertions, 25 deletions
diff --git a/progs/tests/arbnpot.c b/progs/tests/arbnpot.c
index 8107717e27..05ba85dad9 100644
--- a/progs/tests/arbnpot.c
+++ b/progs/tests/arbnpot.c
@@ -113,44 +113,67 @@ static void Init( void )
minDim = imgWidth < imgHeight ? imgWidth : imgHeight;
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB, imgWidth, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
+ /*
+ * 1D Texture. Test proxy first, if that works, test non-proxy target.
+ */
glTexImage1D(GL_PROXY_TEXTURE_1D, 0, GL_RGB, imgWidth, 0,
imgFormat, GL_UNSIGNED_BYTE, image);
glGetTexLevelParameteriv(GL_PROXY_TEXTURE_1D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth);
+ assert(w == imgWidth || w == 0);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, imgWidth, imgHeight, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
+ if (w) {
+ glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB, imgWidth, 0,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ assert(glGetError() == GL_NO_ERROR);
+ }
+
+ /*
+ * 2D Texture
+ */
glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGB, imgWidth, imgHeight, 0,
imgFormat, GL_UNSIGNED_BYTE, image);
glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth);
+ assert(w == imgWidth || w == 0);
- glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, imgWidth, imgHeight, 1, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
+ if (w) {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, imgWidth, imgHeight, 0,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ assert(glGetError() == GL_NO_ERROR);
+ }
+
+ /*
+ * 3D Texture
+ */
glTexImage3D(GL_PROXY_TEXTURE_3D, 0, GL_RGB, imgWidth, imgHeight, 1, 0,
imgFormat, GL_UNSIGNED_BYTE, image);
glGetTexLevelParameteriv(GL_PROXY_TEXTURE_3D, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == imgWidth);
+ assert(w == imgWidth || w == 0);
+
+ if (w) {
+ glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, imgWidth, imgHeight, 1, 0,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ assert(glGetError() == GL_NO_ERROR);
+ }
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB,
- minDim, minDim, 0,
- imgFormat, GL_UNSIGNED_BYTE, image);
- assert(glGetError() == GL_NO_ERROR);
+ /*
+ * Cube Texture
+ */
glTexImage2D(GL_PROXY_TEXTURE_CUBE_MAP, 0, GL_RGB,
minDim, minDim, 0,
imgFormat, GL_UNSIGNED_BYTE, image);
glGetTexLevelParameteriv(GL_PROXY_TEXTURE_CUBE_MAP, 0, GL_TEXTURE_WIDTH, &w);
- assert(w == minDim);
+ assert(w == minDim || w == 0);
+ if (w) {
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB,
+ minDim, minDim, 0,
+ imgFormat, GL_UNSIGNED_BYTE, image);
+ assert(glGetError() == GL_NO_ERROR);
+ }
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
diff --git a/progs/tests/mipmap_limits.c b/progs/tests/mipmap_limits.c
index dc066cab1f..d6d6e467b0 100644
--- a/progs/tests/mipmap_limits.c
+++ b/progs/tests/mipmap_limits.c
@@ -131,8 +131,8 @@ static void display(void)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, BaseLevel);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, MaxLevel);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, MinLod);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, MaxLod);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, MinLod);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, MaxLod);
if (NearestFilter) {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
@@ -194,22 +194,22 @@ key(unsigned char k, int x, int y)
MaxLevel = 10;
break;
case 'l':
- LodBias -= 0.02;
+ LodBias -= 0.25;
break;
case 'L':
- LodBias += 0.02;
+ LodBias += 0.25;
break;
case 'n':
- MinLod -= 0.02;
+ MinLod -= 0.25;
break;
case 'N':
- MinLod += 0.02;
+ MinLod += 0.25;
break;
case 'x':
- MaxLod -= 0.02;
+ MaxLod -= 0.25;
break;
case 'X':
- MaxLod += 0.02;
+ MaxLod += 0.25;
break;
case 'f':
NearestFilter = !NearestFilter;