NW4F G3d
Loading...
Searching...
No Matches
nw::g3d::MaterialObj Class Reference

#include <g3d_MaterialObj.h>

Classes

class  InitArg
class  Sizer

Public Types

enum  { MAX_TEXTURE = 16 }
enum  Alignment { BUFFER_ALIGNMENT = 4 , BLOCK_BUFFER_ALIGNMENT = GX2_UNIFORM_BLOCK_ALIGNMENT }

Public Member Functions

 MaterialObj ()
bool Init (const InitArg &arg, void *pBuffer, size_t bufferSize)
size_t CalcBlockBufferSize () const
bool SetupBlockBuffer (void *pBuffer, size_t bufferSize)
void CleanupBlockBuffer ()
void CalcMatBlock ()
ResMaterialGetResource ()
const ResMaterialGetResource () const
void * GetBufferPtr ()
void * GetBlockBufferPtr ()
bool IsBlockBufferValid () const
GfxBufferGetMatBlock ()
const GfxBufferGetMatBlock () const
void EnableBlockSwap ()
void DisableBlockSwap ()
bool IsBlockSwapEnabled () const
void SetUserPtr (void *pUserPtr)
void * GetUserPtr ()
const void * GetUserPtr () const
template<typename T>
T * GetUserPtr ()
template<typename T>
const T * GetUserPtr () const
int GetShaderParamCount () const
const char * GetShaderParamName (int paramIndex) const
int GetShaderParamIndex (const char *name) const
ResShaderParamGetResShaderParam (int paramIndex)
const ResShaderParamGetResShaderParam (int paramIndex) const
ResShaderParamGetResShaderParam (const char *name)
const ResShaderParamGetResShaderParam (const char *name) const
void * EditShaderParam (int paramIndex)
const void * GetShaderParam (int paramIndex) const
template<typename T>
T * EditShaderParam (int paramIndex)
template<typename T>
const T * GetShaderParam (int paramIndex) const
void ClearShaderParam ()
void * GetSrcParam ()
const void * GetSrcParam () const
void ResetDirtyFlags ()
bool IsMatBlockDirty () const
int GetTextureCount () const
ResTextureGetResTexture (int texIndex)
const ResTextureGetResTexture (int texIndex) const
void SetResTexture (int texIndex, ResTexture *texture)
void ClearTexture ()
ResRenderStateGetResRenderState ()
const ResRenderStateGetResRenderState () const
int GetSamplerCount () const
const char * GetSamplerName (int samplerIndex) const
int GetSamplerIndex (const char *name) const
ResSamplerGetResSampler (int samplerIndex)
const ResSamplerGetResSampler (int samplerIndex) const
ResSamplerGetResSampler (const char *name)
const ResSamplerGetResSampler (const char *name) const
template<>
bool * EditShaderParam (int)
template<>
const bool * GetShaderParam (int) const

Static Public Member Functions

static size_t CalcBufferSize (const InitArg &arg)

Protected Types

enum  Flag { BLOCK_BUFFER_VALID = 0x1 << 0 , BLOCK_BUFFER_SWAP = 0x1 << 1 , PARAM_DIRTY = 0x1 << 2 }

Protected Member Functions

void SetDirtyFlag (int paramIndex)
template<bool swap>
void ConvertParams (void *pBuffer)
template<bool swap>
bool ConvertDirtyParams (void *pBuffer)
void InitDependPointer ()

Private Member Functions

 NW_G3D_DISALLOW_COPY_AND_ASSIGN (MaterialObj)

Private Attributes

ResMaterialm_pRes
bit32 m_Flag
bit32m_pDirtyFlagArray
GfxBuffer m_MatBlock
void * m_pSrcParam
ResTexture ** m_ppTextureArray
void * m_pUserPtr
void * m_pBufferPtr
void * m_pBlockBuffer

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_TEXTURE 

◆ Alignment

Enumerator
BUFFER_ALIGNMENT 
BLOCK_BUFFER_ALIGNMENT 

◆ Flag

Enumerator
BLOCK_BUFFER_VALID 
BLOCK_BUFFER_SWAP 
PARAM_DIRTY 

Constructor & Destructor Documentation

◆ MaterialObj()

nw::g3d::MaterialObj::MaterialObj ( )
inline

Member Function Documentation

◆ CalcBufferSize()

