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);
93 virtual size_t calculateSize(
void)
const;
99 void addDelegateProgram(
const String& name);
102 void clearDelegatePrograms();
108 const String& getLanguage(
void)
const;
124 bool isSupported(
void)
const;
127 bool isSkeletalAnimationIncluded(
void)
const;
129 bool isMorphAnimationIncluded(
void)
const;
131 bool isPoseAnimationIncluded(
void)
const;
133 bool isVertexTextureFetchRequired(
void)
const;
135 bool hasDefaultParameters(
void)
const;
136 bool getPassSurfaceAndLightStates(
void)
const;
137 bool getPassFogStates(
void)
const;
138 bool getPassTransformStates(
void)
const;
139 bool hasCompileError(
void)
const;
140 void resetCompileError(
void);
142 void load(
bool backgroundThread =
false);
144 bool isReloadable(
void)
const;
145 bool isLoaded(
void)
const;
146 bool isLoading()
const;
149 size_t getSize(
void)
const;
151 bool isBackgroundLoaded(
void)
const;
152 void setBackgroundLoaded(
bool bl);
153 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.
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.