Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes
omni::visual::Texture32F Class Reference

RGBA Texture with 32-bit float for each channel. More...

#include <Texture32F.h>

Public Member Functions

 Texture32F ()
 
 Texture32F (RenderBuffer const &_buf, GLuint _target=GL_TEXTURE_2D)
 Construct from render buffer and initialize. More...
 
 ~Texture32F ()
 
void initialize (RenderBuffer const &_buf, GLuint _target=GL_TEXTURE_2D)
 Initialize texture data from render buffer. More...
 
void destroy ()
 
void bind ()
 Bind texture with glBindTexture(target,texId) More...
 
void release ()
 Release texture with glBindTexture(target,0) More...
 
GLuint target () const
 Return GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE. More...
 
GLuint textureId () const
 Return id of this texture. More...
 

Private Attributes

QSize size_
 
GLuint target_ = GL_TEXTURE_2D
 
GLuint texId_ = 0
 

Detailed Description

RGBA Texture with 32-bit float for each channel.

Constructor & Destructor Documentation

omni::visual::Texture32F::Texture32F ( )
26 {}
omni::visual::Texture32F::Texture32F ( RenderBuffer const &  _buf,
GLuint  _target = GL_TEXTURE_2D 
)

Construct from render buffer and initialize.

28  {
29  initialize(_buf, _target);
30  }
void initialize(RenderBuffer const &_buf, GLuint _target=GL_TEXTURE_2D)
Initialize texture data from render buffer.
Definition: Texture32F.cpp:53
omni::visual::Texture32F::~Texture32F ( )
32  {
33  destroy();
34  }
void destroy()
Definition: Texture32F.cpp:36

Member Function Documentation

void omni::visual::Texture32F::bind ( )

Bind texture with glBindTexture(target,texId)

72  {
73  withCurrentContext([&](QOpenGLFunctions& _) {
74  _.glBindTexture(target_, texId_);
75  });
76  }
void withCurrentContext(ContextFunctor f)
Do OpenGL operations with current context, if it exists.
Definition: ContextSwitch.cpp:45
GLuint target_
Definition: Texture32F.h:58
GLuint texId_
Definition: Texture32F.h:59
void omni::visual::Texture32F::destroy ( )
36  {
37  if (texId_ != 0) {
38  withCurrentContext([&](QOpenGLFunctions& _) {
39  _.glDeleteTextures(1, &texId_);
40  texId_ = 0;
41  });
42  }
43  }
void withCurrentContext(ContextFunctor f)
Do OpenGL operations with current context, if it exists.
Definition: ContextSwitch.cpp:45
GLuint texId_
Definition: Texture32F.h:59
void omni::visual::Texture32F::initialize ( RenderBuffer const &  _buf,
GLuint  _target = GL_TEXTURE_2D 
)

Initialize texture data from render buffer.

53  {
54  destroy();
55  target_ = _target;
56  size_= QSize(_buf.width(), _buf.height());
57  withCurrentContext([&](QOpenGLFunctions& _) {
58  _.glGenTextures(1, &texId_);
59  _.glBindTexture(target_, texId_);
60  _.glTexParameteri(target_, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
61  _.glTexParameteri(target_, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
62  _.glTexParameteri(target_, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
63  _.glTexParameteri(target_, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
64  _.glTexImage2D(target_, 0, GL_RGBA32F,
65  size_.width(),
66  size_.height(), 0,
67  GL_RGBA, GL_FLOAT, _buf.ptr());
68  _.glBindTexture(target_, 0);
69  });
70  }
void destroy()
Definition: Texture32F.cpp:36
void withCurrentContext(ContextFunctor f)
Do OpenGL operations with current context, if it exists.
Definition: ContextSwitch.cpp:45
QSize size_
Definition: Texture32F.h:57
GLuint target_
Definition: Texture32F.h:58
GLuint texId_
Definition: Texture32F.h:59
void omni::visual::Texture32F::release ( )

Release texture with glBindTexture(target,0)

78  {
79  withCurrentContext([&](QOpenGLFunctions& _) {
80  _.glBindTexture(target_, 0);
81  });
82  }
void withCurrentContext(ContextFunctor f)
Do OpenGL operations with current context, if it exists.
Definition: ContextSwitch.cpp:45
GLuint target_
Definition: Texture32F.h:58
GLuint omni::visual::Texture32F::target ( ) const

Return GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE.

45  {
46  return target_;
47  }
GLuint target_
Definition: Texture32F.h:58
GLuint omni::visual::Texture32F::textureId ( ) const

Return id of this texture.

49  {
50  return texId_;
51  }
GLuint texId_
Definition: Texture32F.h:59

Field Documentation

QSize omni::visual::Texture32F::size_
private
GLuint omni::visual::Texture32F::target_ = GL_TEXTURE_2D
private
GLuint omni::visual::Texture32F::texId_ = 0
private

The documentation for this class was generated from the following files: