28 #ifndef __UnifiedHighLevelGpuProgram_H__
29 #define __UnifiedHighLevelGpuProgram_H__
67 String doGet(
const void* target)
const;
68 void doSet(
void* target,
const String& val);
80 void chooseDelegate()
const;
82 void createLowLevelImpl(
void);
83 void unloadHighLevelImpl(
void);
84 void buildConstantDefinitions()
const;
85 void loadFromSource(
void);
98 void addDelegateProgram(
const String& name);
101 void clearDelegatePrograms();
107 const String& getLanguage(
void)
const;
123 bool isSupported(
void)
const;
126 bool isSkeletalAnimationIncluded(
void)
const;
128 bool isMorphAnimationIncluded(
void)
const;
130 bool isPoseAnimationIncluded(
void)
const;
132 bool isVertexTextureFetchRequired(
void)
const;
134 bool hasDefaultParameters(
void)
const;
135 bool getPassSurfaceAndLightStates(
void)
const;
136 bool getPassFogStates(
void)
const;
137 bool getPassTransformStates(
void)
const;
138 bool hasCompileError(
void)
const;
139 void resetCompileError(
void);
141 void load(
bool backgroundThread =
false);
143 bool isReloadable(
void)
const;
144 bool isLoaded(
void)
const;
145 bool isLoading()
const;
148 size_t getSize(
void)
const;
150 bool isBackgroundLoaded(
void)
const;
151 void setBackgroundLoaded(
bool bl);
152 void escalateLoading();
Command object for setting delegate (can set more than once)
LoadingState
Enum identifying the loading state of the resource.
HighLevelGpuProgram * create(ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader)
const String & getLanguage(void) const
Get the name of the language this factory creates programs for.
Defines a program which runs on the GPU such as a vertex or fragment program.
static CmdDelegate msCmdDelegate
Interface describing a manual resource loader.
Interface definition for factories of HighLevelGpuProgram.
Specialisation of SharedPtr to allow SharedPtr to be assigned to HighLevelGpuProgramPtr.
StringVector mDelegateNames
Ordered list of potential delegates.
Specialisation of HighLevelGpuProgram which just delegates its implementation to one other high level...
HighLevelGpuProgramPtr mChosenDelegate
The chosen delegate.
vector< String >::type StringVector
unsigned long long int ResourceHandle
UnifiedHighLevelGpuProgramFactory()
Defines a generic resource handler.
Factory class for Unified programs.
Abstract base class representing a high-level program (a vertex or fragment program).
~UnifiedHighLevelGpuProgramFactory()
void destroy(HighLevelGpuProgram *prog)
Abstract class which is command object which gets/sets parameters.