void convertToRGBA(Ppmimage *picture) { int w = picture->width; int y = picture->height; unsigned char *silhouetteData = buildAlphaData(picture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; }
void init_character_boxes(void) { int w,h; glViewport(0, 0, xres, yres); //Initialize matrices glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //This sets 2D mode (no perspective) glOrtho(0, xres, 0, yres, -1, 1); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glDisable(GL_FOG); glDisable(GL_CULL_FACE); glClearColor(1.0, 1.0, 1.0, 1.0); //Do this to allow fonts glEnable(GL_TEXTURE_2D); initialize_fonts(); /*********** Initialize Textures *************************/ /*GUILE CHARACTER BOX TEXTURE*/ char b[] = "./images/selectGuile.ppm"; guileImage = ppm6GetImage(guileImage, b); glGenTextures(1, &guileTexture); glBindTexture(GL_TEXTURE_2D, guileTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); w = guileImage->width; h = guileImage->height; unsigned char *guileData = buildAlphaData(guileImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, guileData); delete [] guileData; /********** Initialize Box Position (s) **********/ charBox1.pos[0] = 200; charBox1.pos[1] = 300; charBox1.width = 200; charBox1.height = 300; }
void init_opengl(void) { //OpenGL initialization glViewport(0, 0, xres, yres); //Initialize matrices glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //This sets 2D mode (no perspective) glOrtho(0, xres, 0, yres, -1, 1); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glDisable(GL_FOG); glDisable(GL_CULL_FACE); //Clear the screen glClearColor(1.0, 1.0, 1.0, 1.0); //glClear(GL_COLOR_BUFFER_BIT); //Do this to allow fonts glEnable(GL_TEXTURE_2D); initialize_fonts(); // //load the images file into a ppm structure. // kangarooImage = ppm6GetImage("./images/ricky.ppm"); levelImage = ppm6GetImage("./images/LevelBlack.ppm"); mountainsImage = ppm6GetImage("./images/BackBlack.ppm"); startImage = ppm6GetImage("./images/start.ppm"); whiteImage = ppm6GetImage("./images/white.ppm"); gameoverImage = ppm6GetImage("./images/wasted.ppm"); //------------------------------------------------------- rhinoImage = ppm6GetImage("./images/rhino.ppm"); animalImage = ppm6GetImage("./images/altrhino.ppm"); /*ufoImage = ppm6GetImage("./images/ufo.ppm");*/ // //create opengl texture elements glGenTextures(1, &RhinoTexture); glGenTextures(1, &AnimalTexture); glGenTextures(1, &KangarooTexture); glGenTextures(1, &LevelTexture); glGenTextures(1, &MountainTexture); glGenTextures(1, &StartTexture); glGenTextures(1, &WhiteTexture); glGenTextures(1, &GameOverTexture); //----------------------------------------------------------------- //------------------------------------------------------------------------- // // Kangaroo // int w = kangarooImage->width; int h = kangarooImage->height; glBindTexture(GL_TEXTURE_2D, KangarooTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... unsigned char *Transparent = buildAlphaData(kangarooImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent); //------------------------------------------------------------------------- // // Kangaroo - Punch // init_punch_texture(w,h); //------------------------------------------------------------------------- // // Kangaroo - Hop // init_hop_texture(w,h); //------------------------------------------------------------------------- // // Rhino // int w1 = rhinoImage->width; int h1 = rhinoImage->height; glBindTexture(GL_TEXTURE_2D, RhinoTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... Transparent = buildAlphaData(rhinoImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w1, h1, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent); //------------------------------------------------------------------------- // // Animal // int w2 = animalImage->width; int h2 = animalImage->height; glBindTexture(GL_TEXTURE_2D, AnimalTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... Transparent = buildAlphaData(animalImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w2, h2, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent); //------------------------------------------------------------------------- // // UFO Spaceship // ufoOpenGL(); /*int w3 = ufoImage->width; int h3 = ufoImage->height; glBindTexture(GL_TEXTURE_2D, UFOTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... Transparent = buildAlphaData(ufoImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w3, h3, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent);*/ //------------------------------------------------------------------------- // // Background - Platforms // glBindTexture(GL_TEXTURE_2D, LevelTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... Transparent = buildAlphaData(levelImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, levelImage->width, levelImage->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent); //------------------------------------------------------------------------- // // Background - Mountains // glBindTexture(GL_TEXTURE_2D, MountainTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... Transparent = buildAlphaData(mountainsImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, mountainsImage->width, mountainsImage->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Transparent); free(Transparent); //------------------------------------------------------------------------- // // Start Page // glBindTexture(GL_TEXTURE_2D, StartTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, startImage->width, startImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, startImage->data); //------------------------------------------------------------------------- // // Death flash // glBindTexture(GL_TEXTURE_2D, WhiteTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, whiteImage->width, whiteImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, whiteImage->data); //------------------------------------------------------------------------- // // Gameover // glBindTexture(GL_TEXTURE_2D, GameOverTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, gameoverImage->width, gameoverImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, gameoverImage->data); //------------------------------------------------------------------------- }
void loadTextures() { // load image from ppm structure skeletonBase = ppm6GetImage("./images/platformer_sprites_pixelized_0.ppm"); background = ppm6GetImage("./images/neb.ppm"); spike = ppm6GetImage("./images/superspikes.ppm"); missile = ppm6GetImage("./images/missile.ppm"); guts = ppm6GetImage("./images/guts.ppm"); menu = ppm6GetImage("./images/main.ppm"); howTo = ppm6GetImage("./images/howTo2.ppm"); // generate opengl texture element glGenTextures(1, &skeletonTexture); glGenTextures(1, &backgroundTexture); glGenTextures(1, &spikeTexture); glGenTextures(1, &missileTexture); glGenTextures(1, &gutsTexture); glGenTextures(1, &menuTexture); glGenTextures(1, &howToTexture); glGenTextures(1, &silhouetteTexture); glGenTextures(1, &silhouetteTextureSpikes); glGenTextures(1, &silhouetteTextureMissile); glGenTextures(1, &silhouetteTextureGuts); //////////////////// Missile ////////////////////// glBindTexture(GL_TEXTURE_2D, missileTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, missile->width, missile->height, 0, GL_RGB, GL_UNSIGNED_BYTE, missile->data); ////////////////////// guts //////////////////////////// glBindTexture(GL_TEXTURE_2D, gutsTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, guts->width, guts->height, 0, GL_RGB, GL_UNSIGNED_BYTE, guts->data); /////////////////// spikes //////////////// glBindTexture(GL_TEXTURE_2D, spikeTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, spike->width, spike->height, 0, GL_RGB, GL_UNSIGNED_BYTE, spike->data); /////////////////// Skeleton sprite texture //////////////////////// glBindTexture(GL_TEXTURE_2D, skeletonTexture); // bilinear filtering glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // write to video memory glTexImage2D(GL_TEXTURE_2D, 0, 3, skeletonBase->width, skeletonBase->height, 0, GL_RGB, GL_UNSIGNED_BYTE, skeletonBase->data); //////////////////// silhouette for character/////////////////////// glBindTexture(GL_TEXTURE_2D, silhouetteTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); unsigned char *silhouetteData = buildAlphaData(skeletonBase); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, skeletonBase->width, skeletonBase->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; //////////////////// silhouette for spikes/////////////////////// glBindTexture(GL_TEXTURE_2D, silhouetteTextureSpikes); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); silhouetteData = buildAlphaData(spike); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, spike->width, spike->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; //////////////////// silhouette for missile/////////////////////// glBindTexture(GL_TEXTURE_2D, silhouetteTextureMissile); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); silhouetteData = buildAlphaData(missile); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, missile->width, missile->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; //////////////////// silhouette for missile/////////////////////// glBindTexture(GL_TEXTURE_2D, silhouetteTextureGuts); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); silhouetteData = buildAlphaData(guts); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, guts->width, guts->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; ////////////// GAME BACKGROUND //////////////////////////// glBindTexture(GL_TEXTURE_2D, backgroundTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, background->width, background->height, 0, GL_RGB, GL_UNSIGNED_BYTE, background->data); //////////////MENU BACKGROUND ///////////////////////////// glBindTexture(GL_TEXTURE_2D, menuTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, menu->width, menu->height, 0, GL_RGB, GL_UNSIGNED_BYTE, menu->data); //////////////HOW_TO BACKGROUND ///////////////////////////// glBindTexture(GL_TEXTURE_2D, howToTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, howTo->width, howTo->height, 0, GL_RGB, GL_UNSIGNED_BYTE, howTo->data); }
void init_opengl(void) { //OpenGL initialization glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); //Initialize matrices glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //Set 2D mode (no perspective) glOrtho(0, WINDOW_WIDTH, 0, WINDOW_HEIGHT, -1, 1); //added for background glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glDisable(GL_FOG); glDisable(GL_CULL_FACE); //clear the screen glClearColor(1.0, 1.0, 1.0, 1.0); backgroundImage = ppm6GetImage("./images/background.ppm"); backgroundTransImage = ppm6GetImage("./images/backgroundTrans.ppm"); gameoverbgImage = ppm6GetImage("./images/gameoverbg.ppm"); //------------------------------------------------------------------- //bullet glGenTextures(1, &bulletTexture); bulletImage = ppm6GetImage("./images/bullet.ppm"); int w3 = bulletImage->width; int h3 = bulletImage->height; glBindTexture(GL_TEXTURE_2D, bulletTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w3, h3, 0, GL_RGB, GL_UNSIGNED_BYTE, bulletImage->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //White duck score sprite glGenTextures(1, &duckscoreTexture); duckscoreImage = ppm6GetImage("./images/duck_score_1.ppm"); int w4 = duckscoreImage->width; int h4 = duckscoreImage->height; glBindTexture(GL_TEXTURE_2D, duckscoreTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w4, h4, 0, GL_RGB, GL_UNSIGNED_BYTE, duckscoreImage->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //Red duck score sprite glGenTextures(1, &duckscoreTexture2); duckscoreImage2 = ppm6GetImage("./images/duck_score_2.ppm"); int w5 = duckscoreImage2->width; int h5 = duckscoreImage2->height; glBindTexture(GL_TEXTURE_2D, duckscoreTexture2); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w5, h5, 0, GL_RGB, GL_UNSIGNED_BYTE, duckscoreImage2->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck sprite glGenTextures(1, &duckTexture); glGenTextures(1, &duckSil); duckImage = ppm6GetImage("./images/ducks1.ppm"); int w = duckImage->width; int h = duckImage->height; glBindTexture(GL_TEXTURE_2D, duckTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, duckImage->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck sprite 2 glGenTextures(1, &duckTexture2); glGenTextures(1, &duckSil2); duckImage2 = ppm6GetImage("./images/duck2.ppm"); int w2 = duckImage2->width; int h2 = duckImage2->height; glBindTexture(GL_TEXTURE_2D, duckTexture2); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w2, h2, 0, GL_RGB, GL_UNSIGNED_BYTE, duckImage2->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck sprite 3 glGenTextures(1, &duckTexture3); glGenTextures(1, &duckSil3); duckImage3 = ppm6GetImage("./images/shotduck1.ppm"); int w6 = duckImage3->width; int h6 = duckImage3->height; glBindTexture(GL_TEXTURE_2D, duckTexture3); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w6, h6, 0, GL_RGB, GL_UNSIGNED_BYTE, duckImage3->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck sprite 4 glGenTextures(1, &duckTexture4); glGenTextures(1, &duckSil4); duckImage4 = ppm6GetImage("./images/shotduck2.ppm"); int w7 = duckImage4->width; int h7 = duckImage4->height; glBindTexture(GL_TEXTURE_2D, duckTexture4); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w7, h7, 0, GL_RGB, GL_UNSIGNED_BYTE, duckImage4->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck sprite 5 glGenTextures(1, &duckTexture5); glGenTextures(1, &duckSil5); duckImage5 = ppm6GetImage("./images/ducks2.ppm"); int w8 = duckImage5->width; int h8 = duckImage5->height; glBindTexture(GL_TEXTURE_2D, duckTexture5); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w8, h8, 0, GL_RGB, GL_UNSIGNED_BYTE, duckImage5->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //duck silhouette glBindTexture(GL_TEXTURE_2D, duckSil); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData = buildAlphaData(duckImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); delete [] silhouetteData; //------------------------------------------------------------------- //------------------------------------------------------------------- //duck silhouette 2 glBindTexture(GL_TEXTURE_2D, duckSil2); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData2 = buildAlphaData(duckImage2); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w2, h2, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData2); delete [] silhouetteData2; //------------------------------------------------------------------- //------------------------------------------------------------------- //duck silhouette 3 glBindTexture(GL_TEXTURE_2D, duckSil3); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData3 = buildAlphaData(duckImage3); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w6, h6, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData3); delete [] silhouetteData3; //------------------------------------------------------------------- //------------------------------------------------------------------- //duck silhouette 4 glBindTexture(GL_TEXTURE_2D, duckSil4); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData4 = buildAlphaData(duckImage4); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w7, h7, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData4); delete [] silhouetteData4; //------------------------------------------------------------------- //------------------------------------------------------------------- //duck silhouette 5 glBindTexture(GL_TEXTURE_2D, duckSil5); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData5 = buildAlphaData(duckImage5); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w8, h8, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData5); delete [] silhouetteData5; //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog sprite 1 glGenTextures(1, &dogTexture1); glGenTextures(1, &dogSil1); dogImage1 = ppm6GetImage("./images/dogs1.ppm"); int w10 = dogImage1->width; int h10 = dogImage1->height; glBindTexture(GL_TEXTURE_2D, dogTexture1); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w10, h10, 0, GL_RGB, GL_UNSIGNED_BYTE, dogImage1->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog sprite 2 glGenTextures(1, &dogTexture2); glGenTextures(1, &dogSil2); dogImage2 = ppm6GetImage("./images/dogs21.ppm"); int w11 = dogImage2->width; int h11 = dogImage2->height; glBindTexture(GL_TEXTURE_2D, dogTexture2); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w11, h11, 0, GL_RGB, GL_UNSIGNED_BYTE, dogImage2->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog sprite 3 glGenTextures(1, &dogTexture3); glGenTextures(1, &dogSil3); dogImage3 = ppm6GetImage("./images/dogs3.ppm"); int w12 = dogImage3->width; int h12 = dogImage3->height; glBindTexture(GL_TEXTURE_2D, dogTexture3); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w12, h12, 0, GL_RGB, GL_UNSIGNED_BYTE, dogImage3->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog sprite 4 glGenTextures(1, &dogTexture4); glGenTextures(1, &dogSil4); dogImage4 = ppm6GetImage("./images/dog1.ppm"); int w17 = dogImage4->width; int h17 = dogImage4->height; glBindTexture(GL_TEXTURE_2D, dogTexture4); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w17, h17, 0, GL_RGB, GL_UNSIGNED_BYTE, dogImage4->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog silhouette 4 glBindTexture(GL_TEXTURE_2D, dogSil4); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData17 = buildAlphaData(dogImage4); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w17, h17, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData17); delete [] silhouetteData17; //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog silhouette 1 glBindTexture(GL_TEXTURE_2D, dogSil1); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData6 = buildAlphaData(dogImage1); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w10, h10, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData6); delete [] silhouetteData6; //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog silhouette 2 glBindTexture(GL_TEXTURE_2D, dogSil2); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData7 = buildAlphaData(dogImage2); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w11, h11, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData7); delete [] silhouetteData7; //------------------------------------------------------------------- //------------------------------------------------------------------- //Dog silhouette 3 glBindTexture(GL_TEXTURE_2D, dogSil3); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); ////must build a new set of data... unsigned char *silhouetteData8 = buildAlphaData(dogImage3); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w12, h12, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData8); delete [] silhouetteData8; //------------------------------------------------------------------- //------------------------------------------------------------------- //background textures //create opengl texture elements glGenTextures(1, &backgroundTexture); glBindTexture(GL_TEXTURE_2D, backgroundTexture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, backgroundImage->width, backgroundImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, backgroundImage->data); //------------------------------------------------------------------- //------------------------------------------------------------------- //No genTextures for trans image? //forest transparent part glBindTexture(GL_TEXTURE_2D, backgroundTransTexture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); //must build a new set of data... int w15 = backgroundTransImage->width; int h15 = backgroundTransImage->height; unsigned char *ftData = buildAlphaData(backgroundTransImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w15, h15, 0, GL_RGBA, GL_UNSIGNED_BYTE, ftData); delete [] ftData; //------------------------------------------------------------------- //------------------------------------------------------------------- //gameover glGenTextures(1, &gameoverbgTexture); glBindTexture(GL_TEXTURE_2D, gameoverbgTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, gameoverbgImage->width, gameoverbgImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, gameoverbgImage->data); //------------------------------------------------------------------- glEnable(GL_TEXTURE_2D); initialize_fonts(); }
void init_opengl(void) { //OpenGL initialization glViewport(0, 0, xres, yres); //Initialize matrices glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //This sets 2D mode (no perspective) glOrtho(0, xres, 0, yres, -1, 1); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glDisable(GL_FOG); glDisable(GL_CULL_FACE); //Clear the screen glClearColor(1.0, 1.0, 1.0, 1.0); //glClear(GL_COLOR_BUFFER_BIT); //Do this to allow fonts glEnable(GL_TEXTURE_2D); initialize_fonts(); // //load the images file into a ppm structure. // bigfootImage = ppm6GetImage("./images/bigfoot.ppm"); forestImage = ppm6GetImage("./images/forest.ppm"); forestTransImage = ppm6GetImage("./images/forestTrans.ppm"); umbrellaImage = ppm6GetImage("./images/umbrella.ppm"); // //create opengl texture elements glGenTextures(1, &bigfootTexture); glGenTextures(1, &silhouetteTexture); glGenTextures(1, &forestTexture); glGenTextures(1, &umbrellaTexture); //------------------------------------------------------------------------- //bigfoot // int w = bigfootImage->width; int h = bigfootImage->height; // glBindTexture(GL_TEXTURE_2D, bigfootTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, bigfootImage->data); //------------------------------------------------------------------------- // //silhouette //this is similar to a sprite graphic // glBindTexture(GL_TEXTURE_2D, silhouetteTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... unsigned char *silhouetteData = buildAlphaData(bigfootImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); free(silhouetteData); //glTexImage2D(GL_TEXTURE_2D, 0, 3, w, h, 0, // GL_RGB, GL_UNSIGNED_BYTE, bigfootImage->data); //------------------------------------------------------------------------- // //umbrella // glBindTexture(GL_TEXTURE_2D, umbrellaTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... silhouetteData = buildAlphaData(umbrellaImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, silhouetteData); free(silhouetteData); //glTexImage2D(GL_TEXTURE_2D, 0, 3, w, h, 0, // GL_RGB, GL_UNSIGNED_BYTE, bigfootImage->data); //------------------------------------------------------------------------- // //forest glBindTexture(GL_TEXTURE_2D, forestTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, 3, forestImage->width, forestImage->height, 0, GL_RGB, GL_UNSIGNED_BYTE, forestImage->data); //------------------------------------------------------------------------- // //forest transparent part // glBindTexture(GL_TEXTURE_2D, forestTransTexture); // glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // //must build a new set of data... w = forestTransImage->width; h = forestTransImage->height; unsigned char *ftData = buildAlphaData(forestTransImage); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ftData); free(ftData); //glTexImage2D(GL_TEXTURE_2D, 0, 3, w, h, 0, //GL_RGB, GL_UNSIGNED_BYTE, bigfootImage->data); //------------------------------------------------------------------------- }