Now that I’ve switched to GL_TEXTURE_2D, I have even more problems. Now instead of being garbled, by images are ignored! It only draws white squares!
Here’s the drawing code:
glColor4f(1.0, 1.0, (missiles > 0 &&
daBaddie->pos[0] < xpos + BADDIE_IMAGE_SIZE &&
daBaddie->pos[0] > xpos - BADDIE_IMAGE_SIZE) ? 0.0 : 1.0, 1.0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, BADDIE_TEXTURE(lrmult + 1));
glBegin(GL_QUADS);
glTexCoord2f(0.0, 1.0);
glVertex2i(daBaddie->pos[0] - BADDIE_IMAGE_SIZE / 2,
daBaddie->pos[1] - BADDIE_IMAGE_SIZE / 2);
glTexCoord2f(1.0, 1.0);
glVertex2i(daBaddie->pos[0] + BADDIE_IMAGE_SIZE / 2,
daBaddie->pos[1] - BADDIE_IMAGE_SIZE / 2);
glTexCoord2f(1.0, 0.0);
glVertex2i(daBaddie->pos[0] + BADDIE_IMAGE_SIZE / 2,
daBaddie->pos[1] + BADDIE_IMAGE_SIZE / 2);
glTexCoord2f(0.0, 0.0);
glVertex2i(daBaddie->pos[0] - BADDIE_IMAGE_SIZE / 2,
daBaddie->pos[1] + BADDIE_IMAGE_SIZE / 2);
glEnd();
glDisable(GL_TEXTURE_2D);
and here’s the setup code:int n;
// glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glGenTextures(IMAGE_COUNT * 2 + 2, (unsigned long*) textures);
for(n = 0; n < IMAGE_COUNT; n++) {
glBindTexture(GL_TEXTURE_2D, BADDIE_TEXTURE(n));
glTexImage2D(GL_TEXTURE_2D, 0, 4, BADDIE_IMAGE_SIZE, BADDIE_IMAGE_SIZE, 0, GL_RGBA, GL_UNSIGNED_BYTE,
baddies[n]);
glBindTexture(GL_TEXTURE_2D, GOODIE_TEXTURE(n));
glTexImage2D(GL_TEXTURE_2D, 0, 4, MAIN_IMAGE_SIZE, MAIN_IMAGE_SIZE, 0, GL_RGBA, GL_UNSIGNED_BYTE,
goodies[n]);
I know it’s rather hairy, but this is my first attempt at a color game using a non-HyperCard API.