Go to the documentation of this file.
28 #ifndef __HighLevelGpuProgramManager_H__
29 #define __HighLevelGpuProgramManager_H__
unsigned long long int ResourceHandle
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
void addFactory(HighLevelGpuProgramFactory *factory)
Add a new factory object for high-level programs of a given language.
Resource * createImpl(const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader, const NameValuePairList *createParams)
Create a new resource instance compatible with this manager (no custom parameters are populated at th...
bool isLanguageSupported(const String &lang)
Returns whether a given high-level language is supported.
~HighLevelGpuProgramManager()
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
Interface definition for factories of HighLevelGpuProgram.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
HighLevelGpuProgramPtr createProgram(const String &name, const String &groupName, const String &language, GpuProgramType gptype)
Create a new, unloaded HighLevelGpuProgram.
static HighLevelGpuProgramManager * getSingletonPtr(void)
Override standard Singleton retrieval.
GpuProgramType
Enumerates the types of programs which can run on the GPU.
Template class for creating single-instance global classes.
virtual HighLevelGpuProgram * create(ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader)=0
void removeFactory(HighLevelGpuProgramFactory *factory)
Remove a factory object for high-level programs of a given language.
HighLevelGpuProgramFactory()
static HighLevelGpuProgramManager & getSingleton(void)
Override standard Singleton retrieval.
Defines a generic resource handler.
HighLevelGpuProgramFactory * getFactory(const String &language)
virtual ~HighLevelGpuProgramFactory()
HighLevelGpuProgramFactory * mNullFactory
Factory for dealing with programs for languages we can't create.
HighLevelGpuProgramManager()
Abstract class representing a loadable resource (e.g.
HighLevelGpuProgramFactory * mUnifiedFactory
Factory for unified high-level programs.
HighLevelGpuProgramPtr getByName(const String &name, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME)
Get a resource by name.
virtual const String & getLanguage(void) const =0
Get the name of the language this factory creates programs for.
Interface describing a manual resource loader.
Abstract base class representing a high-level program (a vertex or fragment program).
map< String, HighLevelGpuProgramFactory * >::type FactoryMap
virtual void destroy(HighLevelGpuProgram *prog)=0
This ResourceManager manages high-level vertex and fragment programs.
FactoryMap mFactories
Factories capable of creating HighLevelGpuProgram instances.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.