42 #ifdef CHECK_MEMORY_LEAKS
44 #endif // CHECK_MEMORY_LEAKS
60 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max);
68 glGenTextures(1, &
id);
69 glBindTexture(GL_TEXTURE_2D,
id);
70 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
71 i->getWidth(), i->getHeight(), 0,
72 GL_RGBA, GL_UNSIGNED_BYTE, i->getData());
73 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
74 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
75 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
76 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
77 glBindTexture(GL_TEXTURE_2D, 0);
95 glEnable(GL_TEXTURE_2D);
96 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
97 glDisable(GL_CULL_FACE);
99 glDisable(GL_LIGHTING);
100 glDisable(GL_COLOR_MATERIAL);
101 glDisable(GL_TEXTURE_GEN_S);
102 glDisable(GL_TEXTURE_GEN_T);
103 glDisable(GL_ALPHA_TEST);
105 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
106 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
107 glBindTexture(GL_TEXTURE_2D, which);
108 glBegin(GL_TRIANGLE_STRIP);
110 glVertex2d(sizeX1, sizeY1);
112 glVertex2d(sizeX1, sizeY2);
114 glVertex2d(sizeX2, sizeY1);
116 glVertex2d(sizeX2, sizeY2);
118 glBindTexture(GL_TEXTURE_2D, 0);
119 glEnable(GL_DEPTH_TEST);
135 WRITE_ERROR(
"Could not load '" + filename +
"'.\n" + e.what());
static GUIGlID add(FXImage *i)
Adds a texture to use.
#define WRITE_WARNING(msg)
static std::map< std::string, int > myTextures
mapping from image paths to decals (initialization on first use)
static void clearTextures()
clears loaded textures
static FXbool scalePower2(FXImage *image, int maxSize=(2<< 29))
static void drawTexturedBox(unsigned int which, SUMOReal size)
Draws a named texture as a box with the given size.
static GUIMainWindow * getInstance()
static bool myAllowTextures
whether textures are drawn
static FXImage * loadImage(FXApp *a, const std::string &file)
static int getMaxTextureSize()
return maximum number of pixels in x and y direction
static int getTextureID(const std::string &filename)
return texture id for the given filename (initialize on first use)