PixelLightAPI  .
Public Member Functions | Protected Member Functions | Protected Attributes
PLRenderer::TextureBuffer3D Class Reference

Abstract renderer 3D texture buffer (also called 'volume texture') resource. More...

#include <TextureBuffer3D.h>

Inheritance diagram for PLRenderer::TextureBuffer3D:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual PLRENDERER_API ~TextureBuffer3D ()
 Destructor.
PLRENDERER_API PLMath::Vector3i GetSize (PLCore::uint32 nMipmap=0) const
 Returns the texture buffer size.
virtual PLRENDERER_API bool IsPowerOfTwo () const override
 Returns whether or not the texture has a power of two dimension (POT)
virtual PLRENDERER_API
PLCore::uint32 
GetNumOfPixels (PLCore::uint32 nMipmap=0) const override
 Returns the number of pixels of a certain mipmap level.
virtual PLRENDERER_API
PLCore::uint32 
GetNumOfBytes (PLCore::uint32 nMipmap=0, EPixelFormat nFormat=Unknown) const override
 Returns the number of bytes required to hold certain mipmap level texture buffer data.

Protected Member Functions

PLRENDERER_API TextureBuffer3D (Renderer &cRenderer, PLCore::uint32 nFlags)
 Constructor.

Protected Attributes

PLMath::Vector3i m_vSize

Detailed Description

Abstract renderer 3D texture buffer (also called 'volume texture') resource.


Constructor & Destructor Documentation

virtual PLRENDERER_API PLRenderer::TextureBuffer3D::~TextureBuffer3D ( ) [virtual]

Destructor.

PLRENDERER_API PLRenderer::TextureBuffer3D::TextureBuffer3D ( Renderer cRenderer,
PLCore::uint32  nFlags 
) [protected]

Constructor.

Parameters:
[in]cRendererOwner renderer
[in]nFlagsTexture buffer flags (see EFlags)

Member Function Documentation

PLRENDERER_API PLMath::Vector3i PLRenderer::TextureBuffer3D::GetSize ( PLCore::uint32  nMipmap = 0) const

Returns the texture buffer size.

Parameters:
[in]nMipmapMipmap level (0 - GetNumOfMipmaps())
Returns:
Texture buffer size
virtual PLRENDERER_API bool PLRenderer::TextureBuffer3D::IsPowerOfTwo ( ) const [override, virtual]

Returns whether or not the texture has a power of two dimension (POT)

Returns:
'true' if the texture has a power of two dimension, else 'false'
Remarks:
Although modern graphics APIs and graphics hardware is often capable to deal with non power of two dimension, there might be certain restrictions up to unexpected driver crashes within certain situations. This methods exists to make it easier to check for this sort of texture dimension. A texture is only power of two when it's power of two along each axis - except array textures which are considered to be a stack of 2D textures.

Implements PLRenderer::TextureBuffer.

virtual PLRENDERER_API PLCore::uint32 PLRenderer::TextureBuffer3D::GetNumOfPixels ( PLCore::uint32  nMipmap = 0) const [override, virtual]

Returns the number of pixels of a certain mipmap level.

Parameters:
[in]nMipmapMipmap level (0 - GetNumOfMipmaps())
Returns:
The number of pixels of a certain mipmap level
Note:
  • If this is a cube texture, the number of pixels of all faces together will be returned

Implements PLRenderer::TextureBuffer.

virtual PLRENDERER_API PLCore::uint32 PLRenderer::TextureBuffer3D::GetNumOfBytes ( PLCore::uint32  nMipmap = 0,
EPixelFormat  nFormat = Unknown 
) const [override, virtual]

Returns the number of bytes required to hold certain mipmap level texture buffer data.

Parameters:
[in]nMipmapMipmap level (0 - GetNumOfMipmaps())
[in]nFormatTarget texture buffer pixel format, if Unknown, the format of THIS texture buffer is chosen automatically
Returns:
The number of bytes required to hold certain mipmap level texture buffer data
Note:
  • If 'nFormat' is a compressed format, compression is also taken into account
  • If this is a cube texture, the number of bytes of all faces together will be returned

Implements PLRenderer::TextureBuffer.


Member Data Documentation

Texture buffer size


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


PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:39
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported