00001 #include "VTexture.h"
00002 #include "corona.h"
00003
00004 #include <GL/glew.h>
00005 #include <GL/glut.h>
00006
00007 #include <string>
00008 #include <iostream>
00009
00010 using namespace corona;
00011 using namespace std;
00012
00013 VTexture::VTexture(string _filename)
00014 {
00015 this->filename = "data/"+_filename;
00016 Image* image = OpenImage(this->filename.c_str(),PF_R8G8B8A8 );
00017 if (!image) {
00018 cout << "Couldn't open image " << this->filename << endl;
00019 } else {
00020 this->width = image->getWidth();
00021 this->height = image->getHeight();
00022 this->pixels = (GLbyte*)image->getPixels();
00023 glGenTextures(1,&(this->tex));
00024 glBindTexture(GL_TEXTURE_2D, this->tex);
00025 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
00026 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
00027 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
00028 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
00029 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, this->width, this->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, this->pixels);
00030 }
00031 delete image;
00032 image = 0;
00033 }
00034 void VTexture::bind() {
00035 glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE, GL_MODULATE);
00036 glBindTexture(GL_TEXTURE_2D, this->tex);
00037 }
00038
00039 VTexture::~VTexture(void){
00040 delete[] this->pixels;
00041 }