Ion
|
ShaderManager contains an association between shader programs, their names, and any source dependencies they have. More...
#include "shadermanager.h"
Public Member Functions | |
ShaderManager () | |
const gfx::ShaderProgramPtr | CreateShaderProgram (const std::string &name, const ion::gfx::ShaderInputRegistryPtr ®istry, const ShaderSourceComposerPtr &vertex_source_composer, const ShaderSourceComposerPtr &fragment_source_composer) |
Creates and returns a ShaderProgram with the passed name using the passed composers and registry. More... | |
const gfx::ShaderProgramPtr | GetShaderProgram (const std::string &name) |
Returns a ReferentPtr to a ShaderProgram that has the passed name. More... | |
const std::vector< std::string > | GetShaderProgramNames () |
Gets a vector of the names of the shader programs created through the manager. More... | |
void | GetShaderProgramComposers (const std::string &name, ShaderSourceComposerPtr *vertex_source_composer, ShaderSourceComposerPtr *fragment_source_composer) |
Gets the composers used to construct the named program's shaders. More... | |
void | RecreateAllShaderPrograms () |
Reconstructs all shaders from their composers. More... | |
void | RecreateShaderProgramsThatDependOn (const std::string &dependency) |
Reconstructs all shaders that depend on the named dependency. More... | |
const AllocatorPtr & | GetAllocator () const |
Returns the Allocator that was used for the instance. More... | |
const AllocatorPtr & | GetNonNullAllocator () const |
Return our allocator, or the default allocator if the instance was declared on the stack. More... | |
const AllocatorPtr & | GetAllocatorForLifetime (AllocationLifetime lifetime) const |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime. More... | |
void * | operator new (size_t size) |
The standard no-parameter new operator uses the default Allocator. More... | |
void * | operator new (size_t size, AllocationLifetime lifetime) |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator) |
This overloaded version of the new operator takes the Allocator to use directly as a parameter. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator, void *ptr) |
Special operator new for using placement new with Allocatables. More... | |
void * | operator new (size_t size, void *ptr) |
The placement new operator is defined conventionally. More... | |
void | operator delete (void *ptr) |
Define the delete operator to use specialized functions dealing with an Allocator. More... | |
void | operator delete (void *ptr, AllocationLifetime lifetime) |
Windows requires these (or it issues C4291 warnings). More... | |
void | operator delete (void *ptr, const AllocatorPtr &allocator) |
void | operator delete (void *ptr, void *ptr2) |
The placement delete operator does nothing, as usual. More... | |
int | GetRefCount () const |
GetRefCount() is part of the interface necessary for SharedPtr. More... | |
ShaderManager contains an association between shader programs, their names, and any source dependencies they have.
Definition at line 38 of file shadermanager.h.
ion::gfxutils::ShaderManager::ShaderManager | ( | ) |
Definition at line 179 of file shadermanager.cc.
const ShaderProgramPtr ion::gfxutils::ShaderManager::CreateShaderProgram | ( | const std::string & | name, |
const ion::gfx::ShaderInputRegistryPtr & | registry, | ||
const ShaderSourceComposerPtr & | vertex_source_composer, | ||
const ShaderSourceComposerPtr & | fragment_source_composer | ||
) |
Creates and returns a ShaderProgram with the passed name using the passed composers and registry.
Definition at line 184 of file shadermanager.cc.
References ion::base::Allocatable::GetAllocatorForLifetime(), and ion::base::kMediumTerm.
|
inlineinherited |
Returns the Allocator that was used for the instance.
This will be NULL if the instance was declared on the stack or created with normal placement new.
Definition at line 68 of file allocatable.h.
References allocator_.
Referenced by ion::base::DataContainer::CreateAndCopy(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), and ion::text::DynamicFontImage::FindImageDataIndex().
|
inlineinherited |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime.
Definition at line 78 of file allocatable.h.
References ion::base::Allocator::GetAllocatorForLifetime().
Referenced by ion::text::BasicBuilder::BuildVertexData(), ion::text::OutlineBuilder::BuildVertexData(), CreateShaderProgram(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), ion::text::DynamicFontImage::FindImageDataIndex(), ion::gfx::Renderer::Renderer(), and ion::gfx::UpdateStateTable().
|
inlineinherited |
Return our allocator, or the default allocator if the instance was declared on the stack.
Definition at line 72 of file allocatable.h.
References allocator_, and ion::base::AllocationManager::GetNonNullAllocator().
|
inlineinherited |
GetRefCount() is part of the interface necessary for SharedPtr.
Definition at line 34 of file shareable.h.
Referenced by ion::base::Notifier::RemoveReceiver().
const ShaderProgramPtr ion::gfxutils::ShaderManager::GetShaderProgram | ( | const std::string & | name | ) |
Returns a ReferentPtr to a ShaderProgram that has the passed name.
If no program with the passed name exists, returns a NULL ShaderProgramPtr.
Definition at line 208 of file shadermanager.cc.
void ion::gfxutils::ShaderManager::GetShaderProgramComposers | ( | const std::string & | name, |
ShaderSourceComposerPtr * | vertex_source_composer, | ||
ShaderSourceComposerPtr * | fragment_source_composer | ||
) |
Gets the composers used to construct the named program's shaders.
Either of the passed pointers may be NULL. If the named program does not exist then the passed composers will be set to NULL.
Definition at line 217 of file shadermanager.cc.
const std::vector< std::string > ion::gfxutils::ShaderManager::GetShaderProgramNames | ( | ) |
Gets a vector of the names of the shader programs created through the manager.
Definition at line 213 of file shadermanager.cc.
|
inlineinherited |
Define the delete operator to use specialized functions dealing with an Allocator.
Definition at line 109 of file allocatable.h.
|
inlineinherited |
Windows requires these (or it issues C4291 warnings).
Definition at line 112 of file allocatable.h.
|
inlineinherited |
Definition at line 113 of file allocatable.h.
|
inlineinherited |
The placement delete operator does nothing, as usual.
Definition at line 118 of file allocatable.h.
|
inlineinherited |
The standard no-parameter new operator uses the default Allocator.
Definition at line 84 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime.
Definition at line 88 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator takes the Allocator to use directly as a parameter.
If the Allocator pointer is NULL, this uses the default Allocator.
Definition at line 95 of file allocatable.h.
|
inlineinherited |
Special operator new for using placement new with Allocatables.
Definition at line 100 of file allocatable.h.
|
inlineinherited |
The placement new operator is defined conventionally.
Definition at line 105 of file allocatable.h.
void ion::gfxutils::ShaderManager::RecreateAllShaderPrograms | ( | ) |
Reconstructs all shaders from their composers.
Definition at line 225 of file shadermanager.cc.
void ion::gfxutils::ShaderManager::RecreateShaderProgramsThatDependOn | ( | const std::string & | dependency | ) |
Reconstructs all shaders that depend on the named dependency.
The passed dependency name could be a filename or some other identifier that a ShaderSourceComposer will recognize.
Definition at line 229 of file shadermanager.cc.