ruby-ogre 0.0.3-x86-linux → 0.0.4-x86-linux
Sign up to get free protection for your applications and to get access to all the features.
- 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
Binary file
|
Binary file
|
Binary file
|
data/deps/include/OGRE/OgreAny.h
CHANGED
@@ -214,7 +214,29 @@ namespace Ogre
|
|
214
214
|
}
|
215
215
|
}
|
216
216
|
|
217
|
-
|
217
|
+
template <typename ValueType>
|
218
|
+
ValueType get(void) const
|
219
|
+
{
|
220
|
+
if (!mContent)
|
221
|
+
{
|
222
|
+
OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS,
|
223
|
+
"Bad cast from uninitialised Any",
|
224
|
+
"Any::operator()");
|
225
|
+
}
|
226
|
+
else if(getType() == typeid(ValueType))
|
227
|
+
{
|
228
|
+
return static_cast<Any::holder<ValueType> *>(mContent)->held;
|
229
|
+
}
|
230
|
+
else
|
231
|
+
{
|
232
|
+
StringUtil::StrStreamType str;
|
233
|
+
str << "Bad cast from type '" << getType().name() << "' "
|
234
|
+
<< "to '" << typeid(ValueType).name() << "'";
|
235
|
+
OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS,
|
236
|
+
str.str(),
|
237
|
+
"Any::operator()");
|
238
|
+
}
|
239
|
+
}
|
218
240
|
|
219
241
|
};
|
220
242
|
|
@@ -259,7 +259,6 @@ namespace Ogre {
|
|
259
259
|
|
260
260
|
|
261
261
|
// Overridden members follow
|
262
|
-
void _notifyCurrentCamera(Camera* cam);
|
263
262
|
Real getSquaredViewDepth(const Camera* cam) const;
|
264
263
|
Real getBoundingRadius(void) const;
|
265
264
|
const AxisAlignedBox& getBoundingBox(void) const;
|
@@ -267,6 +266,7 @@ namespace Ogre {
|
|
267
266
|
const String& getMovableType(void) const;
|
268
267
|
void _updateRenderQueue(RenderQueue *);
|
269
268
|
void getRenderOperation(RenderOperation &);
|
269
|
+
virtual bool preRender(SceneManager* sm, RenderSystem* rsys);
|
270
270
|
void getWorldTransforms(Matrix4 *) const;
|
271
271
|
const LightList& getLights(void) const;
|
272
272
|
/// @copydoc MovableObject::visitRenderables
|
@@ -299,6 +299,8 @@ namespace Ogre {
|
|
299
299
|
mutable bool mBoundsDirty;
|
300
300
|
/// Is the index buffer dirty?
|
301
301
|
bool mIndexContentDirty;
|
302
|
+
/// Is the vertex buffer dirty?
|
303
|
+
bool mVertexContentDirty;
|
302
304
|
/// AABB
|
303
305
|
mutable AxisAlignedBox mAABB;
|
304
306
|
/// Bounding radius
|
@@ -310,6 +312,8 @@ namespace Ogre {
|
|
310
312
|
TexCoordDirection mTexCoordDir;
|
311
313
|
/// Other texture coord range
|
312
314
|
Real mOtherTexCoordRange[2];
|
315
|
+
/// Camera last used to build the vertex buffer
|
316
|
+
Camera *mVertexCameraUsed;
|
313
317
|
/// When true, the billboards always face the camera
|
314
318
|
bool mFaceCamera;
|
315
319
|
/// Used when mFaceCamera == false; determines the billboard's "normal". i.e.
|
@@ -221,6 +221,8 @@ namespace Ogre {
|
|
221
221
|
void _notifyDefaultDimensions(Real width, Real height);
|
222
222
|
/// @copydoc ParticleSystemRenderer::setRenderQueueGroup
|
223
223
|
void setRenderQueueGroup(uint8 queueID);
|
224
|
+
/// @copydoc MovableObject::setRenderQueueGroupAndPriority
|
225
|
+
void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
|
224
226
|
/// @copydoc ParticleSystemRenderer::setKeepParticlesInLocalSpace
|
225
227
|
void setKeepParticlesInLocalSpace(bool keepLocal);
|
226
228
|
/// @copydoc ParticleSystemRenderer::_getSortMode
|
@@ -48,8 +48,6 @@ THE SOFTWARE.
|
|
48
48
|
# include "OSX/OgreConfigDialogImp.h"
|
49
49
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
|
50
50
|
# include "iOS/OgreConfigDialogImp.h"
|
51
|
-
#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
|
52
|
-
# include "Symbian/OgreConfigDialogImp.h"
|
53
51
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
|
54
52
|
# include "Android/OgreConfigDialogImp.h"
|
55
53
|
#endif
|
@@ -39,7 +39,7 @@ THE SOFTWARE.
|
|
39
39
|
struct HINSTANCE__;
|
40
40
|
typedef struct HINSTANCE__* hInstance;
|
41
41
|
|
42
|
-
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
|
42
|
+
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_NACL
|
43
43
|
# define DYNLIB_HANDLE void*
|
44
44
|
# define DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY | RTLD_GLOBAL)
|
45
45
|
# define DYNLIB_GETSYM( a, b ) dlsym( a, b )
|
@@ -51,12 +51,6 @@ typedef struct HINSTANCE__* hInstance;
|
|
51
51
|
# define DYNLIB_GETSYM( a, b ) dlsym( a, b )
|
52
52
|
# define DYNLIB_UNLOAD( a ) dlclose( a )
|
53
53
|
|
54
|
-
#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN || OGRE_PLATFORM == OGRE_PLATFORM_NACL
|
55
|
-
# define DYNLIB_HANDLE void*
|
56
|
-
# define DYNLIB_LOAD( a ) 0
|
57
|
-
# define DYNLIB_GETSYM( a, b ) 0
|
58
|
-
# define DYNLIB_UNLOAD( a ) 0
|
59
|
-
|
60
54
|
#endif
|
61
55
|
|
62
56
|
namespace Ogre {
|
@@ -48,8 +48,6 @@ THE SOFTWARE.
|
|
48
48
|
# include "OSX/OgreErrorDialogImp.h"
|
49
49
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
|
50
50
|
# include "iOS/OgreErrorDialogImp.h"
|
51
|
-
#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
|
52
|
-
# include "Symbian/OgreErrorDialogImp.h"
|
53
51
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
|
54
52
|
# include "Android/OgreErrorDialogImp.h"
|
55
53
|
#endif
|
@@ -23,8 +23,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
23
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
THE SOFTWARE
|
25
25
|
-------------------------------------------------------------------------*/
|
26
|
-
#ifndef
|
27
|
-
#define
|
26
|
+
#ifndef __OgreHeaderSuffix_H__
|
27
|
+
#define __OgreHeaderSuffix_H__
|
28
28
|
|
29
29
|
#include "OgrePrerequisites.h"
|
30
30
|
|
@@ -39,6 +39,6 @@ THE SOFTWARE
|
|
39
39
|
|
40
40
|
#endif
|
41
41
|
// allow inclusion of prefix again now (this is scoped)
|
42
|
-
#undef
|
42
|
+
#undef __OgreHeaderSuffix_H__
|
43
43
|
|
44
44
|
|
@@ -338,6 +338,10 @@ namespace Ogre
|
|
338
338
|
|
339
339
|
virtual void _updateRenderQueue(RenderQueue* queue);
|
340
340
|
void visitRenderables( Renderable::Visitor* visitor, bool debugRenderables = false );
|
341
|
+
|
342
|
+
// resolve ambiguity of get/setUserAny due to inheriting from Renderable and MovableObject
|
343
|
+
using Renderable::getUserAny;
|
344
|
+
using Renderable::setUserAny;
|
341
345
|
};
|
342
346
|
}
|
343
347
|
|
@@ -144,6 +144,11 @@ namespace Ogre
|
|
144
144
|
*/
|
145
145
|
void applySettingToBatches( BatchSettingId id, bool value, const InstanceBatchVec &container );
|
146
146
|
|
147
|
+
/** Called when we you use a mesh which has shared vertices, the function creates separate
|
148
|
+
vertex/index buffers and also recreates the bone assignments.
|
149
|
+
*/
|
150
|
+
void unshareVertices(const Ogre::MeshPtr &mesh);
|
151
|
+
|
147
152
|
public:
|
148
153
|
InstanceManager( const String &customName, SceneManager *sceneManager,
|
149
154
|
const String &meshName, const String &groupName,
|
@@ -29,9 +29,20 @@ THE SOFTWARE.
|
|
29
29
|
#define __Ogre_Iterator_Range_H__
|
30
30
|
|
31
31
|
|
32
|
-
//#define OGRE_USE_BOOST 1 - picked up by CMake
|
33
32
|
#if OGRE_USE_BOOST
|
34
|
-
#
|
33
|
+
# if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
|
34
|
+
# pragma GCC diagnostic push
|
35
|
+
# pragma GCC diagnostic ignored "-Wshadow"
|
36
|
+
# pragma GCC diagnostic ignored "-Wpadded"
|
37
|
+
# pragma GCC diagnostic ignored "-Wweak-vtables"
|
38
|
+
# pragma GCC diagnostic ignored "-Wall"
|
39
|
+
# endif
|
40
|
+
|
41
|
+
# include <boost/range.hpp>
|
42
|
+
|
43
|
+
# if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
|
44
|
+
# pragma GCC diagnostic pop
|
45
|
+
# endif
|
35
46
|
#endif
|
36
47
|
|
37
48
|
namespace Ogre {
|
@@ -548,6 +548,8 @@ namespace Ogre {
|
|
548
548
|
|
549
549
|
/** @copydoc MovableObject::setRenderQueueGroup */
|
550
550
|
void setRenderQueueGroup(uint8 queueID);
|
551
|
+
/** @copydoc MovableObject::setRenderQueueGroupAndPriority */
|
552
|
+
void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
|
551
553
|
|
552
554
|
/** Set whether or not particles are sorted according to the camera.
|
553
555
|
@remarks
|
@@ -108,6 +108,10 @@ namespace Ogre {
|
|
108
108
|
output.
|
109
109
|
*/
|
110
110
|
virtual void setRenderQueueGroup(uint8 queueID) = 0;
|
111
|
+
/** Sets which render queue group and priority this renderer should target with it's
|
112
|
+
output.
|
113
|
+
*/
|
114
|
+
virtual void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority) = 0;
|
111
115
|
|
112
116
|
/** Setting carried over from ParticleSystem.
|
113
117
|
*/
|
@@ -36,10 +36,9 @@ namespace Ogre {
|
|
36
36
|
#define OGRE_PLATFORM_WIN32 1
|
37
37
|
#define OGRE_PLATFORM_LINUX 2
|
38
38
|
#define OGRE_PLATFORM_APPLE 3
|
39
|
-
#define
|
40
|
-
#define
|
41
|
-
#define
|
42
|
-
#define OGRE_PLATFORM_NACL 7
|
39
|
+
#define OGRE_PLATFORM_APPLE_IOS 4
|
40
|
+
#define OGRE_PLATFORM_ANDROID 5
|
41
|
+
#define OGRE_PLATFORM_NACL 6
|
43
42
|
|
44
43
|
#define OGRE_COMPILER_MSVC 1
|
45
44
|
#define OGRE_COMPILER_GNUC 2
|
@@ -100,9 +99,7 @@ namespace Ogre {
|
|
100
99
|
|
101
100
|
/* Finds the current platform */
|
102
101
|
|
103
|
-
#if defined(
|
104
|
-
# define OGRE_PLATFORM OGRE_PLATFORM_SYMBIAN
|
105
|
-
#elif defined( __WIN32__ ) || defined( _WIN32 )
|
102
|
+
#if defined( __WIN32__ ) || defined( _WIN32 )
|
106
103
|
# define OGRE_PLATFORM OGRE_PLATFORM_WIN32
|
107
104
|
#elif defined( __APPLE_CC__)
|
108
105
|
// Device Simulator
|
@@ -201,26 +198,6 @@ namespace Ogre {
|
|
201
198
|
|
202
199
|
#endif // OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
203
200
|
|
204
|
-
//----------------------------------------------------------------------------
|
205
|
-
// Symbian Settings
|
206
|
-
#if OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
|
207
|
-
# define _OgreExport
|
208
|
-
# define OGRE_UNICODE_SUPPORT 1
|
209
|
-
# define OGRE_DEBUG_MODE 0
|
210
|
-
# define _OgrePrivate
|
211
|
-
# define CLOCKS_PER_SEC 1000
|
212
|
-
// pragma def were found here: http://www.inf.pucrs.br/~eduardob/disciplinas/SistEmbarcados/Mobile/Nokia/Tools/Carbide_vs/WINSCW/Help/PDF/C_Compilers_Reference_3.2.pdf
|
213
|
-
# pragma warn_unusedarg off
|
214
|
-
# pragma warn_emptydecl off
|
215
|
-
# pragma warn_possunwant off
|
216
|
-
// A quick define to overcome different names for the same function
|
217
|
-
# define stricmp strcasecmp
|
218
|
-
# ifdef DEBUG
|
219
|
-
# define OGRE_DEBUG_MODE 1
|
220
|
-
# else
|
221
|
-
# define OGRE_DEBUG_MODE 0
|
222
|
-
# endif
|
223
|
-
#endif
|
224
201
|
//----------------------------------------------------------------------------
|
225
202
|
// Android Settings
|
226
203
|
/*
|
@@ -244,7 +221,7 @@ namespace Ogre {
|
|
244
221
|
#endif
|
245
222
|
*/
|
246
223
|
//----------------------------------------------------------------------------
|
247
|
-
// Linux/Apple/iOs/Android/
|
224
|
+
// Linux/Apple/iOs/Android/NaCl Settings
|
248
225
|
#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
|
249
226
|
OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_NACL
|
250
227
|
|
@@ -53,6 +53,9 @@ Ogre-dependent is in the visualization/logging routines and the use of the Timer
|
|
53
53
|
# define OgreProfileGroup( a, g ) Ogre::Profile _OgreProfileInstance( (a), (g) )
|
54
54
|
# define OgreProfileBeginGroup( a, g ) Ogre::Profiler::getSingleton().beginProfile( (a), (g) )
|
55
55
|
# define OgreProfileEndGroup( a, g ) Ogre::Profiler::getSingleton().endProfile( (a), (g) )
|
56
|
+
# define OgreProfileBeginGPUEvent( g ) Ogre::Profiler::getSingleton().beginGPUEvent(g)
|
57
|
+
# define OgreProfileEndGPUEvent( g ) Ogre::Profiler::getSingleton().endGPUEvent(g)
|
58
|
+
# define OgreProfileMarkGPUEvent( e ) Ogre::Profiler::getSingleton().markGPUEvent(e)
|
56
59
|
#else
|
57
60
|
# define OgreProfile( a )
|
58
61
|
# define OgreProfileBegin( a )
|
@@ -60,6 +63,9 @@ Ogre-dependent is in the visualization/logging routines and the use of the Timer
|
|
60
63
|
# define OgreProfileGroup( a, g )
|
61
64
|
# define OgreProfileBeginGroup( a, g )
|
62
65
|
# define OgreProfileEndGroup( a, g )
|
66
|
+
# define OgreProfileBeginGPUEvent( e )
|
67
|
+
# define OgreProfileEndGPUEvent( e )
|
68
|
+
# define OgreProfileMarkGPUEvent( e )
|
63
69
|
#endif
|
64
70
|
|
65
71
|
namespace Ogre {
|
@@ -96,7 +102,9 @@ namespace Ogre {
|
|
96
102
|
outside of a scope (i.e. the main game loop).
|
97
103
|
@author Amit Mathew (amitmathew (at) yahoo (dot) com)
|
98
104
|
*/
|
99
|
-
class _OgreExport Profile :
|
105
|
+
class _OgreExport Profile :
|
106
|
+
public ProfilerAlloc
|
107
|
+
{
|
100
108
|
|
101
109
|
public:
|
102
110
|
Profile(const String& profileName, uint32 groupID = (uint32)OGREPROF_USER_DEFAULT);
|
@@ -123,8 +131,10 @@ namespace Ogre {
|
|
123
131
|
@todo resolve artificial cap on number of profiles displayed
|
124
132
|
@todo fix display ordering of profiles not called every frame
|
125
133
|
*/
|
126
|
-
class _OgreExport Profiler :
|
127
|
-
|
134
|
+
class _OgreExport Profiler :
|
135
|
+
public Singleton<Profiler>,
|
136
|
+
public ProfilerAlloc
|
137
|
+
{
|
128
138
|
public:
|
129
139
|
Profiler();
|
130
140
|
~Profiler();
|
@@ -166,6 +176,21 @@ namespace Ogre {
|
|
166
176
|
*/
|
167
177
|
void endProfile(const String& profileName, uint32 groupID = (uint32)OGREPROF_USER_DEFAULT);
|
168
178
|
|
179
|
+
/** Mark the beginning of a GPU event group
|
180
|
+
@remarks Can be safely called in the middle of the profile.
|
181
|
+
*/
|
182
|
+
void beginGPUEvent(const String& event);
|
183
|
+
|
184
|
+
/** Mark the end of a GPU event group
|
185
|
+
@remarks Can be safely called in the middle of the profile.
|
186
|
+
*/
|
187
|
+
void endGPUEvent(const String& event);
|
188
|
+
|
189
|
+
/** Mark a specific, ungrouped, GPU event
|
190
|
+
@remarks Can be safely called in the middle of the profile.
|
191
|
+
*/
|
192
|
+
void markGPUEvent(const String& event);
|
193
|
+
|
169
194
|
/** Sets whether this profiler is enabled. Only takes effect after the
|
170
195
|
the frame has ended.
|
171
196
|
@remarks When this is called the first time with the parameter true,
|
@@ -177,14 +202,12 @@ namespace Ogre {
|
|
177
202
|
bool getEnabled() const;
|
178
203
|
|
179
204
|
/** Enables a previously disabled profile
|
180
|
-
@remarks
|
181
|
-
called during the profile it is trying to enable.
|
205
|
+
@remarks Can be safely called in the middle of the profile.
|
182
206
|
*/
|
183
207
|
void enableProfile(const String& profileName);
|
184
208
|
|
185
209
|
/** Disables a profile
|
186
|
-
@remarks
|
187
|
-
the profile it is trying to disable.
|
210
|
+
@remarks Can be safely called in the middle of the profile.
|
188
211
|
*/
|
189
212
|
void disableProfile(const String& profileName);
|
190
213
|
|
@@ -291,16 +314,26 @@ namespace Ogre {
|
|
291
314
|
*/
|
292
315
|
static Profiler* getSingletonPtr(void);
|
293
316
|
|
317
|
+
|
318
|
+
|
294
319
|
protected:
|
295
320
|
|
296
321
|
/** Initializes the profiler's GUI elements */
|
297
322
|
void initialize();
|
298
323
|
|
299
|
-
|
300
|
-
|
324
|
+
class ProfileInstance;
|
325
|
+
friend class ProfileInstance;
|
326
|
+
typedef list<OverlayElement*>::type ProfileBarList;
|
301
327
|
|
302
|
-
|
303
|
-
|
328
|
+
void displayResults(void);
|
329
|
+
/** Prints the profiling results of each frame
|
330
|
+
@remarks Recursive, for all the little children. */
|
331
|
+
void displayResults(ProfileInstance* instance, ProfileBarList::iterator& bIter, Real& maxTimeMillisecs, Real& newGuiHeight, int& profileCount);
|
332
|
+
|
333
|
+
/** Processes frame stats for all of the mRoot's children */
|
334
|
+
void processFrameStats(void);
|
335
|
+
/** Processes specific ProfileInstance and it's children recursively.*/
|
336
|
+
void processFrameStats(ProfileInstance* instance, Real& maxFrameTime);
|
304
337
|
|
305
338
|
/** Handles a change of the profiler's enabled state*/
|
306
339
|
void changeEnableState();
|
@@ -316,32 +349,11 @@ namespace Ogre {
|
|
316
349
|
OverlayElement* createPanel(const String& name, Real width, Real height, Real top, Real left,
|
317
350
|
const String& materialName, bool show = true);
|
318
351
|
|
319
|
-
/// Represents an individual profile call
|
320
|
-
struct ProfileInstance {
|
321
|
-
|
322
|
-
/// The name of the profile
|
323
|
-
String name;
|
324
|
-
|
325
|
-
/// The name of the parent, empty string if root
|
326
|
-
String parent;
|
327
|
-
|
328
|
-
/// The time this profile was started
|
329
|
-
ulong currTime;
|
330
|
-
|
331
|
-
/// Represents the total time of all child profiles to subtract
|
332
|
-
/// from this profile
|
333
|
-
ulong accum;
|
334
|
-
|
335
|
-
/// The hierarchical level of this profile, 0 being the root profile
|
336
|
-
uint hierarchicalLvl;
|
337
|
-
};
|
338
352
|
|
339
353
|
/// Represents the total timing information of a profile
|
340
354
|
/// since profiles can be called more than once each frame
|
341
|
-
struct ProfileFrame
|
342
|
-
|
343
|
-
/// The name of the profile
|
344
|
-
String name;
|
355
|
+
struct ProfileFrame
|
356
|
+
{
|
345
357
|
|
346
358
|
/// The total time this profile has taken this frame
|
347
359
|
ulong frameTime;
|
@@ -355,11 +367,8 @@ namespace Ogre {
|
|
355
367
|
};
|
356
368
|
|
357
369
|
/// Represents a history of each profile during the duration of the app
|
358
|
-
struct ProfileHistory
|
359
|
-
|
360
|
-
/// The name of the profile
|
361
|
-
String name;
|
362
|
-
|
370
|
+
struct ProfileHistory
|
371
|
+
{
|
363
372
|
/// The current percentage of frame time this profile has taken
|
364
373
|
Real currentTimePercent;
|
365
374
|
/// The current frame time this profile has taken in milliseconds
|
@@ -392,27 +401,65 @@ namespace Ogre {
|
|
392
401
|
|
393
402
|
};
|
394
403
|
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
404
|
+
/// Represents an individual profile call
|
405
|
+
class ProfileInstance :
|
406
|
+
public ProfilerAlloc
|
407
|
+
{
|
408
|
+
friend class Profiler;
|
409
|
+
public:
|
410
|
+
ProfileInstance(void);
|
411
|
+
virtual ~ProfileInstance(void);
|
401
412
|
|
402
|
-
|
413
|
+
typedef Ogre::map<String,ProfileInstance*>::type ProfileChildren;
|
414
|
+
|
415
|
+
void logResults();
|
416
|
+
void reset();
|
417
|
+
|
418
|
+
inline bool watchForMax(void) { return history.currentTimePercent == history.maxTimePercent; }
|
419
|
+
inline bool watchForMin(void) { return history.currentTimePercent == history.minTimePercent; }
|
420
|
+
inline bool watchForLimit(Real limit, bool greaterThan = true)
|
421
|
+
{
|
422
|
+
if (greaterThan)
|
423
|
+
return history.currentTimePercent > limit;
|
424
|
+
else
|
425
|
+
return history.currentTimePercent < limit;
|
426
|
+
}
|
403
427
|
|
404
|
-
|
405
|
-
|
428
|
+
bool watchForMax(const String& profileName);
|
429
|
+
bool watchForMin(const String& profileName);
|
430
|
+
bool watchForLimit(const String& profileName, Real limit, bool greaterThan = true);
|
431
|
+
|
432
|
+
/// The name of the profile
|
433
|
+
String name;
|
406
434
|
|
407
|
-
|
408
|
-
|
409
|
-
ProfileFrameList mProfileFrame;
|
435
|
+
/// The name of the parent, null if root
|
436
|
+
ProfileInstance* parent;
|
410
437
|
|
411
|
-
|
412
|
-
ProfileHistoryList mProfileHistory;
|
438
|
+
ProfileChildren children;
|
413
439
|
|
414
|
-
|
415
|
-
|
440
|
+
ProfileFrame frame;
|
441
|
+
ulong frameNumber;
|
442
|
+
|
443
|
+
ProfileHistory history;
|
444
|
+
|
445
|
+
/// The time this profile was started
|
446
|
+
ulong currTime;
|
447
|
+
|
448
|
+
/// Represents the total time of all child profiles to subtract
|
449
|
+
/// from this profile
|
450
|
+
ulong accum;
|
451
|
+
|
452
|
+
/// The hierarchical level of this profile, 0 being the root profile
|
453
|
+
uint hierarchicalLvl;
|
454
|
+
};
|
455
|
+
|
456
|
+
// lol. Uses typedef; put's original container type in name.
|
457
|
+
typedef set<String>::type DisabledProfileMap;
|
458
|
+
typedef ProfileInstance::ProfileChildren ProfileChildren;
|
459
|
+
|
460
|
+
ProfileInstance* mCurrent;
|
461
|
+
ProfileInstance* mLast;
|
462
|
+
ProfileInstance mRoot;
|
416
463
|
|
417
464
|
/// Holds the names of disabled profiles
|
418
465
|
DisabledProfileMap mDisabledProfiles;
|
@@ -475,10 +522,6 @@ namespace Ogre {
|
|
475
522
|
/// Whether this profiler is enabled
|
476
523
|
bool mEnabled;
|
477
524
|
|
478
|
-
/// Keeps track of whether this profiler has
|
479
|
-
/// received a request to be enabled/disabled
|
480
|
-
bool mEnableStateChangePending;
|
481
|
-
|
482
525
|
/// Keeps track of the new enabled/disabled state that the user has requested
|
483
526
|
/// which will be applied after the frame ends
|
484
527
|
bool mNewEnableState;
|
@@ -60,7 +60,7 @@ namespace Ogre {
|
|
60
60
|
BitArray(int bits_count) : bits_ptr(NULL) { resize(bits_count); }
|
61
61
|
BitArray& operator=(const BitArray& ba) { bits = ba.bits; bits_ptr = bits.size() > 0 ? &bits.front() : NULL; return *this; }
|
62
62
|
|
63
|
-
bool getBit(size_t i) const { return bits_ptr[i >> 3] & bit_mask[i & 7]; }
|
63
|
+
bool getBit(size_t i) const { return (bits_ptr[i >> 3] & bit_mask[i & 7]) != 0; }
|
64
64
|
void setBit(size_t i) { bits_ptr[i >> 3] |= bit_mask[i & 7]; }
|
65
65
|
void clearBit(size_t i) { bits_ptr[i >> 3] &= ~bit_mask[i & 7]; }
|
66
66
|
void clearAllBits() { memset(bits_ptr, 0, bits.size()); }
|
@@ -224,7 +224,7 @@ namespace Ogre {
|
|
224
224
|
|
225
225
|
size_t mRemovedVertexDuplicatesCount;
|
226
226
|
size_t mCurrNumIndexes;
|
227
|
-
|
227
|
+
Real mInvSquaredBoundBoxDiagonal;
|
228
228
|
int mVertexComponentFlags;
|
229
229
|
|
230
230
|
// Internal classes
|
@@ -1453,10 +1453,27 @@ namespace Ogre
|
|
1453
1453
|
@see Root::getDisplayMonitorCount
|
1454
1454
|
*/
|
1455
1455
|
virtual unsigned int getDisplayMonitorCount() const = 0;
|
1456
|
+
|
1457
|
+
/**
|
1458
|
+
* This marks the beginning of an event for GPU profiling.
|
1459
|
+
*/
|
1460
|
+
virtual void beginProfileEvent( const String &eventName ) = 0;
|
1461
|
+
|
1462
|
+
/**
|
1463
|
+
* Ends the currently active GPU profiling event.
|
1464
|
+
*/
|
1465
|
+
virtual void endProfileEvent( void ) = 0;
|
1466
|
+
|
1467
|
+
/**
|
1468
|
+
* Marks an instantaneous event for graphics profilers.
|
1469
|
+
* This is equivalent to calling @see beginProfileEvent and @see endProfileEvent back to back.
|
1470
|
+
*/
|
1471
|
+
virtual void markProfileEvent( const String &event ) = 0;
|
1472
|
+
|
1456
1473
|
protected:
|
1457
1474
|
|
1458
1475
|
/** DepthBuffers to be attached to render targets */
|
1459
|
-
DepthBufferMap
|
1476
|
+
DepthBufferMap mDepthBufferPool;
|
1460
1477
|
|
1461
1478
|
/** The render targets. */
|
1462
1479
|
RenderTargetMap mRenderTargets;
|
@@ -44,9 +44,7 @@ THE SOFTWARE.
|
|
44
44
|
|
45
45
|
#include <dirent.h>
|
46
46
|
#include <unistd.h>
|
47
|
-
#if OGRE_PLATFORM != OGRE_PLATFORM_SYMBIAN
|
48
47
|
#include <fnmatch.h>
|
49
|
-
#endif
|
50
48
|
|
51
49
|
/* Our simplified data entry structure */
|
52
50
|
struct _finddata_t
|
@@ -56,7 +54,6 @@ struct _finddata_t
|
|
56
54
|
unsigned long size;
|
57
55
|
};
|
58
56
|
|
59
|
-
#if OGRE_PLATFORM != OGRE_PLATFORM_SYMBIAN
|
60
57
|
#define _A_NORMAL 0x00 /* Normalfile-Noread/writerestrictions */
|
61
58
|
#define _A_RDONLY 0x01 /* Read only file */
|
62
59
|
#define _A_HIDDEN 0x02 /* Hidden file */
|
@@ -70,5 +67,3 @@ int _findnext(intptr_t id, struct _finddata_t *data);
|
|
70
67
|
int _findclose(intptr_t id);
|
71
68
|
|
72
69
|
#endif
|
73
|
-
|
74
|
-
#endif
|
@@ -73,7 +73,7 @@ namespace Ogre {
|
|
73
73
|
/// Named constructor
|
74
74
|
SimpleRenderable(const String& name);
|
75
75
|
|
76
|
-
void setMaterial( const String& matName );
|
76
|
+
virtual void setMaterial( const String& matName );
|
77
77
|
virtual const MaterialPtr& getMaterial(void) const;
|
78
78
|
|
79
79
|
virtual void setRenderOperation( const RenderOperation& rend );
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#define __STD_ALGORITHM
|
6
6
|
#endif
|
7
7
|
|
8
|
-
#if defined ( OGRE_GCC_VISIBILITY ) && (OGRE_PLATFORM
|
8
|
+
#if defined ( OGRE_GCC_VISIBILITY ) && ((OGRE_PLATFORM == OGRE_PLATFORM_APPLE && !__LP64__) && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
|
9
9
|
/* Until libstdc++ for gcc 4.2 is released, we have to declare all
|
10
10
|
* symbols in libstdc++.so externally visible, otherwise we end up
|
11
11
|
* with them marked as hidden by -fvisible=hidden.
|
@@ -122,7 +122,7 @@ extern "C" {
|
|
122
122
|
# include "Threading/OgreThreadHeaders.h"
|
123
123
|
#endif
|
124
124
|
|
125
|
-
#if defined ( OGRE_GCC_VISIBILITY ) && (OGRE_PLATFORM
|
125
|
+
#if defined ( OGRE_GCC_VISIBILITY ) && ((OGRE_PLATFORM == OGRE_PLATFORM_APPLE && !__LP64__) && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
|
126
126
|
# pragma GCC visibility pop
|
127
127
|
#endif
|
128
128
|
#endif
|
@@ -200,6 +200,11 @@ namespace Ogre {
|
|
200
200
|
0.0 if the value could not be parsed, otherwise the numeric version of the String.
|
201
201
|
*/
|
202
202
|
static unsigned long parseUnsignedLong(const String& val, unsigned long defaultValue = 0);
|
203
|
+
/** Converts a String to size_t.
|
204
|
+
@return
|
205
|
+
defaultValue if the value could not be parsed, otherwise the numeric version of the String.
|
206
|
+
*/
|
207
|
+
static size_t parseSizeT(const String& val, size_t defaultValue = 0);
|
203
208
|
/** Converts a String to a boolean.
|
204
209
|
@remarks
|
205
210
|
Returns true if case-insensitive match of the start of the string
|