1
0
Fork 0
blockofighter/src/texture.cpp

128 lines
2.7 KiB
C++

/*
* $Id: texture.cpp,v 1.7 2002/07/17 16:40:33 msell Exp $
*
*
* $Log: texture.cpp,v $
* Revision 1.7 2002/07/17 16:40:33 msell
* Resoluution vaihto
*
* Revision 1.6 2002/06/27 21:43:50 jkaarlas
* lisätty setId-funktio
*
* Revision 1.5 2002/06/20 15:27:48 jkaarlas
* bindtexture siirretty oikeaan paikkaan
*
* Revision 1.4 2002/06/20 00:21:01 jkaarlas
* materiaali- ja tekstuurihommia edistetty
*
* Revision 1.3 2002/06/19 22:45:29 jkaarlas
* nyt nämä menee järkevästi
*
* Revision 1.2 2002/06/15 22:04:01 jkaarlas
* tähänkin jotain sisältöä
*
*
*
*
* $Date: 2002/07/17 16:40:33 $
*
*/
#include "texture.h"
#include "graphics.h"
Texture::Texture(void){
this->textureId = -1;
this->enabled = false;
}
Texture::~Texture(void){
if (textureId != -1){
DRUID.freeTexture(textureId);
textureId = -1;
enabled = false;
}
}
Texture::Texture(int id){
if (id > -1){
this->textureId = id;
this->enabled = false;
}
else{
this->textureId = -1;
this->enabled = false;
}
}
bool Texture::loadImage(char* path){
format = GL_RGB;
texture = IMG_Load(path);
//texture = SDL_DisplayFormatAlpha(texture);
this->textureId = DRUID.loadTexture(texture, -1);
//this->textureId = DRUID.loadTexture(path, -1);
this->enable();
return this->isValidId();
}
bool Texture::loadImage(char* path, float *trans){
format = GL_RGBA;
texture = IMG_Load(path);
Uint32 colorKey = SDL_MapRGB(texture->format,
(Uint8)(trans[0] * 255),
(Uint8)(trans[1] * 255),
(Uint8)(trans[2] * 255));
//SDL_SetAlpha(texture, 0, SDL_ALPHA_OPAQUE);
SDL_SetColorKey(texture, SDL_SRCCOLORKEY, colorKey);
//SDL_Surface* alphaSurface = SDL_DisplayFormatAlpha(texture);
texture = SDL_DisplayFormatAlpha(texture);
this->textureId = DRUID.loadTexture(texture, -1, format);
this->enable();
return this->isValidId();
}
void Texture::reload(void){
this->textureId = DRUID.loadTexture(texture, -1, format);
this->enable();
}
void Texture::disable(void){
this->enabled = false;
glDisable(GL_TEXTURE_2D);
}
void Texture::enable(void){
if (textureId > -1){
this->enabled = true;
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureId);
}
}
bool Texture::isEnabled(void){
return this->enabled;
}
int Texture::getId(void){
return this->textureId;
}
void Texture::setId(int id){
if (id > -1){
this->textureId = id;
this->enable();
}
}
bool Texture::isValidId(void){
return (this->textureId > -1);
}