Eigene Dateien/Vis/src/VImage.cpp

Go to the documentation of this file.
00001 #include "VImage.h"
00002 #include "VFramebufferObject.h"
00003 
00004 #include "glew.h"
00005 #include "IL/il.h"
00006 #include "IL/ilu.h"
00007 #include "IL/ilut.h"
00008 
00009 bool VImage::loadImage(std::string filename)
00010 {
00011         if(!VFramebufferObject::devIlInitialised)
00012         {
00013                 VFramebufferObject::initialiseDevIl();
00014         }
00015         
00016         deleteImage();
00017 
00018         unsigned int ilImageHandle;
00019         ilGenImages(1, &ilImageHandle);
00020         ilBindImage(ilImageHandle);
00021         ilLoadImage(filename.c_str());
00022         //iluFlipImage();
00023         m_ImageHandle = ilutGLBindMipmaps();
00024 
00025         
00026         ilDeleteImages(1, &ilImageHandle);
00027         if(m_ImageHandle == 0)
00028         {
00029                 return false;
00030         }
00031         return true;
00032 }
00033 
00034 void VImage::deleteImage()
00035 {
00036         if(m_ImageHandle != 0)
00037         {
00038                 glDeleteTextures(1,&m_ImageHandle);
00039         }
00040 }
00041 
00042 void VImage::renderToLowerRightQuad()
00043 {
00044         glActiveTextureARB(GL_TEXTURE0_ARB);
00045         glEnable(GL_TEXTURE_2D);
00046         glBindTexture(GL_TEXTURE_2D,m_ImageHandle);
00047 
00048         VFramebufferObject::getRenderToScreenProgram()->bind();
00049 
00050         glUniform1i(VFramebufferObject::getRenderToScreenProgram()->getUniformLocation("mTexture"),0);
00051 
00052         glBegin(GL_QUADS);
00053         glTexCoord2f(0.0f, 0.0f);
00054         glVertex3f(0.5f, -1.0f, -0.01f);
00055 
00056         glTexCoord2f(1.0f, 0.0f);
00057         glVertex3f(1.0f, -1.0f, -0.01f);
00058 
00059         glTexCoord2f(1.0f, 1.0f);
00060         glVertex3f(1.0f, -0.5f, -0.01f);
00061 
00062         glTexCoord2f(0.0f, 1.0f);
00063         glVertex3f(0.5f, -0.5f, -0.01f);
00064         glEnd();
00065 
00066         VFramebufferObject::getRenderToScreenProgram()->release();
00067 
00068         glActiveTextureARB(GL_TEXTURE0_ARB);
00069         glBindTexture(GL_TEXTURE_2D, 0);
00070         glDisable(GL_TEXTURE_2D);
00071 }

Generated on Wed Dec 5 05:15:09 2007 for VolRendering by  doxygen 1.5.4