summaryrefslogtreecommitdiff
path: root/src/glu
diff options
context:
space:
mode:
Diffstat (limited to 'src/glu')
-rw-r--r--src/glu/sgi/libutil/mipmap.c98
1 files changed, 48 insertions, 50 deletions
diff --git a/src/glu/sgi/libutil/mipmap.c b/src/glu/sgi/libutil/mipmap.c
index b81b9bc39d..ea17438dd6 100644
--- a/src/glu/sgi/libutil/mipmap.c
+++ b/src/glu/sgi/libutil/mipmap.c
@@ -1169,15 +1169,15 @@ static void halveImage_float(GLint components, GLuint width, GLuint height,
for (i = 0; i < newheight; i++) {
for (j = 0; j < newwidth; j++) {
for (k = 0; k < components; k++) {
- GLuint b;
- b = __GLU_SWAP_4_BYTES(t);
- s[0] = *(GLfloat*)&b;
- b = __GLU_SWAP_4_BYTES(t+group_size);
- s[0] += *(GLfloat*)&b;
- b = __GLU_SWAP_4_BYTES(t+ysize);
- s[0] += *(GLfloat*)&b;
- b = __GLU_SWAP_4_BYTES(t+ysize+group_size);
- s[0] += *(GLfloat*)&b;
+ union { GLuint b; GLfloat f; } swapbuf;
+ swapbuf.b = __GLU_SWAP_4_BYTES(t);
+ s[0] = swapbuf.f;
+ swapbuf.b = __GLU_SWAP_4_BYTES(t+group_size);
+ s[0] += swapbuf.f;
+ swapbuf.b = __GLU_SWAP_4_BYTES(t+ysize);
+ s[0] += swapbuf.f;
+ swapbuf.b = __GLU_SWAP_4_BYTES(t+ysize+group_size);
+ s[0] += swapbuf.f;
s[0] /= 4;
s++; t += element_size;
}
@@ -2980,7 +2980,7 @@ static void scale_internal_float(GLint components, GLint widthin,
int l, m;
const char *left, *right;
- GLuint swapbuf; /* unsigned buffer */
+ union { GLuint b; GLfloat f; } swapbuf;
if (widthin == widthout*2 && heightin == heightout*2) {
halveImage_float(components, widthin, heightin,
@@ -3029,8 +3029,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3041,8 +3041,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * y_percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * y_percent;
} else {
totals[k] += *(const GLfloat*)temp_index * y_percent;
}
@@ -3054,8 +3054,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3068,8 +3068,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3079,8 +3079,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * y_percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * y_percent;
} else {
totals[k] += *(const GLfloat*)temp_index * y_percent;
}
@@ -3091,8 +3091,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3105,10 +3105,10 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0; k < components;
k++, left += element_size, right += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(left);
- totals[k] += *(const GLfloat*)&swapbuf * (1-lowx_float);
- swapbuf = __GLU_SWAP_4_BYTES(right);
- totals[k] += *(const GLfloat*)&swapbuf * highx_float;
+ swapbuf.b = __GLU_SWAP_4_BYTES(left);
+ totals[k] += swapbuf.f * (1-lowx_float);
+ swapbuf.b = __GLU_SWAP_4_BYTES(right);
+ totals[k] += swapbuf.f * highx_float;
} else {
totals[k] += *(const GLfloat*)left * (1-lowx_float)
+ *(const GLfloat*)right * highx_float;
@@ -3122,8 +3122,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3133,8 +3133,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * x_percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * x_percent;
} else {
totals[k] += *(const GLfloat*)temp_index * x_percent;
}
@@ -3145,8 +3145,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3159,8 +3159,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3170,8 +3170,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * y_percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * y_percent;
} else {
totals[k] += *(const GLfloat*)temp_index * y_percent;
}
@@ -3182,8 +3182,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3194,8 +3194,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf * percent;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f * percent;
} else {
totals[k] += *(const GLfloat*)temp_index * percent;
}
@@ -3211,8 +3211,8 @@ static void scale_internal_float(GLint components, GLint widthin,
for (k = 0, temp_index = temp; k < components;
k++, temp_index += element_size) {
if (myswap_bytes) {
- swapbuf = __GLU_SWAP_4_BYTES(temp_index);
- totals[k] += *(const GLfloat*)&swapbuf;
+ swapbuf.b = __GLU_SWAP_4_BYTES(temp_index);
+ totals[k] += swapbuf.f;
} else {
totals[k] += *(const GLfloat*)temp_index;
}
@@ -7397,19 +7397,17 @@ static void closestFit3D(GLenum target, GLint width, GLint height, GLint depth,
GLint depthAtLevelOne= (depthPowerOf2 > 1) ?
depthPowerOf2 >> 1 :
depthPowerOf2;
- GLenum proxyTarget;
+ GLenum proxyTarget = GL_PROXY_TEXTURE_3D;
assert(widthAtLevelOne > 0);
assert(heightAtLevelOne > 0);
assert(depthAtLevelOne > 0);
/* does width x height x depth at level 1 & all their mipmaps fit? */
- if (target == GL_TEXTURE_3D || target == GL_PROXY_TEXTURE_3D) {
- proxyTarget = GL_PROXY_TEXTURE_3D;
- gluTexImage3D(proxyTarget, 1, /* must be non-zero */
- internalFormat,
- widthAtLevelOne,heightAtLevelOne,depthAtLevelOne,
- 0,format,type,NULL);
- }
+ assert(target == GL_TEXTURE_3D || target == GL_PROXY_TEXTURE_3D);
+ gluTexImage3D(proxyTarget, 1, /* must be non-zero */
+ internalFormat,
+ widthAtLevelOne,heightAtLevelOne,depthAtLevelOne,
+ 0,format,type,NULL);
glGetTexLevelParameteriv(proxyTarget, 1,GL_TEXTURE_WIDTH,&proxyWidth);
/* does it fit??? */
if (proxyWidth == 0) { /* nope, so try again with these sizes */