ruby-ogre 0.0.3-x86-linux → 0.0.4-x86-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +7 -8
- data/bindings/ogre/interface/ogre_all.i +1 -0
- data/bindings/ogre/interface/ogre_wrap.cpp +591 -46
- data/bindings/ogre/interface/ogre_wrap.o +0 -0
- data/bindings/ogrebites/interface/ogrebites_wrap.o +0 -0
- data/bindings/procedural/interface/procedural_wrap.o +0 -0
- data/deps/include/OGRE/OgreAny.h +23 -1
- data/deps/include/OGRE/OgreBillboardChain.h +5 -1
- data/deps/include/OGRE/OgreBillboardParticleRenderer.h +2 -0
- data/deps/include/OGRE/OgreConfigDialog.h +0 -2
- data/deps/include/OGRE/OgreDynLib.h +1 -7
- data/deps/include/OGRE/OgreErrorDialog.h +0 -2
- data/deps/include/OGRE/OgreHeaderSuffix.h +3 -3
- data/deps/include/OGRE/OgreInstanceBatch.h +4 -0
- data/deps/include/OGRE/OgreInstanceManager.h +5 -0
- data/deps/include/OGRE/OgreIteratorRange.h +13 -2
- data/deps/include/OGRE/OgreParticleSystem.h +2 -0
- data/deps/include/OGRE/OgreParticleSystemRenderer.h +4 -0
- data/deps/include/OGRE/OgrePlatform.h +5 -28
- data/deps/include/OGRE/OgrePrerequisites.h +1 -1
- data/deps/include/OGRE/OgreProfiler.h +102 -59
- data/deps/include/OGRE/OgreProgressiveMesh.h +2 -2
- data/deps/include/OGRE/OgreRenderSystem.h +18 -1
- data/deps/include/OGRE/OgreRoot.h +1 -1
- data/deps/include/OGRE/OgreSearchOps.h +0 -5
- data/deps/include/OGRE/OgreSimpleRenderable.h +1 -1
- data/deps/include/OGRE/OgreStdHeaders.h +2 -2
- data/deps/include/OGRE/OgreStringConverter.h +5 -0
- data/deps/include/OGRE/OgreTimer.h +1 -1
- data/deps/include/OGRE/OgreUTFString.h +0 -2
- data/deps/include/OGRE/OgreWindowEventUtilities.h +3 -1
- data/deps/include/OGRE/OgreWorkQueue.h +2 -2
- data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramProcessor.h +5 -5
- data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramWriter.h +17 -15
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExDualQuaternionSkinning.h +3 -3
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinning.h +5 -4
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinningTechnique.h +3 -3
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExIntegratedPSSM3.h +50 -32
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExLayeredBlending.h +13 -9
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExLinearSkinning.h +7 -7
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExNormalMapLighting.h +149 -95
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExPerPixelLighting.h +91 -59
- data/deps/include/OGRE/RTShaderSystem/OgreShaderExTextureAtlasSampler.h +14 -9
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPColour.h +33 -24
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPFog.h +44 -30
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPLighting.h +70 -45
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPRenderStateBuilder.h +11 -10
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTexturing.h +73 -64
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTransform.h +8 -8
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFunction.h +42 -35
- data/deps/include/OGRE/RTShaderSystem/OgreShaderFunctionAtom.h +38 -32
- data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramProcessor.h +9 -8
- data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramWriter.h +45 -36
- data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramProcessor.h +9 -8
- data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramWriter.h +26 -20
- data/deps/include/OGRE/RTShaderSystem/OgreShaderGenerator.h +211 -160
- data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramProcessor.h +5 -5
- data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramWriter.h +17 -15
- data/deps/include/OGRE/RTShaderSystem/OgreShaderMaterialSerializerListener.h +5 -3
- data/deps/include/OGRE/RTShaderSystem/OgreShaderParameter.h +86 -73
- data/deps/include/OGRE/RTShaderSystem/OgreShaderProgram.h +36 -30
- data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramManager.h +38 -31
- data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramProcessor.h +54 -43
- data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramSet.h +18 -14
- data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramWriter.h +10 -10
- data/deps/include/OGRE/RTShaderSystem/OgreShaderRenderState.h +28 -23
- data/deps/include/OGRE/RTShaderSystem/OgreShaderScriptTranslator.h +2 -1
- data/deps/include/OGRE/RTShaderSystem/OgreShaderSubRenderState.h +35 -32
- data/deps/include/OGRE/RenderSystems/GL/GL/wglew.h +2 -2
- data/deps/include/OGRE/RenderSystems/GL/GL/wglext.h +2 -2
- data/deps/include/OGRE/RenderSystems/GL/OgreGLRenderSystem.h +10 -1
- data/deps/include/OGRE/RenderSystems/GL/OgreGLTextureManager.h +2 -0
- data/deps/include/OGRE/Sample.h +5 -0
- data/deps/include/OGRE/SampleContext.h +13 -3
- data/deps/lib/OGRE/Plugin_BSPSceneManager.so +0 -0
- data/deps/lib/OGRE/Plugin_BSPSceneManager.so.1.8.1 +0 -0
- data/deps/lib/OGRE/Plugin_CgProgramManager.so +0 -0
- data/deps/lib/OGRE/Plugin_CgProgramManager.so.1.8.1 +0 -0
- data/deps/lib/OGRE/Plugin_OctreeSceneManager.so +0 -0
- data/deps/lib/OGRE/Plugin_OctreeSceneManager.so.1.8.1 +0 -0
- data/deps/lib/OGRE/Plugin_OctreeZone.so +0 -0
- data/deps/lib/OGRE/Plugin_OctreeZone.so.1.8.1 +0 -0
- data/deps/lib/OGRE/Plugin_PCZSceneManager.so +0 -0
- data/deps/lib/OGRE/Plugin_PCZSceneManager.so.1.8.1 +0 -0
- data/deps/lib/OGRE/Plugin_ParticleFX.so +0 -0
- data/deps/lib/OGRE/Plugin_ParticleFX.so.1.8.1 +0 -0
- data/deps/lib/OGRE/RenderSystem_GL.so +0 -0
- data/deps/lib/OGRE/RenderSystem_GL.so.1.8.1 +0 -0
- data/deps/lib/libOgreMain.so +0 -0
- data/deps/lib/libOgreMain.so.1.8.1 +0 -0
- data/deps/lib/libOgrePaging.so +0 -0
- data/deps/lib/libOgrePaging.so.1.8.1 +0 -0
- data/deps/lib/libOgreProcedural.so +0 -0
- data/deps/lib/libOgreRTShaderSystem.so +0 -0
- data/deps/lib/libOgreRTShaderSystem.so.1.8.1 +0 -0
- data/deps/lib/libOgreTerrain.so +0 -0
- data/deps/lib/libOgreTerrain.so.1.8.1 +0 -0
- data/deps/share/OGRE/media/materials/programs/DiffuseOneTexture.glsles +17 -0
- data/deps/share/OGRE/media/packs/profiler.zip +0 -0
- data/lib/ogre.so +0 -0
- data/lib/ogrebites.so +0 -0
- data/lib/procedural.so +0 -0
- data/lib/version.rb +1 -1
- data/sample/charactor/sinbad.rb +8 -4
- metadata +16 -4
@@ -52,22 +52,22 @@ public:
|
|
52
52
|
/** Class constructor.
|
53
53
|
@param type The type of this program.
|
54
54
|
*/
|
55
|
-
HLSLProgramProcessor
|
55
|
+
HLSLProgramProcessor();
|
56
56
|
|
57
57
|
/** Class destructor */
|
58
|
-
virtual ~HLSLProgramProcessor
|
58
|
+
virtual ~HLSLProgramProcessor();
|
59
59
|
|
60
60
|
/** Return the target language of this processor. */
|
61
|
-
virtual const String&
|
61
|
+
virtual const String& getTargetLanguage() const { return TargetLanguage; }
|
62
62
|
|
63
63
|
/**
|
64
64
|
@see ProgramProcessor::preCreateGpuPrograms
|
65
65
|
*/
|
66
|
-
virtual bool
|
66
|
+
virtual bool preCreateGpuPrograms(ProgramSet* programSet);
|
67
67
|
/**
|
68
68
|
@see ProgramProcessor::postCreateGpuPrograms
|
69
69
|
*/
|
70
|
-
virtual bool
|
70
|
+
virtual bool postCreateGpuPrograms(ProgramSet* programSet);
|
71
71
|
|
72
72
|
static String TargetLanguage;
|
73
73
|
|
@@ -52,20 +52,20 @@ public:
|
|
52
52
|
/** Class constructor.
|
53
53
|
@param language The target shader language.
|
54
54
|
*/
|
55
|
-
HLSLProgramWriter
|
55
|
+
HLSLProgramWriter();
|
56
56
|
|
57
57
|
/** Class destructor */
|
58
|
-
virtual ~HLSLProgramWriter
|
58
|
+
virtual ~HLSLProgramWriter();
|
59
59
|
|
60
60
|
/**
|
61
61
|
@see ProgramWriter::writeSourceCode.
|
62
62
|
*/
|
63
|
-
virtual void
|
63
|
+
virtual void writeSourceCode(std::ostream& os, Program* program);
|
64
64
|
|
65
65
|
/**
|
66
66
|
@see ProgramWriter::getTargetLanguage.
|
67
67
|
*/
|
68
|
-
virtual const String&
|
68
|
+
virtual const String& getTargetLanguage() const { return TargetLanguage; }
|
69
69
|
|
70
70
|
static String TargetLanguage;
|
71
71
|
|
@@ -73,34 +73,36 @@ public:
|
|
73
73
|
protected:
|
74
74
|
|
75
75
|
/** Initialize string maps. */
|
76
|
-
void
|
76
|
+
void initializeStringMaps();
|
77
77
|
|
78
78
|
/** Write the program dependencies. */
|
79
|
-
void
|
79
|
+
void writeProgramDependencies(std::ostream& os, Program* program);
|
80
80
|
|
81
81
|
/** Write a uniform parameter. */
|
82
|
-
void
|
82
|
+
void writeUniformParameter(std::ostream& os, UniformParameterPtr parameter);
|
83
83
|
|
84
84
|
/** Write a function parameter. */
|
85
|
-
void
|
85
|
+
void writeFunctionParameter(std::ostream& os, ParameterPtr parameter);
|
86
86
|
|
87
87
|
/** Write a local parameter. */
|
88
|
-
void
|
88
|
+
void writeLocalParameter(std::ostream& os, ParameterPtr parameter);
|
89
89
|
|
90
90
|
/** Write a function declaration. */
|
91
|
-
void
|
91
|
+
void writeFunctionDeclaration(std::ostream& os, Function* function, bool & needToTranslateHlsl4Color, ParameterPtr & colorParameter);
|
92
92
|
|
93
93
|
/** Write function atom instance. */
|
94
|
-
void
|
94
|
+
void writeAtomInstance(std::ostream& os, FunctionAtom* atom);
|
95
95
|
|
96
96
|
protected:
|
97
|
-
typedef
|
98
|
-
typedef
|
97
|
+
typedef map<GpuConstantType, const char*>::type GpuConstTypeToStringMap;
|
98
|
+
typedef map<Parameter::Semantic, const char*>::type ParamSemanticToStringMap;
|
99
99
|
|
100
100
|
// Attributes.
|
101
101
|
protected:
|
102
|
-
|
103
|
-
|
102
|
+
// Map between GPU constant type to string value.
|
103
|
+
GpuConstTypeToStringMap mGpuConstTypeMap;
|
104
|
+
// Map between parameter semantic to string value.
|
105
|
+
ParamSemanticToStringMap mParamSemanticMap;
|
104
106
|
};
|
105
107
|
|
106
108
|
/** HLSL program writer factory implementation.
|
@@ -87,7 +87,7 @@ protected:
|
|
87
87
|
~SGMaterialSerializerListener();
|
88
88
|
|
89
89
|
/** Internal method that creates list of SGPass instances composing the given material. */
|
90
|
-
void
|
90
|
+
void createSGPassList(Material* mat, SGPassList& passList);
|
91
91
|
|
92
92
|
/** Internal method that returns SGPass instance from a given source pass. */
|
93
93
|
ShaderGenerator::SGPass* getShaderGeneratedPass (const Pass* srcPass);
|
@@ -95,8 +95,10 @@ protected:
|
|
95
95
|
|
96
96
|
// Attributes.
|
97
97
|
protected:
|
98
|
-
|
99
|
-
|
98
|
+
// The current source material that is being written.
|
99
|
+
Material* mSourceMaterial;
|
100
|
+
// List of SGPass instances composing this material.
|
101
|
+
SGPassList mSGPassList;
|
100
102
|
|
101
103
|
|
102
104
|
private:
|
@@ -321,43 +321,49 @@ public:
|
|
321
321
|
virtual ~Parameter() {};
|
322
322
|
|
323
323
|
/** Get the name of this parameter. */
|
324
|
-
const String&
|
324
|
+
const String& getName() const { return mName; }
|
325
325
|
|
326
326
|
/** Get the type of this parameter. */
|
327
|
-
GpuConstantType
|
327
|
+
GpuConstantType getType() const { return mType; }
|
328
328
|
|
329
329
|
/** Get the semantic of this parameter. */
|
330
|
-
const Semantic&
|
330
|
+
const Semantic& getSemantic() const { return mSemantic; }
|
331
331
|
|
332
332
|
/** Get the index of this parameter. */
|
333
|
-
int
|
333
|
+
int getIndex() const { return mIndex; }
|
334
334
|
|
335
335
|
/** Return the content of this parameter. */
|
336
|
-
Content
|
336
|
+
Content getContent() const { return mContent; }
|
337
337
|
|
338
338
|
/** Returns true if this instance is a ConstParameter otherwise false. */
|
339
|
-
virtual bool
|
339
|
+
virtual bool isConstParameter() const { return false; }
|
340
340
|
|
341
341
|
/** Returns the string representation of this parameter. */
|
342
|
-
virtual String
|
342
|
+
virtual String toString() const { return mName; }
|
343
343
|
|
344
344
|
/** Returns Whether this parameter is an array. */
|
345
|
-
bool
|
345
|
+
bool isArray() const { return mSize > 0; }
|
346
346
|
|
347
347
|
/** Returns the number of elements in the parameter (for arrays). */
|
348
|
-
size_t
|
348
|
+
size_t getSize() const { return mSize; }
|
349
349
|
|
350
350
|
/** Sets the number of elements in the parameter (for arrays). */
|
351
|
-
void
|
351
|
+
void setSize(size_t size) { mSize = size; }
|
352
352
|
|
353
353
|
// Attributes.
|
354
354
|
protected:
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
355
|
+
// Name of this parameter.
|
356
|
+
String mName;
|
357
|
+
// Type of this parameter.
|
358
|
+
GpuConstantType mType;
|
359
|
+
// Semantic of this parameter.
|
360
|
+
Semantic mSemantic;
|
361
|
+
// Index of this parameter.
|
362
|
+
int mIndex;
|
363
|
+
// The content of this parameter.
|
364
|
+
Content mContent;
|
365
|
+
// Number of elements in the parameter (for arrays)
|
366
|
+
size_t mSize;
|
361
367
|
|
362
368
|
};
|
363
369
|
|
@@ -418,34 +424,34 @@ public:
|
|
418
424
|
|
419
425
|
|
420
426
|
/** Get auto constant int data of this parameter, in case it is auto constant parameter. */
|
421
|
-
size_t
|
427
|
+
size_t getAutoConstantIntData() const { return mAutoConstantIntData; }
|
422
428
|
|
423
429
|
/** Get auto constant real data of this parameter, in case it is auto constant parameter. */
|
424
|
-
Real
|
430
|
+
Real getAutoConstantRealData() const { return mAutoConstantRealData; }
|
425
431
|
|
426
432
|
/** Return true if this parameter is a floating point type, false otherwise. */
|
427
|
-
bool
|
433
|
+
bool isFloat() const;
|
428
434
|
|
429
435
|
/** Return true if this parameter is a texture sampler type, false otherwise. */
|
430
|
-
bool
|
436
|
+
bool isSampler() const;
|
431
437
|
|
432
438
|
/** Return true if this parameter is an auto constant parameter, false otherwise. */
|
433
|
-
bool
|
439
|
+
bool isAutoConstantParameter() const { return mIsAutoConstantReal || mIsAutoConstantInt; }
|
434
440
|
|
435
441
|
/** Return true if this parameter an auto constant with int data type, false otherwise. */
|
436
|
-
bool
|
442
|
+
bool isAutoConstantIntParameter() const { return mIsAutoConstantInt; }
|
437
443
|
|
438
444
|
/** Return true if this parameter an auto constant with real data type, false otherwise. */
|
439
|
-
bool
|
445
|
+
bool isAutoConstantRealParameter() const { return mIsAutoConstantReal; }
|
440
446
|
|
441
447
|
/** Return the auto constant type of this parameter. */
|
442
448
|
GpuProgramParameters::AutoConstantType getAutoConstantType () const { return mAutoConstantType; }
|
443
449
|
|
444
450
|
/** Return the variability of this parameter. */
|
445
|
-
uint16
|
451
|
+
uint16 getVariability() const { return mVariability; }
|
446
452
|
|
447
453
|
/** Bind this parameter to the corresponding GPU parameter. */
|
448
|
-
void
|
454
|
+
void bind(GpuProgramParametersSharedPtr paramsPtr);
|
449
455
|
|
450
456
|
public:
|
451
457
|
|
@@ -540,17 +546,24 @@ public:
|
|
540
546
|
}
|
541
547
|
|
542
548
|
protected:
|
543
|
-
|
544
|
-
bool
|
549
|
+
// Is it auto constant real based parameter.
|
550
|
+
bool mIsAutoConstantReal;
|
551
|
+
// Is it auto constant int based parameter.
|
552
|
+
bool mIsAutoConstantInt;
|
545
553
|
GpuProgramParameters::AutoConstantType mAutoConstantType; // The auto constant type of this parameter.
|
546
554
|
union
|
547
555
|
{
|
548
|
-
|
549
|
-
|
556
|
+
// Auto constant int data.
|
557
|
+
size_t mAutoConstantIntData;
|
558
|
+
// Auto constant real data.
|
559
|
+
Real mAutoConstantRealData;
|
550
560
|
};
|
551
|
-
|
552
|
-
|
553
|
-
|
561
|
+
// How this parameter varies (bitwise combination of GpuProgramVariability).
|
562
|
+
uint16 mVariability;
|
563
|
+
// The actual GPU parameters pointer.
|
564
|
+
GpuProgramParameters* mParamsPtr;
|
565
|
+
// The physical index of this parameter in the GPU program.
|
566
|
+
size_t mPhysicalIndex;
|
554
567
|
};
|
555
568
|
|
556
569
|
typedef SharedPtr<UniformParameter> UniformParameterPtr;
|
@@ -577,17 +590,17 @@ public:
|
|
577
590
|
virtual ~ConstParameter () {}
|
578
591
|
|
579
592
|
/** Returns the native value of this parameter. (for example a Vector3) */
|
580
|
-
const valueType&
|
593
|
+
const valueType& getValue() const { return mValue; }
|
581
594
|
|
582
595
|
/**
|
583
596
|
@see Parameter::isConstParameter.
|
584
597
|
*/
|
585
|
-
virtual bool
|
598
|
+
virtual bool isConstParameter() const { return true; }
|
586
599
|
|
587
600
|
/**
|
588
601
|
@see Parameter::toString.
|
589
602
|
*/
|
590
|
-
virtual String
|
603
|
+
virtual String toString() const = 0;
|
591
604
|
|
592
605
|
protected:
|
593
606
|
valueType mValue;
|
@@ -601,44 +614,44 @@ class _OgreRTSSExport ParameterFactory
|
|
601
614
|
// Interface.
|
602
615
|
public:
|
603
616
|
|
604
|
-
static ParameterPtr
|
605
|
-
static ParameterPtr
|
606
|
-
|
607
|
-
static ParameterPtr
|
608
|
-
static ParameterPtr createInWeights
|
609
|
-
static ParameterPtr createInIndices
|
610
|
-
static ParameterPtr
|
611
|
-
static ParameterPtr
|
612
|
-
static ParameterPtr
|
613
|
-
static ParameterPtr
|
614
|
-
static ParameterPtr
|
615
|
-
static ParameterPtr
|
616
|
-
static ParameterPtr
|
617
|
-
|
618
|
-
static ParameterPtr
|
619
|
-
static ParameterPtr
|
620
|
-
static ParameterPtr
|
621
|
-
static ParameterPtr
|
622
|
-
static ParameterPtr
|
623
|
-
static ParameterPtr
|
624
|
-
static ParameterPtr
|
625
|
-
static ParameterPtr
|
626
|
-
static ParameterPtr
|
627
|
-
static ParameterPtr
|
628
|
-
|
629
|
-
static ParameterPtr
|
630
|
-
static ParameterPtr
|
631
|
-
static ParameterPtr
|
632
|
-
static ParameterPtr
|
633
|
-
|
634
|
-
static UniformParameterPtr
|
635
|
-
static UniformParameterPtr
|
636
|
-
static UniformParameterPtr
|
637
|
-
static UniformParameterPtr
|
638
|
-
static UniformParameterPtr
|
639
|
-
static UniformParameterPtr
|
640
|
-
|
641
|
-
static UniformParameterPtr
|
617
|
+
static ParameterPtr createInPosition(int index);
|
618
|
+
static ParameterPtr createOutPosition(int index);
|
619
|
+
|
620
|
+
static ParameterPtr createInNormal(int index);
|
621
|
+
static ParameterPtr createInWeights(int index);
|
622
|
+
static ParameterPtr createInIndices(int index);
|
623
|
+
static ParameterPtr createOutNormal(int index);
|
624
|
+
static ParameterPtr createInBiNormal(int index);
|
625
|
+
static ParameterPtr createOutBiNormal(int index);
|
626
|
+
static ParameterPtr createInTangent(int index);
|
627
|
+
static ParameterPtr createOutTangent(int index);
|
628
|
+
static ParameterPtr createInColor(int index);
|
629
|
+
static ParameterPtr createOutColor(int index);
|
630
|
+
|
631
|
+
static ParameterPtr createInTexcoord(GpuConstantType type, int index, Parameter::Content content);
|
632
|
+
static ParameterPtr createOutTexcoord(GpuConstantType type, int index, Parameter::Content content);
|
633
|
+
static ParameterPtr createInTexcoord1(int index, Parameter::Content content);
|
634
|
+
static ParameterPtr createOutTexcoord1(int index, Parameter::Content content);
|
635
|
+
static ParameterPtr createInTexcoord2(int index, Parameter::Content content);
|
636
|
+
static ParameterPtr createOutTexcoord2(int index, Parameter::Content content);
|
637
|
+
static ParameterPtr createInTexcoord3(int index, Parameter::Content content);
|
638
|
+
static ParameterPtr createOutTexcoord3(int index, Parameter::Content content);
|
639
|
+
static ParameterPtr createInTexcoord4(int index, Parameter::Content content);
|
640
|
+
static ParameterPtr createOutTexcoord4(int index, Parameter::Content content);
|
641
|
+
|
642
|
+
static ParameterPtr createConstParamVector2(Vector2 val);
|
643
|
+
static ParameterPtr createConstParamVector3(Vector3 val);
|
644
|
+
static ParameterPtr createConstParamVector4(Vector4 val);
|
645
|
+
static ParameterPtr createConstParamFloat(float val);
|
646
|
+
|
647
|
+
static UniformParameterPtr createSampler(GpuConstantType type, int index);
|
648
|
+
static UniformParameterPtr createSampler1D(int index);
|
649
|
+
static UniformParameterPtr createSampler2D(int index);
|
650
|
+
static UniformParameterPtr createSampler2DArray(int index);
|
651
|
+
static UniformParameterPtr createSampler3D(int index);
|
652
|
+
static UniformParameterPtr createSamplerCUBE(int index);
|
653
|
+
|
654
|
+
static UniformParameterPtr createUniform(GpuConstantType type, int index, uint16 variability, const String& suggestedName, size_t size);
|
642
655
|
};
|
643
656
|
|
644
657
|
|
@@ -53,7 +53,7 @@ class _OgreRTSSExport Program : public RTShaderSystemAlloc
|
|
53
53
|
// Interface.
|
54
54
|
public:
|
55
55
|
/** Get the type of this program. */
|
56
|
-
GpuProgramType
|
56
|
+
GpuProgramType getType() const;
|
57
57
|
|
58
58
|
/** Resolve uniform auto constant parameter with associated real data of this program.
|
59
59
|
@param autoType The auto type of the desired parameter.
|
@@ -61,7 +61,7 @@ public:
|
|
61
61
|
@param size number of elements in the parameter.
|
62
62
|
Return parameter instance in case of that resolve operation succeeded.
|
63
63
|
*/
|
64
|
-
UniformParameterPtr
|
64
|
+
UniformParameterPtr resolveAutoParameterReal(GpuProgramParameters::AutoConstantType autoType, Real data, size_t size = 0);
|
65
65
|
|
66
66
|
/** Resolve uniform auto constant parameter with associated real data of this program.
|
67
67
|
@param autoType The auto type of the desired parameter.
|
@@ -70,7 +70,7 @@ public:
|
|
70
70
|
@param size number of elements in the parameter.
|
71
71
|
Return parameter instance in case of that resolve operation succeeded.
|
72
72
|
*/
|
73
|
-
UniformParameterPtr
|
73
|
+
UniformParameterPtr resolveAutoParameterReal(GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, Real data, size_t size = 0);
|
74
74
|
|
75
75
|
/** Resolve uniform auto constant parameter with associated int data of this program.
|
76
76
|
@param autoType The auto type of the desired parameter.
|
@@ -78,7 +78,7 @@ public:
|
|
78
78
|
@param size number of elements in the parameter.
|
79
79
|
Return parameter instance in case of that resolve operation succeeded.
|
80
80
|
*/
|
81
|
-
UniformParameterPtr
|
81
|
+
UniformParameterPtr resolveAutoParameterInt(GpuProgramParameters::AutoConstantType autoType, size_t data, size_t size = 0);
|
82
82
|
|
83
83
|
/** Resolve uniform auto constant parameter with associated int data of this program.
|
84
84
|
@param autoType The auto type of the desired parameter.
|
@@ -87,7 +87,7 @@ public:
|
|
87
87
|
@param size number of elements in the parameter.
|
88
88
|
Return parameter instance in case of that resolve operation succeeded.
|
89
89
|
*/
|
90
|
-
UniformParameterPtr
|
90
|
+
UniformParameterPtr resolveAutoParameterInt(GpuProgramParameters::AutoConstantType autoType, GpuConstantType type, size_t data, size_t size = 0);
|
91
91
|
|
92
92
|
/** Resolve uniform parameter of this program.
|
93
93
|
@param type The type of the desired parameter.
|
@@ -98,68 +98,68 @@ public:
|
|
98
98
|
Return parameter instance in case of that resolve operation succeeded.
|
99
99
|
@remarks Pass -1 as index parameter to create a new parameter with the desired type and index.
|
100
100
|
*/
|
101
|
-
UniformParameterPtr
|
101
|
+
UniformParameterPtr resolveParameter(GpuConstantType type, int index, uint16 variability, const String& suggestedName, size_t size = 0);
|
102
102
|
|
103
103
|
/** Get parameter by a given name.
|
104
104
|
@param name The name of the parameter to search for.
|
105
105
|
@remarks Return NULL if no matching parameter found.
|
106
106
|
*/
|
107
|
-
UniformParameterPtr
|
107
|
+
UniformParameterPtr getParameterByName(const String& name);
|
108
108
|
|
109
109
|
/** Get parameter by a given auto constant type.
|
110
110
|
@param autoType The auto type of the parameter to search for.
|
111
111
|
@remarks Return NULL if no matching parameter found.
|
112
112
|
*/
|
113
|
-
UniformParameterPtr
|
113
|
+
UniformParameterPtr getParameterByAutoType(GpuProgramParameters::AutoConstantType autoType);
|
114
114
|
|
115
115
|
/** Get parameter by a given type and index.
|
116
116
|
@param type The type of the parameter to search for.
|
117
117
|
@param index The index of the parameter to search for.
|
118
118
|
@remarks Return NULL if no matching parameter found.
|
119
119
|
*/
|
120
|
-
UniformParameterPtr
|
120
|
+
UniformParameterPtr getParameterByType(GpuConstantType type, int index);
|
121
121
|
|
122
122
|
/** Get the list of uniform parameters of this program.
|
123
123
|
*/
|
124
|
-
const UniformParameterList&
|
124
|
+
const UniformParameterList& getParameters() const { return mParameters; };
|
125
125
|
|
126
126
|
/** Create new function in this program. Return the newly created function instance.
|
127
127
|
@param name The name of the function to create.
|
128
128
|
@param desc The description of the function.
|
129
129
|
*/
|
130
|
-
Function*
|
130
|
+
Function* createFunction(const String& name, const String& desc, const Function::FunctionType functionType);
|
131
131
|
|
132
132
|
/** Get a function by a given name. Return NULL if no matching function found.
|
133
133
|
@param name The name of the function to search for.
|
134
134
|
*/
|
135
|
-
Function*
|
135
|
+
Function* getFunctionByName(const String& name);
|
136
136
|
|
137
137
|
/** Get the function list of this program.
|
138
138
|
*/
|
139
|
-
const ShaderFunctionList&
|
139
|
+
const ShaderFunctionList& getFunctions() const { return mFunctions; };
|
140
140
|
|
141
141
|
/** Set the entry point function.
|
142
142
|
@param function The function that will use as entry point of this program.
|
143
143
|
*/
|
144
|
-
void
|
144
|
+
void setEntryPointFunction(Function* function) { mEntryPointFunction = function; }
|
145
145
|
|
146
146
|
/** Get the entry point function of this program.*/
|
147
|
-
Function*
|
147
|
+
Function* getEntryPointFunction() { return mEntryPointFunction; }
|
148
148
|
|
149
149
|
/** Add dependency for this program. Basically a filename that will be included in this
|
150
150
|
program and provide predefined shader functions code.
|
151
151
|
One should verify that the given library file he provides can be reached by the resource manager.
|
152
152
|
This step can be achieved using the ResourceGroupManager::addResourceLocation method.
|
153
153
|
*/
|
154
|
-
void
|
154
|
+
void addDependency(const String& libFileName);
|
155
155
|
|
156
156
|
/** Get the number of external libs this program depends on */
|
157
|
-
size_t
|
157
|
+
size_t getDependencyCount() const;
|
158
158
|
|
159
159
|
/** Get the library name of the given index dependency.
|
160
160
|
@param index The index of the dependecy.
|
161
161
|
*/
|
162
|
-
const String&
|
162
|
+
const String& getDependency(unsigned int index) const;
|
163
163
|
|
164
164
|
|
165
165
|
/** Sets whether a vertex program includes the required instructions
|
@@ -178,32 +178,38 @@ protected:
|
|
178
178
|
/** Class constructor.
|
179
179
|
@param type The type of this program.
|
180
180
|
*/
|
181
|
-
Program
|
181
|
+
Program(GpuProgramType type);
|
182
182
|
|
183
183
|
/** Class destructor */
|
184
|
-
~Program
|
184
|
+
~Program();
|
185
185
|
|
186
186
|
/** Destroy all parameters of this program. */
|
187
|
-
void
|
187
|
+
void destroyParameters();
|
188
188
|
|
189
189
|
/** Destroy all functions of this program. */
|
190
|
-
void
|
190
|
+
void destroyFunctions();
|
191
191
|
|
192
192
|
/** Add parameter to this program. */
|
193
|
-
void
|
193
|
+
void addParameter(UniformParameterPtr parameter);
|
194
194
|
|
195
195
|
/** Remove parameter from this program. */
|
196
|
-
void
|
196
|
+
void removeParameter(UniformParameterPtr parameter);
|
197
197
|
|
198
198
|
|
199
199
|
// Attributes.
|
200
200
|
protected:
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
201
|
+
// Program type. (Vertex, Fragment, Geometry).
|
202
|
+
GpuProgramType mType;
|
203
|
+
// Program uniform parameters.
|
204
|
+
UniformParameterList mParameters;
|
205
|
+
// Function list.
|
206
|
+
ShaderFunctionList mFunctions;
|
207
|
+
// Entry point function for this program.
|
208
|
+
Function* mEntryPointFunction;
|
209
|
+
// Program dependencies.
|
210
|
+
StringVector mDependencies;
|
211
|
+
// Skeletal animation calculation
|
212
|
+
bool mSkeletalAnimation;
|
207
213
|
private:
|
208
214
|
friend class ProgramManager;
|
209
215
|
};
|