/*------------------------------------*/ void loadFace(GLenum target, char *filename) { pngRawInfo png; GLenum format; png.Data = 0; png.Palette = 0; pngLoadRaw(filename, &png); if(png.Palette) { fprintf(stderr, "error - \"%s\" - paletted images not supported.\n", filename); exit(0); } if(png.Alpha) format = GL_RGBA; else format = GL_RGB; if(mipmap) { gluBuild2DMipmaps(target, png.Components, png.Width, png.Height, format, GL_UNSIGNED_BYTE, png.Data); } else { glTexImage2D(target, 0, png.Components, png.Width, png.Height, 0, format, GL_UNSIGNED_BYTE, png.Data); } free(png.Data); }
void Texture::BindTexture() { glGenTextures(1, &m_texture_id); glBindTexture(GL_TEXTURE_2D, m_texture_id); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glTranslatef(0.5, 0.5, 0.0); glScalef(0.5, 0.5, 1.0); glMatrixMode(GL_MODELVIEW); if ( m_pData == NULL ) { // pnt format pngLoadRaw(m_sFileName.c_str(), &m_pngInfo); m_width = m_pngInfo.Width; m_height = m_pngInfo.Height; m_alpha = OFF_ALPHA; m_depth = 3; m_pData = new byte[m_height * m_width * m_depth]; //swap for( int i = 0; i < m_height; i++ ) { for( int j = 0; j < m_width; j++ ) { m_pData[(i * m_width + j) * 3 + 0] = m_pngInfo.Data[((m_height - i) * m_width + j) * 3 + 0]; m_pData[(i * m_width + j) * 3 + 1] = m_pngInfo.Data[((m_height - i) * m_width + j) * 3 + 1]; m_pData[(i * m_width + j) * 3 + 2] = m_pngInfo.Data[((m_height - i) * m_width + j) * 3 + 2]; } } free(m_pngInfo.Data); glTexImage2D(GL_TEXTURE_2D, 0, 3, GetWidth(), GetHeight(), 0, GL_RGB, GL_UNSIGNED_BYTE, GetData()); } else { glTexImage2D(GL_TEXTURE_2D, 0, 3, GetWidth(), GetHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, GetData()); } }
void init(void) { glEnable(GL_DEPTH_TEST); glClearColor(0.6, 0.6, 0.6, 1); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); pngLoadRaw("terrain5.png", &info); setheight(); move[1] = bilinear(move[0], move[2]); tri[0] = Vec3(0, bilinear(0, 0.5), 0.5); tri[1] = Vec3(2.5, bilinear(2.5, 0), 0); tri[2] = Vec3(0, bilinear(0, -0.5), -0.5); car = glmReadOBJ("porsche.obj"); glmUnitize(car); glmScale(car, 15); glmFacetNormals(car); glmVertexNormals(car, 90); glEnable(GL_TEXTURE_2D); }