static void setup_texture (ModeInfo * mi) { planetstruct *gp = &planets[MI_SCREEN(mi)]; glGenTextures (1, &gp->tex1); glBindTexture (GL_TEXTURE_2D, gp->tex1); /* Must be after glBindTexture */ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); if (!which_image || !*which_image || !strcmp(which_image, "BUILTIN")) { BUILTIN1: setup_xpm_texture (mi, earth_png, sizeof(earth_png)); } else { if (! setup_file_texture (mi, which_image)) goto BUILTIN1; } check_gl_error("texture 1 initialization"); glGenTextures (1, &gp->tex2); glBindTexture (GL_TEXTURE_2D, gp->tex2); /* Must be after glBindTexture */ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); if (!which_image2 || !*which_image2 || !strcmp(which_image2, "BUILTIN")) { BUILTIN2: setup_xpm_texture (mi, earth_night_png, sizeof(earth_night_png)); } else { if (! setup_file_texture (mi, which_image2)) goto BUILTIN2; } check_gl_error("texture 2 initialization"); /* Need to flip the texture top for bottom for some reason. */ glMatrixMode (GL_TEXTURE); glScalef (1, -1, 1); glMatrixMode (GL_MODELVIEW); }
static void setup_texture(ModeInfo * mi) { /* planetstruct *gp = &planets[MI_SCREEN(mi)];*/ glEnable(GL_TEXTURE_2D); if (!which_image || !*which_image || !strcmp(which_image, "BUILTIN")) setup_xpm_texture (mi, earth_xpm); else setup_file_texture (mi, which_image); check_gl_error("texture initialization"); /* Need to flip the texture top for bottom for some reason. */ glMatrixMode (GL_TEXTURE); glScalef (1, -1, 1); glMatrixMode (GL_MODELVIEW); }