#include <GL/gl.h>Go to the source code of this file.
Enumerations | |
| enum | TEXTURE { TEX_ROCK, TEX_SNOW, TEX_GRASS, TEX_SAND, TEX_CHECK, TEX_N } |
Functions | |
| void | initTextures () |
| void | deleteTextures () |
| GLuint | texture (TEXTURE t) |
Variables | |
| GLuint | g_cube_map_handle |
|
|
Definition at line 6 of file texture.h. Referenced by drawHeightField(), and hftexture().
|
|
|
Definition at line 134 of file texture.cpp. References g_cube_map_handle, g_handles, and TEX_N.
00135 {
00136 // Release handles
00137 glDeleteTextures( TEX_N, g_handles );
00138
00139 glDeleteTextures( 1, &g_cube_map_handle);
00140 }
|
|
|
Definition at line 42 of file texture.cpp. References g_cube_map_files, g_cube_map_handle, g_cube_map_textures, g_handles, g_strResourceDir, g_texfiles, g_textures, and TEX_N. Referenced by initGL().
00043 {
00044 // Generate handles
00045 glGenTextures( TEX_N, g_handles );
00046
00047 glGenTextures( 1, &g_cube_map_handle);
00048
00049 // Load textures
00050 for (int i=0; i<TEX_N; i++) {
00051
00052 // Generate filename
00053 char filename[300];
00054 strcpy( filename, g_strResourceDir );
00055 strcat( filename, g_texfiles[i] );
00056
00057 // Open and read file (binary mode)
00058 FILE *f = fopen( filename, "rb" );
00059 if (f == NULL) {
00060 printf( "Error opening texture file %s\n.", g_texfiles[i] );
00061 exit(1);
00062 }
00063
00064 int n = fread( g_textures[i], 4, 256*256, f );
00065 if (n != 256*256) {
00066 printf( "Error reading texture file %s: Only %i pixels read.\n",
00067 g_texfiles[i], n );
00068 }
00069 else {
00070 printf( "Successfully loaded texture %s.\n", g_texfiles[i] );
00071 }
00072
00073 // Load texture image to OpenGL
00074 glBindTexture( GL_TEXTURE_2D, g_handles[i] );
00075 // Build all mipmap stages
00076 gluBuild2DMipmaps( GL_TEXTURE_2D, GL_RGBA, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, g_textures[i] );
00077
00078 // Set filtering modes
00079 // LINEAR_MIPMAP_LINEAR specifies the highest quality mode, sometimes called
00080 // "trilinear filtering". Anisotropic is even better, but not yet officially supported in OpenGL.
00081 // glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
00082 //glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
00083
00084 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
00085 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
00086 }
00087
00088 //loading cube map
00089 GLenum Texture;
00090 for (int i=0; i<6; i++)
00091 {
00092 // Generate filename
00093 char filename[200];
00094 strcpy( filename, g_strResourceDir );
00095 strcat( filename, g_cube_map_files[i] );
00096
00097 // Open and read file (binary mode)
00098 FILE *f = fopen( filename, "rb" );
00099 if (f == NULL) {
00100 printf( "Error opening texture file %s\n.", g_cube_map_files[i] );
00101 exit(1);
00102 }
00103
00104 int n = fread( g_cube_map_textures[i], 4, 256*256, f );
00105 if (n != 256*256) {
00106 printf( "Error reading texture file %s: Only %i pixels read.\n",
00107 g_cube_map_files[i], n );
00108 }
00109 else {
00110 printf( "Successfully loaded texture %s.\n", g_cube_map_files[i] );
00111 }
00112
00113 // Load texture image to OpenGL
00114 switch (i)
00115 {
00116 case 0: Texture = GL_TEXTURE_CUBE_MAP_POSITIVE_X; break;
00117 case 1: Texture = GL_TEXTURE_CUBE_MAP_NEGATIVE_X; break;
00118 case 2: Texture = GL_TEXTURE_CUBE_MAP_POSITIVE_Y; break;
00119 case 3: Texture = GL_TEXTURE_CUBE_MAP_NEGATIVE_Y; break;
00120 case 4: Texture = GL_TEXTURE_CUBE_MAP_POSITIVE_Z; break;
00121 case 5: Texture = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z; break;
00122 }
00123 // glBindTexture( GL_TEXTURE_2D, g_handles[i] );
00124 // Build all mipmap stages
00125 gluBuild2DMipmaps( Texture,//GL_TEXTURE_2D,
00126 GL_RGBA, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, g_cube_map_textures[i] );
00127 }
00128 glBindTexture( GL_TEXTURE_CUBE_MAP, g_cube_map_handle);
00129 // glEnable( GL_TEXTURE_CUBE_MAP);
00130
00131 }
|
|
|
Definition at line 144 of file texture.cpp. References g_handles, and TEX_N. Referenced by drawHeightField(), and drawMultipassQuad().
00145 {
00146 assert( t>=0 && t<TEX_N );
00147 return g_handles[t];
00148 }
|
|
|
Definition at line 26 of file texture.h. Referenced by deleteTextures(), and initTextures(). |
1.3.6