28 #ifndef __MaterialSerializer_H__
29 #define __MaterialSerializer_H__
136 { (void)ser; (void)event; (void)skip; (void)mat; }
147 { (void)ser; (void)event; (void)skip; (void)tech; }
158 { (void)ser; (void)event; (void)skip; (void)pass; }
212 bool parseScriptLine(
String& line);
218 void finishProgramDefinition(
void);
244 void writeTechnique(
const Technique* pTech);
245 void writePass(
const Pass* pPass);
246 void writeVertexProgramRef(
const Pass* pPass);
247 void writeShadowCasterVertexProgramRef(
const Pass* pPass);
248 void writeShadowCasterFragmentProgramRef(
const Pass* pPass);
249 void writeShadowReceiverVertexProgramRef(
const Pass* pPass);
250 void writeShadowReceiverFragmentProgramRef(
const Pass* pPass);
251 void writeFragmentProgramRef(
const Pass* pPass);
253 void writeGpuPrograms(
void);
255 const unsigned short level = 4,
const bool useMainBuffer =
true);
257 const unsigned short level = 4,
const bool useMainBuffer =
true);
259 const unsigned short level = 4,
const bool useMainBuffer =
true);
260 void writeGpuProgramParameter(
264 bool isFloat,
bool isDouble,
size_t physicalIndex,
size_t physicalSize,
266 const unsigned short level,
const bool useMainBuffer);
273 void writeColourValue(
const ColourValue &colour,
bool writeAlpha =
false);
331 void queueForExport(
const MaterialPtr& pMat,
bool clearQueued =
false,
332 bool exportDefaults =
false,
const String& materialName =
"");
342 void exportQueued(
const String& filename,
const bool includeProgDef =
false,
const String& programFilename =
"");
354 void exportMaterial(
const MaterialPtr& pMat,
const String& filename,
bool exportDefaults =
false,
355 const bool includeProgDef =
false,
const String& programFilename =
"",
356 const String& materialName =
"");
358 const String &getQueuedAsString()
const;
369 void addListener(Listener* listener);
374 void removeListener(Listener* listener);
385 void beginSection(
unsigned short level,
const bool useMainBuffer =
true)
387 String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
389 for (
unsigned short i = 0; i < level; ++i)
395 void endSection(
unsigned short level,
const bool useMainBuffer =
true)
397 String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
399 for (
unsigned short i = 0; i < level; ++i)
408 String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
410 for (
unsigned short i = 0; i < level; ++i)
419 String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
420 buffer += (
" " + val);
425 if (val.find_first_of(
" \t") != String::npos)
426 return (
"\"" + val +
"\"");
433 String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
435 for (
unsigned short i = 0; i < level; ++i)
439 buffer +=
"// " + comment;