NSShaders::TVertexShaderManager Class Reference

This class serves as manager for vertex shaders. More...

#include <Shaders.h>

Inheritance diagram for NSShaders::TVertexShaderManager:

Inheritance graph
[legend]
Collaboration diagram for NSShaders::TVertexShaderManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

TVertexShaderGetVertexShader (const TString &filename)
 Returns specified shader from given file or NULL if an error occured.
void DestroyUnreferencedShaders (void)
 This method destroys all unreferenced shaders in manager.
DWORD GetShaderCount (void) const
 Return number of shaders in manager.
DWORD GetUnreferencedShaderCount (void) const
 This method returns number of unreferenced shaders in manager.
const TStringGetEntryFunctionName (void) const
 Returns name of entry function of shaders in HLSL loaded via this manager.
EnumShaderFileType GetFileType (void) const
 Returns type of shader files to load with this manager.

Static Public Member Functions

static TVertexShaderManagerCreateVertexShaderManager (TRenderer *renderer)
 This method creates vertex shader manager.
static void DestroyVertexShaderManager (TVertexShaderManager *manager)
 Destroy specified vertex shader manager.

Detailed Description

This class serves as manager for vertex shaders.

There are three types of shaders - COMPILED (prefered), ASSEMBLER and shaders in higher languages as HLSL. Type of used shaders is loaded from global configuration (thus must be available).

Compiled shaders are better option, because they contain information about shader version. HLSL shaders do not contain this information thus manager must try compile shader with different version of shaders until proper version is founded.

If number of references to shader reaches to zero shader still exists in manager. You can destroy unreferenced shaders via TVertexShaderManager::DestroyUnreferencedShaders.

You can get number of unreferenced shaders via TVertexShaderManager::GetUnreferencedShaderCount method.

Definition at line 114 of file Shaders.h.


Member Function Documentation

TVertexShaderManager * TVertexShaderManager::CreateVertexShaderManager TRenderer renderer  )  [static]
 

This method creates vertex shader manager.

Parameters:
renderer [in] valid renderer

Definition at line 244 of file Shaders.cpp.

References TGlobalsSystem::GetLogFile(), and NSMath::NSStdMath::log().

Here is the call graph for this function:

void TVertexShaderManager::DestroyUnreferencedShaders void   ) 
 

This method destroys all unreferenced shaders in manager.

Definition at line 309 of file Shaders.cpp.

References TArrayPtrs< T, size, step >::AddItem(), TArrayPtrs< T, size, step >::GetSize(), and TArrayPtrs< T, size, step >::ReserveSize().

Here is the call graph for this function:

void TVertexShaderManager::DestroyVertexShaderManager TVertexShaderManager manager  )  [static]
 

Destroy specified vertex shader manager.

After calling this method is manager invalid and should be set to NULL!!!

Parameters:
manager [in] vertex shader manager to destroy

Definition at line 262 of file Shaders.cpp.

References TGlobalsSystem::GetLogFile(), and NSMath::NSStdMath::log().

Here is the call graph for this function:

const TString& NSShaders::TVertexShaderManager::GetEntryFunctionName void   )  const [inline]
 

Returns name of entry function of shaders in HLSL loaded via this manager.

Definition at line 147 of file Shaders.h.

EnumShaderFileType NSShaders::TVertexShaderManager::GetFileType void   )  const [inline]
 

Returns type of shader files to load with this manager.

Definition at line 151 of file Shaders.h.

DWORD NSShaders::TVertexShaderManager::GetShaderCount void   )  const [inline]
 

Return number of shaders in manager.

Definition at line 141 of file Shaders.h.

DWORD TVertexShaderManager::GetUnreferencedShaderCount void   )  const
 

This method returns number of unreferenced shaders in manager.

Definition at line 343 of file Shaders.cpp.

References TArrayPtrs< T, size, step >::GetSize().

Here is the call graph for this function:

TVertexShader * TVertexShaderManager::GetVertexShader const TString filename  ) 
 

Returns specified shader from given file or NULL if an error occured.

This method increases number of references to TVertexShader.

Parameters:
filename [in] name of file with shader

Definition at line 278 of file Shaders.cpp.

References TArrayPtrs< T, size, step >::GetSize().

Here is the call graph for this function:


The documentation for this class was generated from the following files:
Generated on Wed Nov 28 23:09:21 2007 for Joy4D by  doxygen 1.4.6-NO