Go to the documentation of this file.
28 #ifndef __HighLevelGpuProgram_H__
29 #define __HighLevelGpuProgram_H__
unsigned long long int ResourceHandle
const GpuNamedConstants & getConstantDefinitions() const
Get the full list of GpuConstantDefinition instances.
virtual void buildConstantDefinitions() const =0
Build the constant definition map, must be overridden.
Struct collecting together the information for named constants.
virtual void loadHighLevelImpl(void)
Internal load implementation, loads just the high-level portion, enough to get parameters.
GpuProgramParametersSharedPtr createParameters(void)
Creates a new parameters object compatible with this program definition.
virtual void createLowLevelImpl(void)=0
Internal method for creating an appropriate low-level program from this high-level program,...
virtual void populateParameterNames(GpuProgramParametersSharedPtr params)
Populate the passed parameters with name->index map.
Defines a program which runs on the GPU such as a vertex or fragment program.
void loadImpl()
Internal implementation of the meat of the 'load' action, only called if this resource is not being l...
const GpuNamedConstants & getNamedConstants() const
Override GpuProgram::getNamedConstants to ensure built.
void unloadImpl()
Internal implementation of the 'unload' action; called regardless of whether this resource is being l...
bool mHighLevelLoaded
Whether the high-level program (and it's parameter defs) is loaded.
virtual void loadHighLevel(void)
Internal load high-level portion if not loaded.
GpuProgramPtr mAssemblerProgram
The underlying assembler program.
virtual size_t calculateSize(void) const
Calculate the size of a resource; this will only be called after 'load'.
Defines a generic resource handler.
virtual void unloadHighLevelImpl(void)=0
Internal unload implementation, must be implemented by subclasses.
GpuProgram * _getBindingDelegate(void)
Returns the GpuProgram which should be bound to the pipeline.
Interface describing a manual resource loader.
Abstract base class representing a high-level program (a vertex or fragment program).
bool mConstantDefsBuilt
Have we built the name->index parameter map yet?
virtual void unloadHighLevel(void)
Internal unload high-level portion if loaded.
HighLevelGpuProgram(ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0)
Constructor, should be used only by factory classes.
Copyright © 2012 Torus Knot Software Ltd

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