Public Member Functions

mitk::GPGPU::Texture Class Reference

#include <mitkGPGPU.h>

List of all members.

Public Member Functions

 Texture (mitk::GPGPU::TextureFormat format, int width, int height, int depth=0)
 ~Texture ()
void ActivateAsSource (int unit)
void ActivateAsDestination ()
void Upload (mitk::GPGPU::TextureFormat inputformat, const void *src)
void Download (mitk::GPGPU::TextureFormat inputformat, void *dst)
int GetWidth ()
int GetHeigth ()
int GetDepth ()

Detailed Description

Definition at line 66 of file mitkGPGPU.h.


Constructor & Destructor Documentation

mitk::GPGPU::Texture::Texture ( mitk::GPGPU::TextureFormat  format,
int  width,
int  height,
int  depth = 0 
)

Definition at line 73 of file mitkGPGPU.cpp.

References convertTextureFormatToInternalFormatGL(), GL_CLAMP_TO_EDGE, GL_NEAREST, GL_RGBA, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_R, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_UNSIGNED_BYTE, glActiveTexture, glBindTexture(), glGenFramebuffers, glGenTextures(), glTexImage2D(), glTexImage3D, glTexParameteri(), GPGPU_CHECKGLERR, and OPERATING_TEXTURE.

mitk::GPGPU::Texture::~Texture (  )

Definition at line 129 of file mitkGPGPU.cpp.

References glDeleteFramebuffers, glDeleteTextures(), and GPGPU_CHECKGLERR.

{
  GLuint handle;

  handle=glFBOHandle;
  glDeleteFramebuffers(1,&handle);
  GPGPU_CHECKGLERR << "deleting framebufferobject";

  handle=glTextureHandle;
  glDeleteTextures(1,&handle);
  GPGPU_CHECKGLERR << "deleting texture handle";
}

Member Function Documentation

void mitk::GPGPU::Texture::ActivateAsDestination (  )

Definition at line 150 of file mitkGPGPU.cpp.

References GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_FRAMEBUFFER, GL_FRAMEBUFFER_COMPLETE_EXT, GL_FRAMEBUFFER_EXT, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT, GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT, GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT, GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT, GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT, GL_FRAMEBUFFER_UNSUPPORTED_EXT, GL_NONE, glBindFramebuffer, glCheckFramebufferStatusEXT, glDrawBuffers, glFramebufferTexture2D, glViewport(), GPGPU_CHECKGLERR, and GPGPU_ERROR.

{

  static GLenum buffers[5][4] =
  {
    { GL_NONE, GL_NONE, GL_NONE, GL_NONE },
    { GL_COLOR_ATTACHMENT0, GL_NONE, GL_NONE, GL_NONE },
    { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_NONE, GL_NONE },
    { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_NONE },
    { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3 },
  };


  glBindFramebuffer( GL_FRAMEBUFFER, glFBOHandle );
  glDrawBuffers(4, buffers[1]);
  glFramebufferTexture2D( GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, glTarget,glTextureHandle,0);

  GPGPU_CHECKGLERR << "associating texture to framebufferobject";

  int error = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
  switch(error)
  {
          case GL_FRAMEBUFFER_COMPLETE_EXT:
            break;
          case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT:
                   GPGPU_ERROR << "Incomplete attachment\n";break;
          case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:
            GPGPU_ERROR << "Missing attachment\n";break;
          case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:
            GPGPU_ERROR << "Incomplete dimensions\n";break;
          case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:
            GPGPU_ERROR << "Incomplete formats\n";break;
          case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:
            GPGPU_ERROR << "Incomplete draw buffer\n";break;
          case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:
            GPGPU_ERROR << "Incomplete read buffer\n";break;
          case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
            GPGPU_ERROR << "Framebufferobjects unsupported\n";break;
          default:
            GPGPU_ERROR << "unknown framebuffer status\n";break;
  }

  glViewport(0,0,myWidth,myHeight);

  GPGPU_CHECKGLERR << "setting viewport";
}
void mitk::GPGPU::Texture::ActivateAsSource ( int  unit )

Definition at line 142 of file mitkGPGPU.cpp.

References GL_TEXTURE0, glActiveTexture, glBindTexture(), and GPGPU_CHECKGLERR.

{
  glActiveTexture(GL_TEXTURE0 + unit);
  glBindTexture(glTarget,glTextureHandle);

  GPGPU_CHECKGLERR << "binding texture to unit";
}
void mitk::GPGPU::Texture::Download ( mitk::GPGPU::TextureFormat  inputformat,
void *  dst 
)
int mitk::GPGPU::Texture::GetDepth (  )

Definition at line 70 of file mitkGPGPU.cpp.

{return myDepth;}
int mitk::GPGPU::Texture::GetHeigth (  )

Definition at line 69 of file mitkGPGPU.cpp.

{return myHeight;}
int mitk::GPGPU::Texture::GetWidth (  )

Definition at line 68 of file mitkGPGPU.cpp.

{return myWidth;}
void mitk::GPGPU::Texture::Upload ( mitk::GPGPU::TextureFormat  inputformat,
const void *  src 
)

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines