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();
LoadingState
Enum identifying the loading state of the resource.
void destroy(HighLevelGpuProgram *prog)
vector< String >::type StringVector
Abstract base class representing a high-level program (a vertex or fragment program).
Interface describing a manual resource loader.
unsigned long long int ResourceHandle
Command object for setting delegate (can set more than once)
UnifiedHighLevelGpuProgramFactory()
HighLevelGpuProgram * create(ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader)
Factory class for Unified programs.
Specialisation of HighLevelGpuProgram which just delegates its implementation to one other high level...
Defines a generic resource handler.
Defines a program which runs on the GPU such as a vertex or fragment program.
HighLevelGpuProgramPtr mChosenDelegate
The chosen delegate.
StringVector mDelegateNames
Ordered list of potential delegates.
static CmdDelegate msCmdDelegate
Interface definition for factories of HighLevelGpuProgram.
Abstract class which is command object which gets/sets parameters.
const String & getLanguage(void) const
Get the name of the language this factory creates programs for.
~UnifiedHighLevelGpuProgramFactory()