size_t nw::g3d::MaterialObj::CalcBufferSize ( const InitArg & arg)
static

◆ Init()

bool nw::g3d::MaterialObj::Init ( const InitArg & arg,
void * pBuffer,
size_t bufferSize )

◆ CalcBlockBufferSize()

size_t nw::g3d::MaterialObj::CalcBlockBufferSize ( ) const
inline

◆ SetupBlockBuffer()

bool nw::g3d::MaterialObj::SetupBlockBuffer ( void * pBuffer,
size_t bufferSize )

◆ CleanupBlockBuffer()

void nw::g3d::MaterialObj::CleanupBlockBuffer ( )

◆ CalcMatBlock()

void nw::g3d::MaterialObj::CalcMatBlock ( )

◆ GetResource() [1/2]

ResMaterial * nw::g3d::MaterialObj::GetResource ( )
inline

◆ GetResource() [2/2]

const ResMaterial * nw::g3d::MaterialObj::GetResource ( ) const
inline

◆ GetBufferPtr()

void * nw::g3d::MaterialObj::GetBufferPtr ( )
inline

◆ GetBlockBufferPtr()

void * nw::g3d::MaterialObj::GetBlockBufferPtr ( )
inline

◆ IsBlockBufferValid()

bool nw::g3d::MaterialObj::IsBlockBufferValid ( ) const
inline

◆ GetMatBlock() [1/2]

GfxBuffer & nw::g3d::MaterialObj::GetMatBlock ( )
inline

◆ GetMatBlock() [2/2]

const GfxBuffer & nw::g3d::MaterialObj::GetMatBlock ( ) const
inline

◆ EnableBlockSwap()

void nw::g3d::MaterialObj::EnableBlockSwap ( )
inline

◆ DisableBlockSwap()

void nw::g3d::MaterialObj::DisableBlockSwap ( )
inline

◆ IsBlockSwapEnabled()

bool nw::g3d::MaterialObj::IsBlockSwapEnabled ( ) const
inline

◆ SetUserPtr()

void nw::g3d::MaterialObj::SetUserPtr ( void * pUserPtr)
inline

◆ GetUserPtr() [1/4]

void * nw::g3d::MaterialObj::GetUserPtr ( )
inline

◆ GetUserPtr() [2/4]

const void * nw::g3d::MaterialObj::GetUserPtr ( ) const
inline

◆ GetUserPtr() [3/4]

template<typename T>
T * nw::g3d::MaterialObj::GetUserPtr ( )
inline

◆ GetUserPtr() [4/4]

template<typename T>
const T * nw::g3d::MaterialObj::GetUserPtr ( ) const
inline

◆ GetShaderParamCount()

int nw::g3d::MaterialObj::GetShaderParamCount ( ) const
inline

◆ GetShaderParamName()

const char * nw::g3d::MaterialObj::GetShaderParamName ( int paramIndex) const
inline

◆ GetShaderParamIndex()

int nw::g3d::MaterialObj::GetShaderParamIndex ( const char * name) const
inline

◆ GetResShaderParam() [1/4]

ResShaderParam * nw::g3d::MaterialObj::GetResShaderParam ( int paramIndex)
inline

◆ GetResShaderParam() [2/4]

const ResShaderParam * nw::g3d::MaterialObj::GetResShaderParam ( int paramIndex) const
inline

◆ GetResShaderParam() [3/4]

ResShaderParam * nw::g3d::MaterialObj::GetResShaderParam ( const char * name)
inline

◆ GetResShaderParam() [4/4]

const ResShaderParam * nw::g3d::MaterialObj::GetResShaderParam ( const char * name) const
inline

◆ EditShaderParam() [1/3]

void * nw::g3d::MaterialObj::EditShaderParam ( int paramIndex)
inline

◆ GetShaderParam() [1/3]

const void * nw::g3d::MaterialObj::GetShaderParam ( int paramIndex) const
inline

◆ EditShaderParam() [2/3]

template<typename T>
T * nw::g3d::MaterialObj::EditShaderParam ( int paramIndex)
inline

◆ GetShaderParam() [2/3]

template<typename T>
const T * nw::g3d::MaterialObj::GetShaderParam ( int paramIndex) const
inline

◆ ClearShaderParam()

void nw::g3d::MaterialObj::ClearShaderParam ( )
inline

