pplugins/pui/textures.cpp

61 lines
1.6 KiB
C++

#include <pugl/pugl.h>
#include "pui.h"
#include "textures/slider1-vert.c"
#include "textures/slider1-vert-prelight.c"
#include "textures/trough1-vertical.c"
#include "textures/slider2-vert.c"
#include "textures/slider2-vert-prelight.c"
#include "textures/trough2-vertical.c"
#include "textures/knob4.c"
void PTextures::BindTexture(int texture, int width, int height, const unsigned char *data)
{
glBindTexture(GL_TEXTURE_2D, tex[texture]);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
w[texture] = width;
h[texture] = height;
}
void PTextures::InitTextures()
{
if (initialised) return;
initialised = true;
glGenTextures(TEX_END, this->tex);
BindTexture(TEX_SLIDER1,
slider1_vert.width,
slider1_vert.height,
slider1_vert.pixel_data);
BindTexture(TEX_SLIDER1_PRE,
slider1_vert_prelight.width,
slider1_vert_prelight.height,
slider1_vert_prelight.pixel_data);
BindTexture(TEX_TROUGH1,
trough1_vertical.width,
trough1_vertical.height,
trough1_vertical.pixel_data);
BindTexture(TEX_SLIDER2,
slider2_vert.width,
slider2_vert.height,
slider2_vert.pixel_data);
BindTexture(TEX_SLIDER2_PRE,
slider2_vert_prelight.width,
slider2_vert_prelight.height,
slider2_vert_prelight.pixel_data);
BindTexture(TEX_TROUGH2,
trough2_vertical.width,
trough2_vertical.height,
trough2_vertical.pixel_data);
BindTexture(TEX_KNOB,
knob4.width,
knob4.height,
knob4.pixel_data);
}