Basic Image AlgorithmS Library
2.8.0
|
#include <OpenGLFramework/Base/glfTexture3D.hh>
Public Member Functions | |
void | Allocate3DImage (int width, int height, int depth, GLenum internalFormat, int mipmap=0) |
void | Allocate3DImage (int width, int height, int depth, ImageBase::EStorageType storageType, ImageBase::EColorModel colorModel, int mipmap=0) |
void | Bind () const |
Binds the texture. More... | |
void | BindTU () const |
Binds the texture. More... | |
void | BindTU (int number) const |
Binds the texture. More... | |
void | Create () |
Creates the texture but does not upload any data yet. More... | |
void | EnlargeToPowerOfTwoIfRequired (bool enlargeToPotIfRequired=true) |
Sets whether to enlarge each texture dimension to the next power of two, if non-power-of-two textures are not supported. More... | |
void | GenerateMipMap () |
Explicitly generates the mipmaps of the texture in hardware. More... | |
GLuint | GetTextureID () const |
Returns the OpenGL texture id. More... | |
GLint | GetTextureNr () |
Returns the OpenGL texture number. More... | |
int | GetTextureNrInUniformFormat () |
Returns the OpenGL texture number in uniform format or -1 for error. More... | |
GLenum | GetTextureTarget () const |
Returns the OpenGL texture target. More... | |
glfTexture3D () | |
void | Set (GLenum minFilter=GL_NEAREST, GLenum magFilter=GL_NEAREST, GLenum wrapS=GL_CLAMP, GLenum wrapT=GL_CLAMP, GLint textureNr=GL_TEXTURE0) |
Convenience wrapper. More... | |
void | SetBaseLevel (int baseLevel) |
Sets the minimum (base) mip map level to be used. More... | |
void | SetBorderColor (GLfloat r, GLfloat g, GLfloat b, GLfloat a) |
Sets the border color for the texture to be used. More... | |
void | SetGenerateMipMap (bool generateMipMap) |
Sets whether to automatically generate mipmaps when the first mipmap is uploaded. More... | |
void | SetMagFilter (GLenum magFilter) |
Sets the magnification function. More... | |
void | SetMaxLevel (int maxLevel) |
Sets the maximum mip map level to be used. More... | |
void | SetMinFilter (GLenum minFilter) |
Sets the minifying function. More... | |
void | SetTextureNr (GLint textureNr) |
Sets the OpenGL texture number (GL_TEXTURE0 - GL_TEXTURE[MaxTextureUnit-1]). More... | |
void | SetTextureNrInUniformFormat (int textureNr) |
Sets the OpenGL texture number (0 - MaxTextureUnit-1). More... | |
void | SetWrapR (GLenum wrapR) |
Sets the wrapping mode for the 3rd texture coordinate. More... | |
void | SetWrapS (GLenum wrapS) |
Sets the wrapping mode for the 1st texture coordinate. More... | |
void | SetWrapT (GLenum wrapT) |
Sets the wrapping mode for the 2nd texture coordinate. More... | |
void | Upload2DImage (const BIAS::ImageBase &image, unsigned int level) |
Static Protected Member Functions | |
Utility functions used by derived classes. | |
static int | NextPowerOfTwo (int i) |
Returns the smallest power of two that is greater than i . More... | |
static int | GetMaxSupportedTextureUnits () |
Computes a pixel format that can be used with glGetTexImage for an internal format of a texture. More... | |
Protected Attributes | |
bool | enlargeToPot_ |
GLuint | id_ |
int | MAX_TEXTURE_UNITS_ |
GLenum | target_ |
GLint | textureNr_ |
Definition at line 8 of file glfTexture3D.hh.
glfTexture3D::glfTexture3D | ( | ) |
Definition at line 9 of file glfTexture3D.cpp.
void glfTexture3D::Allocate3DImage | ( | int | width, |
int | height, | ||
int | depth, | ||
GLenum | internalFormat, | ||
int | mipmap = 0 |
||
) |
Definition at line 36 of file glfTexture3D.cpp.
References BIAS::glfTexture::Bind(), BIAS::glfFormatDB::GetFormatForInternalFormat(), and BIAS::glfTexture::target_.
Referenced by Allocate3DImage().
void glfTexture3D::Allocate3DImage | ( | int | width, |
int | height, | ||
int | depth, | ||
ImageBase::EStorageType | storageType, | ||
ImageBase::EColorModel | colorModel, | ||
int | mipmap = 0 |
||
) |
Definition at line 55 of file glfTexture3D.cpp.
References Allocate3DImage(), and BIAS::glfFormatDB::ProposeInternalFormat().
|
inherited |
Binds the texture.
Definition at line 242 of file glfTexture.cpp.
References BIAS::glfTexture::id_, and BIAS::glfTexture::target_.
Referenced by BIAS::glfCubeMap::Allocate(), BIAS::glfTexture2D::Allocate(), Allocate3DImage(), BIAS::glfCubeMap::CopyChannelsToImage(), BIAS::glfTexture2D::CopyChannelsToImage(), BIAS::glfCubeMap::CopyToImage(), BIAS::glfTexture2D::CopyToImage(), BIAS::glfTexture::GenerateMipMap(), BIAS::glfCubeMap::GetHeight(), BIAS::glfTexture2D::GetHeight(), BIAS::glfCubeMap::GetWidth(), BIAS::glfTexture2D::GetWidth(), BIAS::glfTexture::SetBaseLevel(), BIAS::glfTexture::SetBorderColor(), BIAS::glfTexture::SetGenerateMipMap(), BIAS::glfTexture::SetMagFilter(), BIAS::glfTexture::SetMaxLevel(), BIAS::glfTexture::SetMinFilter(), BIAS::glfTexture::SetWrapR(), BIAS::glfTexture::SetWrapS(), BIAS::glfTexture::SetWrapT(), BIAS::TriangleMeshSplatRendering::Splat(), Upload2DImage(), BIAS::glfCubeMap::UploadImage(), and BIAS::glfTexture2D::UploadImage().
|
inherited |
Binds the texture.
Set texture active. Use this for multitexturing shaders without the use of a glfbatch.
Definition at line 249 of file glfTexture.cpp.
References BIAS::glfTexture::id_, BIAS::glfTexture::target_, and BIAS::glfTexture::textureNr_.
Referenced by BIAS::OutputLensDistortion::Draw_().
|
inherited |
Binds the texture.
Sets the texture active with GL_TEXTURE0+number, before binding
Definition at line 259 of file glfTexture.cpp.
References BIAS::glfTexture::id_, and BIAS::glfTexture::target_.
|
inherited |
Creates the texture but does not upload any data yet.
Definition at line 80 of file glfTexture.cpp.
References BIAS::glfTexture::id_.
Referenced by BIAS::Texture2DPool::Create(), BIAS::OutputLensDistortion::CreateLookupTable(), BIAS::FramebufferSetupPool::CreateSetup(), BIAS::DistortionRendering::Init(), BIAS::MultipleDepthWarp::Init(), BIAS::TemplateSpecializedBatch::InitTextureData_(), BIAS::MultipleDepthWarp::SetupNViewsWarp(), and BIAS::Texture2DPool::UploadImage().
|
inherited |
Sets whether to enlarge each texture dimension to the next power of two, if non-power-of-two textures are not supported.
Otherwise, uploading a non-power-of-two texture will cause an exception to be thrown, if the hardware does not support it. The default is 'false'. Must be called before any data is uploaded to the texture.
Definition at line 163 of file glfTexture.cpp.
References BIAS::glfTexture::enlargeToPot_.
|
inherited |
Explicitly generates the mipmaps of the texture in hardware.
This can be used, when the texture was generated by rendering to a framebuffer object.
Definition at line 194 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
Referenced by BIAS::DistortionRendering::EndRendering(), and BIAS::DistortionRendering::Init().
|
staticprotectedinherited |
Computes a pixel format that can be used with glGetTexImage
for an internal format of a texture.
Also returns the number of channels. For example: If internalFormat = GL_R3_G3_B2, then format = GL_RGB and numChannels = 3.
Returns the OpenGL pixel type (GL_UNSIGNED_BYTE etc.) for a BIAS storage type.
Returns the OpenGL pixel format (GL_RGB etc.) for a BIAS color model.
cp from glfBatch
Definition at line 185 of file glfTexture.cpp.
Referenced by BIAS::glfTexture::SetTextureNr(), and BIAS::glfTexture::SetTextureNrInUniformFormat().
|
inlineinherited |
Returns the OpenGL texture id.
Definition at line 144 of file glfTexture.hh.
Referenced by BIAS::clfImage2D::AllocateFromTexture2D(), BIAS::clfImage3D::AllocateFromTexture3D(), and BIAS::glfFramebufferObject::AttachTexture().
|
inlineinherited |
Returns the OpenGL texture number.
Definition at line 156 of file glfTexture.hh.
|
inlineinherited |
Returns the OpenGL texture number in uniform format or -1 for error.
Intended usage:
renderedTexture.SetTextureNr(GL_TEXTURE5);
renderedTexture2.SetTextureNr(GL_TEXTURE6);
shaderProg.SetUniform("renderedTexture", renderedTexture.GetTextureNrInUniformFormat());
shaderProg.SetUniform("renderedTexture2", renderedTexture2.GetTextureNrInUniformFormat());
Definition at line 183 of file glfTexture.hh.
Referenced by BIAS::OutputLensDistortion::Draw_().
|
inlineinherited |
Returns the OpenGL texture target.
Definition at line 150 of file glfTexture.hh.
Referenced by BIAS::clfImage2D::AllocateFromTexture2D(), BIAS::clfImage3D::AllocateFromTexture3D(), and BIAS::glfFramebufferObject::AttachTexture().
|
staticprotectedinherited |
Returns the smallest power of two that is greater than i
.
Definition at line 269 of file glfTexture.cpp.
Referenced by BIAS::glfCubeMap::Allocate(), BIAS::glfTexture2D::Allocate(), BIAS::glfCubeMap::UploadImage(), and BIAS::glfTexture2D::UploadImage().
void glfTexture3D::Set | ( | GLenum | minFilter = GL_NEAREST , |
GLenum | magFilter = GL_NEAREST , |
||
GLenum | wrapS = GL_CLAMP , |
||
GLenum | wrapT = GL_CLAMP , |
||
GLint | textureNr = GL_TEXTURE0 |
||
) |
Convenience wrapper.
Definition at line 26 of file glfTexture3D.cpp.
References BIAS::glfTexture::SetMagFilter(), BIAS::glfTexture::SetMinFilter(), BIAS::glfTexture::SetTextureNr(), BIAS::glfTexture::SetWrapS(), and BIAS::glfTexture::SetWrapT().
|
inherited |
Sets the minimum (base) mip map level to be used.
Definition at line 137 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
|
inherited |
Sets the border color for the texture to be used.
Definition at line 153 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
|
inherited |
Sets whether to automatically generate mipmaps when the first mipmap is uploaded.
Definition at line 129 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
|
inherited |
Sets the magnification function.
Valid values are: GL_NEAREST, GL_LINEAR.
Definition at line 97 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
Referenced by BIAS::OutputLensDistortion::CreateLookupTable(), BIAS::DistortionRendering::Init(), Set(), and BIAS::glfTexture2D::Set().
|
inherited |
Sets the maximum mip map level to be used.
Definition at line 145 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
|
inherited |
Sets the minifying function.
Valid values are: GL_NEAREST, GL_LINEAR, GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR.
Definition at line 89 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
Referenced by BIAS::OutputLensDistortion::CreateLookupTable(), BIAS::DistortionRendering::Init(), Set(), and BIAS::glfTexture2D::Set().
|
inherited |
Sets the OpenGL texture number (GL_TEXTURE0 - GL_TEXTURE[MaxTextureUnit-1]).
Definition at line 207 of file glfTexture.cpp.
References BIAS::glfTexture::GetMaxSupportedTextureUnits(), BIAS::glfTexture::MAX_TEXTURE_UNITS_, and BIAS::glfTexture::textureNr_.
Referenced by BIAS::OutputLensDistortion::CreateLookupTable(), Set(), and BIAS::glfTexture2D::Set().
|
inherited |
Sets the OpenGL texture number (0 - MaxTextureUnit-1).
Definition at line 224 of file glfTexture.cpp.
References BIAS::glfTexture::GetMaxSupportedTextureUnits(), BIAS::glfTexture::MAX_TEXTURE_UNITS_, and BIAS::glfTexture::textureNr_.
|
inherited |
Sets the wrapping mode for the 3rd texture coordinate.
Definition at line 121 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
|
inherited |
Sets the wrapping mode for the 1st texture coordinate.
Valid values are: GL_CLAMP, GL_CLAMP_TO_BORDER, GL_CLAMP_TO_EDGE, GL_MIRRORED_REPEAT, GL_REPEAT.
Definition at line 105 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
Referenced by BIAS::OutputLensDistortion::CreateLookupTable(), BIAS::DistortionRendering::Init(), Set(), and BIAS::glfTexture2D::Set().
|
inherited |
Sets the wrapping mode for the 2nd texture coordinate.
Definition at line 113 of file glfTexture.cpp.
References BIAS::glfTexture::Bind(), and BIAS::glfTexture::target_.
Referenced by BIAS::OutputLensDistortion::CreateLookupTable(), BIAS::DistortionRendering::Init(), Set(), and BIAS::glfTexture2D::Set().
void glfTexture3D::Upload2DImage | ( | const BIAS::ImageBase & | image, |
unsigned int | level | ||
) |
Definition at line 64 of file glfTexture3D.cpp.
References BIAS::glfTexture::Bind(), BIAS::ImageBase::GetColorModel(), BIAS::glfFormatDB::GetFormatForColorModel(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetImageData(), BIAS::glfFormatDB::GetPixelTypeForStorageType(), BIAS::ImageBase::GetStorageType(), and BIAS::ImageBase::GetWidth().
|
protectedinherited |
Definition at line 246 of file glfTexture.hh.
Referenced by BIAS::glfCubeMap::Allocate(), BIAS::glfTexture2D::Allocate(), BIAS::glfTexture::EnlargeToPowerOfTwoIfRequired(), BIAS::glfTexture::glfTexture(), BIAS::glfCubeMap::UploadImage(), and BIAS::glfTexture2D::UploadImage().
|
protectedinherited |
Definition at line 242 of file glfTexture.hh.
Referenced by BIAS::glfTexture::Bind(), BIAS::glfTexture::BindTU(), BIAS::glfTexture::Create(), BIAS::glfTexture::glfTexture(), BIAS::SwapGLObjects(), and BIAS::glfTexture::~glfTexture().
|
protectedinherited |
Definition at line 245 of file glfTexture.hh.
Referenced by BIAS::glfTexture::SetTextureNr(), and BIAS::glfTexture::SetTextureNrInUniformFormat().
|
protectedinherited |
Definition at line 243 of file glfTexture.hh.
Referenced by BIAS::glfTexture2D::Allocate(), Allocate3DImage(), BIAS::glfTexture::Bind(), BIAS::glfTexture::BindTU(), BIAS::glfTexture2D::CopyChannelsToImage(), BIAS::glfTexture2D::CopyToImage(), BIAS::glfTexture::GenerateMipMap(), BIAS::glfCubeMap::GetHeight(), BIAS::glfTexture2D::GetHeight(), BIAS::glfCubeMap::GetWidth(), BIAS::glfTexture2D::GetWidth(), BIAS::glfTexture::glfTexture(), BIAS::glfTexture::SetBaseLevel(), BIAS::glfTexture::SetBorderColor(), BIAS::glfTexture::SetGenerateMipMap(), BIAS::glfTexture::SetMagFilter(), BIAS::glfTexture::SetMaxLevel(), BIAS::glfTexture::SetMinFilter(), BIAS::glfTexture::SetWrapR(), BIAS::glfTexture::SetWrapS(), BIAS::glfTexture::SetWrapT(), BIAS::SwapGLObjects(), and BIAS::glfTexture2D::UploadImage().
|
protectedinherited |
Definition at line 244 of file glfTexture.hh.
Referenced by BIAS::glfTexture::BindTU(), BIAS::glfTexture::glfTexture(), BIAS::glfTexture::SetTextureNr(), and BIAS::glfTexture::SetTextureNrInUniformFormat().