◆ GetSrcParam() [1/2]

void * nw::g3d::MaterialObj::GetSrcParam ( )
inline

◆ GetSrcParam() [2/2]

const void * nw::g3d::MaterialObj::GetSrcParam ( ) const
inline

◆ ResetDirtyFlags()

void nw::g3d::MaterialObj::ResetDirtyFlags ( )

◆ IsMatBlockDirty()

bool nw::g3d::MaterialObj::IsMatBlockDirty ( ) const
inline

◆ GetTextureCount()

int nw::g3d::MaterialObj::GetTextureCount ( ) const
inline

◆ GetResTexture() [1/2]

ResTexture * nw::g3d::MaterialObj::GetResTexture ( int texIndex)
inline

◆ GetResTexture() [2/2]

const ResTexture * nw::g3d::MaterialObj::GetResTexture ( int texIndex) const
inline

◆ SetResTexture()

void nw::g3d::MaterialObj::SetResTexture ( int texIndex,
ResTexture * texture )
inline

◆ ClearTexture()

void nw::g3d::MaterialObj::ClearTexture ( )
inline

◆ GetResRenderState() [1/2]

ResRenderState * nw::g3d::MaterialObj::GetResRenderState ( )
inline

◆ GetResRenderState() [2/2]

const ResRenderState * nw::g3d::MaterialObj::GetResRenderState ( ) const
inline

◆ GetSamplerCount()

int nw::g3d::MaterialObj::GetSamplerCount ( ) const
inline

◆ GetSamplerName()

const char * nw::g3d::MaterialObj::GetSamplerName ( int samplerIndex) const
inline

◆ GetSamplerIndex()

int nw::g3d::MaterialObj::GetSamplerIndex ( const char * name) const
inline

◆ GetResSampler() [1/4]

ResSampler * nw::g3d::MaterialObj::GetResSampler ( int samplerIndex)
inline

◆ GetResSampler() [2/4]

const ResSampler * nw::g3d::MaterialObj::GetResSampler ( int samplerIndex) const
inline

◆ GetResSampler() [3/4]

ResSampler * nw::g3d::MaterialObj::GetResSampler ( const char * name)
inline

◆ GetResSampler() [4/4]

const ResSampler * nw::g3d::MaterialObj::GetResSampler ( const char * name) const
inline

◆ SetDirtyFlag()

void nw::g3d::MaterialObj::SetDirtyFlag ( int paramIndex)
inlineprotected

◆ ConvertParams()

template<bool swap>
void nw::g3d::MaterialObj::ConvertParams ( void * pBuffer)
protected

◆ ConvertDirtyParams()

template<bool swap>
bool nw::g3d::MaterialObj::ConvertDirtyParams ( void * pBuffer)
protected

◆ InitDependPointer()

void nw::g3d::MaterialObj::InitDependPointer ( )
protected

◆ NW_G3D_DISALLOW_COPY_AND_ASSIGN()

nw::g3d::MaterialObj::NW_G3D_DISALLOW_COPY_AND_ASSIGN ( MaterialObj )
private

◆ EditShaderParam() [3/3]

template<>
bool * nw::g3d::MaterialObj::EditShaderParam ( int )

◆ GetShaderParam() [3/3]

template<>
const bool * nw::g3d::MaterialObj::GetShaderParam ( int ) const

Member Data Documentation

◆ m_pRes

ResMaterial* nw::g3d::MaterialObj::m_pRes
private

◆ m_Flag

bit32 nw::g3d::MaterialObj::m_Flag
private

◆ m_pDirtyFlagArray

bit32* nw::g3d::MaterialObj::m_pDirtyFlagArray
private

◆ m_MatBlock

GfxBuffer nw::g3d::MaterialObj::m_MatBlock
private

◆ m_pSrcParam

void* nw::g3d::MaterialObj::m_pSrcParam
private

◆ m_ppTextureArray

ResTexture** nw::g3d::MaterialObj::m_ppTextureArray
private

◆ m_pUserPtr

void* nw::g3d::MaterialObj::m_pUserPtr
private

◆ m_pBufferPtr

void* nw::g3d::MaterialObj::m_pBufferPtr
private

◆ m_pBlockBuffer

void* nw::g3d::MaterialObj::m_pBlockBuffer
private