ruby-ogre 0.0.1-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.
Files changed (1607) hide show
  1. data/INSTALL.md +24 -0
  2. data/LICENSE +23 -0
  3. data/README.md +39 -0
  4. data/Rakefile +271 -0
  5. data/bindings/ogre/interface/AnyVALUE.h +21 -0
  6. data/bindings/ogre/interface/GLX/OgreConfigDialogImp.i +8 -0
  7. data/bindings/ogre/interface/GLX/OgreErrorDialogImp.i +8 -0
  8. data/bindings/ogre/interface/GLX/OgreTimerImp.i +8 -0
  9. data/bindings/ogre/interface/Makefile +19 -0
  10. data/bindings/ogre/interface/Ogre.i +8 -0
  11. data/bindings/ogre/interface/OgreAlignedAllocator.i +10 -0
  12. data/bindings/ogre/interface/OgreAnimable.i +6 -0
  13. data/bindings/ogre/interface/OgreAnimation.i +8 -0
  14. data/bindings/ogre/interface/OgreAnimationBlender.i +8 -0
  15. data/bindings/ogre/interface/OgreAnimationState.i +31 -0
  16. data/bindings/ogre/interface/OgreAnimationTrack.i +6 -0
  17. data/bindings/ogre/interface/OgreAny.i +381 -0
  18. data/bindings/ogre/interface/OgreArchive.i +6 -0
  19. data/bindings/ogre/interface/OgreArchiveFactory.i +10 -0
  20. data/bindings/ogre/interface/OgreArchiveManager.i +8 -0
  21. data/bindings/ogre/interface/OgreAtomicWrappers.i +8 -0
  22. data/bindings/ogre/interface/OgreAutoParamDataSource.i +8 -0
  23. data/bindings/ogre/interface/OgreAxisAlignedBox.i +6 -0
  24. data/bindings/ogre/interface/OgreBillboard.i +8 -0
  25. data/bindings/ogre/interface/OgreBillboardChain.i +8 -0
  26. data/bindings/ogre/interface/OgreBillboardParticleRenderer.i +8 -0
  27. data/bindings/ogre/interface/OgreBillboardSet.i +8 -0
  28. data/bindings/ogre/interface/OgreBitwise.i +10 -0
  29. data/bindings/ogre/interface/OgreBlendMode.i +6 -0
  30. data/bindings/ogre/interface/OgreBone.i +8 -0
  31. data/bindings/ogre/interface/OgreBorderPanelOverlayElement.i +14 -0
  32. data/bindings/ogre/interface/OgreBuildSettings.i +8 -0
  33. data/bindings/ogre/interface/OgreCamera.i +6 -0
  34. data/bindings/ogre/interface/OgreCodec.i +8 -0
  35. data/bindings/ogre/interface/OgreColourValue.i +6 -0
  36. data/bindings/ogre/interface/OgreCommon.i +12 -0
  37. data/bindings/ogre/interface/OgreCompositionPass.i +8 -0
  38. data/bindings/ogre/interface/OgreCompositionTargetPass.i +8 -0
  39. data/bindings/ogre/interface/OgreCompositionTechnique.i +13 -0
  40. data/bindings/ogre/interface/OgreCompositor.i +8 -0
  41. data/bindings/ogre/interface/OgreCompositorChain.i +8 -0
  42. data/bindings/ogre/interface/OgreCompositorInstance.i +8 -0
  43. data/bindings/ogre/interface/OgreCompositorLogic.i +8 -0
  44. data/bindings/ogre/interface/OgreCompositorManager.i +8 -0
  45. data/bindings/ogre/interface/OgreConfig.i +8 -0
  46. data/bindings/ogre/interface/OgreConfigDialog.i +8 -0
  47. data/bindings/ogre/interface/OgreConfigFile.i +88 -0
  48. data/bindings/ogre/interface/OgreConfigOptionMap.i +6 -0
  49. data/bindings/ogre/interface/OgreController.i +8 -0
  50. data/bindings/ogre/interface/OgreControllerManager.i +8 -0
  51. data/bindings/ogre/interface/OgreConvexBody.i +8 -0
  52. data/bindings/ogre/interface/OgreCustomCompositionPass.i +8 -0
  53. data/bindings/ogre/interface/OgreDDSCodec.i +8 -0
  54. data/bindings/ogre/interface/OgreDataStream.i +6 -0
  55. data/bindings/ogre/interface/OgreDefaultHardwareBufferManager.i +8 -0
  56. data/bindings/ogre/interface/OgreDeflate.i +8 -0
  57. data/bindings/ogre/interface/OgreDepthBuffer.i +8 -0
  58. data/bindings/ogre/interface/OgreDistanceLodStrategy.i +8 -0
  59. data/bindings/ogre/interface/OgreDualQuaternion.i +8 -0
  60. data/bindings/ogre/interface/OgreDynLib.i +8 -0
  61. data/bindings/ogre/interface/OgreDynLibManager.i +8 -0
  62. data/bindings/ogre/interface/OgreEdgeListBuilder.i +8 -0
  63. data/bindings/ogre/interface/OgreEntity.i +6 -0
  64. data/bindings/ogre/interface/OgreErrorDialog.i +8 -0
  65. data/bindings/ogre/interface/OgreException.i +8 -0
  66. data/bindings/ogre/interface/OgreExternalTextureSource.i +8 -0
  67. data/bindings/ogre/interface/OgreExternalTextureSourceManager.i +8 -0
  68. data/bindings/ogre/interface/OgreFactoryObj.i +8 -0
  69. data/bindings/ogre/interface/OgreFileSystem.i +8 -0
  70. data/bindings/ogre/interface/OgreFont.i +8 -0
  71. data/bindings/ogre/interface/OgreFontManager.i +8 -0
  72. data/bindings/ogre/interface/OgreFrameListener.i +9 -0
  73. data/bindings/ogre/interface/OgreFreeImageCodec.i +8 -0
  74. data/bindings/ogre/interface/OgreFrustum.i +6 -0
  75. data/bindings/ogre/interface/OgreGpuProgram.i +6 -0
  76. data/bindings/ogre/interface/OgreGpuProgramManager.i +8 -0
  77. data/bindings/ogre/interface/OgreGpuProgramParams.i +13 -0
  78. data/bindings/ogre/interface/OgreGpuProgramUsage.i +8 -0
  79. data/bindings/ogre/interface/OgreHardwareBuffer.i +6 -0
  80. data/bindings/ogre/interface/OgreHardwareBufferManager.i +8 -0
  81. data/bindings/ogre/interface/OgreHardwareIndexBuffer.i +6 -0
  82. data/bindings/ogre/interface/OgreHardwareOcclusionQuery.i +8 -0
  83. data/bindings/ogre/interface/OgreHardwarePixelBuffer.i +6 -0
  84. data/bindings/ogre/interface/OgreHardwareVertexBuffer.i +6 -0
  85. data/bindings/ogre/interface/OgreHeaderPrefix.i +8 -0
  86. data/bindings/ogre/interface/OgreHeaderSuffix.i +8 -0
  87. data/bindings/ogre/interface/OgreHighLevelGpuProgram.i +8 -0
  88. data/bindings/ogre/interface/OgreHighLevelGpuProgramManager.i +8 -0
  89. data/bindings/ogre/interface/OgreImage.i +6 -0
  90. data/bindings/ogre/interface/OgreImageCodec.i +8 -0
  91. data/bindings/ogre/interface/OgreInstanceBatch.i +8 -0
  92. data/bindings/ogre/interface/OgreInstanceBatchHW.i +8 -0
  93. data/bindings/ogre/interface/OgreInstanceBatchHW_VTF.i +8 -0
  94. data/bindings/ogre/interface/OgreInstanceBatchShader.i +8 -0
  95. data/bindings/ogre/interface/OgreInstanceBatchVTF.i +8 -0
  96. data/bindings/ogre/interface/OgreInstanceManager.i +8 -0
  97. data/bindings/ogre/interface/OgreInstancedEntity.i +8 -0
  98. data/bindings/ogre/interface/OgreInstancedGeometry.i +9 -0
  99. data/bindings/ogre/interface/OgreIteratorRange.i +8 -0
  100. data/bindings/ogre/interface/OgreIteratorWrapper.i +6 -0
  101. data/bindings/ogre/interface/OgreIteratorWrappers.i +8 -0
  102. data/bindings/ogre/interface/OgreKeyFrame.i +13 -0
  103. data/bindings/ogre/interface/OgreLight.i +6 -0
  104. data/bindings/ogre/interface/OgreLodListener.i +6 -0
  105. data/bindings/ogre/interface/OgreLodStrategy.i +8 -0
  106. data/bindings/ogre/interface/OgreLodStrategyManager.i +10 -0
  107. data/bindings/ogre/interface/OgreLog.i +11 -0
  108. data/bindings/ogre/interface/OgreLogManager.i +8 -0
  109. data/bindings/ogre/interface/OgreManualObject.i +8 -0
  110. data/bindings/ogre/interface/OgreMaterial.i +17 -0
  111. data/bindings/ogre/interface/OgreMaterialManager.i +6 -0
  112. data/bindings/ogre/interface/OgreMaterialSerializer.i +8 -0
  113. data/bindings/ogre/interface/OgreMath.i +5 -0
  114. data/bindings/ogre/interface/OgreMatrix3.i +8 -0
  115. data/bindings/ogre/interface/OgreMatrix4.i +6 -0
  116. data/bindings/ogre/interface/OgreMemoryAllocatedObject.i +8 -0
  117. data/bindings/ogre/interface/OgreMemoryAllocatorConfig.i +7 -0
  118. data/bindings/ogre/interface/OgreMemoryNedAlloc.i +8 -0
  119. data/bindings/ogre/interface/OgreMemoryNedPooling.i +6 -0
  120. data/bindings/ogre/interface/OgreMemorySTLAllocator.i +5 -0
  121. data/bindings/ogre/interface/OgreMemoryStdAlloc.i +8 -0
  122. data/bindings/ogre/interface/OgreMemoryTracker.i +8 -0
  123. data/bindings/ogre/interface/OgreMesh.i +11 -0
  124. data/bindings/ogre/interface/OgreMeshFileFormat.i +8 -0
  125. data/bindings/ogre/interface/OgreMeshManager.i +6 -0
  126. data/bindings/ogre/interface/OgreMeshSerializer.i +8 -0
  127. data/bindings/ogre/interface/OgreMeshSerializerImpl.i +8 -0
  128. data/bindings/ogre/interface/OgreMovableObject.i +12 -0
  129. data/bindings/ogre/interface/OgreMovablePlane.i +8 -0
  130. data/bindings/ogre/interface/OgreNode.i +8 -0
  131. data/bindings/ogre/interface/OgreNumerics.i +8 -0
  132. data/bindings/ogre/interface/OgreOptimisedUtil.i +8 -0
  133. data/bindings/ogre/interface/OgreOverlay.i +6 -0
  134. data/bindings/ogre/interface/OgreOverlayContainer.i +37 -0
  135. data/bindings/ogre/interface/OgreOverlayElement.i +6 -0
  136. data/bindings/ogre/interface/OgreOverlayElementCommands.i +8 -0
  137. data/bindings/ogre/interface/OgreOverlayElementFactory.i +8 -0
  138. data/bindings/ogre/interface/OgreOverlayManager.i +20 -0
  139. data/bindings/ogre/interface/OgrePanelOverlayElement.i +14 -0
  140. data/bindings/ogre/interface/OgreParticle.i +8 -0
  141. data/bindings/ogre/interface/OgreParticleAffector.i +8 -0
  142. data/bindings/ogre/interface/OgreParticleAffectorFactory.i +8 -0
  143. data/bindings/ogre/interface/OgreParticleEmitter.i +8 -0
  144. data/bindings/ogre/interface/OgreParticleEmitterCommands.i +8 -0
  145. data/bindings/ogre/interface/OgreParticleEmitterFactory.i +8 -0
  146. data/bindings/ogre/interface/OgreParticleIterator.i +8 -0
  147. data/bindings/ogre/interface/OgreParticleScriptCompiler.i +8 -0
  148. data/bindings/ogre/interface/OgreParticleSystem.i +8 -0
  149. data/bindings/ogre/interface/OgreParticleSystemManager.i +8 -0
  150. data/bindings/ogre/interface/OgreParticleSystemRenderer.i +10 -0
  151. data/bindings/ogre/interface/OgrePass.i +6 -0
  152. data/bindings/ogre/interface/OgrePatchMesh.i +6 -0
  153. data/bindings/ogre/interface/OgrePatchSurface.i +6 -0
  154. data/bindings/ogre/interface/OgrePixelCountLodStrategy.i +8 -0
  155. data/bindings/ogre/interface/OgrePixelFormat.i +6 -0
  156. data/bindings/ogre/interface/OgrePlane.i +6 -0
  157. data/bindings/ogre/interface/OgrePlaneBoundedVolume.i +6 -0
  158. data/bindings/ogre/interface/OgrePlatform.i +6 -0
  159. data/bindings/ogre/interface/OgrePlatformInformation.i +8 -0
  160. data/bindings/ogre/interface/OgrePlugin.i +8 -0
  161. data/bindings/ogre/interface/OgrePolygon.i +8 -0
  162. data/bindings/ogre/interface/OgrePose.i +6 -0
  163. data/bindings/ogre/interface/OgrePredefinedControllers.i +8 -0
  164. data/bindings/ogre/interface/OgrePrefabFactory.i +8 -0
  165. data/bindings/ogre/interface/OgrePrerequisites.i +11 -0
  166. data/bindings/ogre/interface/OgreProfiler.i +8 -0
  167. data/bindings/ogre/interface/OgreProgressiveMesh.i +8 -0
  168. data/bindings/ogre/interface/OgreQuaternion.i +6 -0
  169. data/bindings/ogre/interface/OgreRadixSort.i +8 -0
  170. data/bindings/ogre/interface/OgreRay.i +8 -0
  171. data/bindings/ogre/interface/OgreRectangle.i +6 -0
  172. data/bindings/ogre/interface/OgreRectangle2D.i +6 -0
  173. data/bindings/ogre/interface/OgreRenderObjectListener.i +8 -0
  174. data/bindings/ogre/interface/OgreRenderOperation.i +8 -0
  175. data/bindings/ogre/interface/OgreRenderQueue.i +6 -0
  176. data/bindings/ogre/interface/OgreRenderQueueInvocation.i +8 -0
  177. data/bindings/ogre/interface/OgreRenderQueueListener.i +8 -0
  178. data/bindings/ogre/interface/OgreRenderQueueSortingGrouping.i +11 -0
  179. data/bindings/ogre/interface/OgreRenderSystem.i +23 -0
  180. data/bindings/ogre/interface/OgreRenderSystemCapabilities.i +6 -0
  181. data/bindings/ogre/interface/OgreRenderSystemCapabilitiesManager.i +8 -0
  182. data/bindings/ogre/interface/OgreRenderSystemCapabilitiesSerializer.i +8 -0
  183. data/bindings/ogre/interface/OgreRenderTarget.i +6 -0
  184. data/bindings/ogre/interface/OgreRenderTargetListener.i +8 -0
  185. data/bindings/ogre/interface/OgreRenderTexture.i +8 -0
  186. data/bindings/ogre/interface/OgreRenderToVertexBuffer.i +8 -0
  187. data/bindings/ogre/interface/OgreRenderWindow.i +6 -0
  188. data/bindings/ogre/interface/OgreRenderable.i +6 -0
  189. data/bindings/ogre/interface/OgreResource.i +9 -0
  190. data/bindings/ogre/interface/OgreResourceBackgroundQueue.i +8 -0
  191. data/bindings/ogre/interface/OgreResourceGroupManager.i +20 -0
  192. data/bindings/ogre/interface/OgreResourceManager.i +30 -0
  193. data/bindings/ogre/interface/OgreRibbonTrail.i +17 -0
  194. data/bindings/ogre/interface/OgreRoot.i +44 -0
  195. data/bindings/ogre/interface/OgreRotationalSpline.i +8 -0
  196. data/bindings/ogre/interface/OgreSceneManager.i +59 -0
  197. data/bindings/ogre/interface/OgreSceneManagerEnumerator.i +11 -0
  198. data/bindings/ogre/interface/OgreSceneNode.i +9 -0
  199. data/bindings/ogre/interface/OgreSceneQuery.i +6 -0
  200. data/bindings/ogre/interface/OgreScriptCompiler.i +11 -0
  201. data/bindings/ogre/interface/OgreScriptLexer.i +8 -0
  202. data/bindings/ogre/interface/OgreScriptLoader.i +8 -0
  203. data/bindings/ogre/interface/OgreScriptParser.i +8 -0
  204. data/bindings/ogre/interface/OgreScriptTranslator.i +8 -0
  205. data/bindings/ogre/interface/OgreSearchOps.i +8 -0
  206. data/bindings/ogre/interface/OgreSerializer.i +6 -0
  207. data/bindings/ogre/interface/OgreShadowCameraSetup.i +6 -0
  208. data/bindings/ogre/interface/OgreShadowCameraSetupFocused.i +8 -0
  209. data/bindings/ogre/interface/OgreShadowCameraSetupLiSPSM.i +8 -0
  210. data/bindings/ogre/interface/OgreShadowCameraSetupPSSM.i +8 -0
  211. data/bindings/ogre/interface/OgreShadowCameraSetupPlaneOptimal.i +8 -0
  212. data/bindings/ogre/interface/OgreShadowCaster.i +8 -0
  213. data/bindings/ogre/interface/OgreShadowTextureManager.i +6 -0
  214. data/bindings/ogre/interface/OgreShadowVolumeExtrudeProgram.i +8 -0
  215. data/bindings/ogre/interface/OgreSharedPtr.i +6 -0
  216. data/bindings/ogre/interface/OgreSimpleRenderable.i +6 -0
  217. data/bindings/ogre/interface/OgreSimpleSpline.i +8 -0
  218. data/bindings/ogre/interface/OgreSingleton.i +8 -0
  219. data/bindings/ogre/interface/OgreSkeleton.i +6 -0
  220. data/bindings/ogre/interface/OgreSkeletonFileFormat.i +8 -0
  221. data/bindings/ogre/interface/OgreSkeletonInstance.i +6 -0
  222. data/bindings/ogre/interface/OgreSkeletonManager.i +8 -0
  223. data/bindings/ogre/interface/OgreSkeletonSerializer.i +8 -0
  224. data/bindings/ogre/interface/OgreSmallVector.i +8 -0
  225. data/bindings/ogre/interface/OgreSphere.i +8 -0
  226. data/bindings/ogre/interface/OgreSpotShadowFadePng.i +8 -0
  227. data/bindings/ogre/interface/OgreStableHeaders.i +8 -0
  228. data/bindings/ogre/interface/OgreStaticFaceGroup.i +8 -0
  229. data/bindings/ogre/interface/OgreStaticGeometry.i +13 -0
  230. data/bindings/ogre/interface/OgreStaticPluginLoader.i +8 -0
  231. data/bindings/ogre/interface/OgreStdHeaders.i +8 -0
  232. data/bindings/ogre/interface/OgreStreamSerialiser.i +8 -0
  233. data/bindings/ogre/interface/OgreString.i +6 -0
  234. data/bindings/ogre/interface/OgreStringConverter.i +8 -0
  235. data/bindings/ogre/interface/OgreStringInterface.i +8 -0
  236. data/bindings/ogre/interface/OgreStringVector.i +22 -0
  237. data/bindings/ogre/interface/OgreSubEntity.i +8 -0
  238. data/bindings/ogre/interface/OgreSubMesh.i +8 -0
  239. data/bindings/ogre/interface/OgreTagPoint.i +8 -0
  240. data/bindings/ogre/interface/OgreTangentSpaceCalc.i +8 -0
  241. data/bindings/ogre/interface/OgreTechnique.i +18 -0
  242. data/bindings/ogre/interface/OgreTextAreaOverlayElement.i +8 -0
  243. data/bindings/ogre/interface/OgreTexture.i +6 -0
  244. data/bindings/ogre/interface/OgreTextureManager.i +6 -0
  245. data/bindings/ogre/interface/OgreTextureUnitState.i +6 -0
  246. data/bindings/ogre/interface/OgreTimer.i +8 -0
  247. data/bindings/ogre/interface/OgreUTFString.i +26 -0
  248. data/bindings/ogre/interface/OgreUnifiedHighLevelGpuProgram.i +10 -0
  249. data/bindings/ogre/interface/OgreUserObjectBindings.i +8 -0
  250. data/bindings/ogre/interface/OgreVector2.i +8 -0
  251. data/bindings/ogre/interface/OgreVector3.i +9 -0
  252. data/bindings/ogre/interface/OgreVector4.i +8 -0
  253. data/bindings/ogre/interface/OgreVertexBoneAssignment.i +6 -0
  254. data/bindings/ogre/interface/OgreVertexIndexData.i +8 -0
  255. data/bindings/ogre/interface/OgreViewport.i +6 -0
  256. data/bindings/ogre/interface/OgreWindowEventUtilities.i +6 -0
  257. data/bindings/ogre/interface/OgreWireBoundingBox.i +8 -0
  258. data/bindings/ogre/interface/OgreWorkQueue.i +8 -0
  259. data/bindings/ogre/interface/OgreZip.i +12 -0
  260. data/bindings/ogre/interface/Paging/OgreGrid2DPageStrategy.i +8 -0
  261. data/bindings/ogre/interface/Paging/OgreGrid3DPageStrategy.i +8 -0
  262. data/bindings/ogre/interface/Paging/OgrePage.i +8 -0
  263. data/bindings/ogre/interface/Paging/OgrePageConnection.i +8 -0
  264. data/bindings/ogre/interface/Paging/OgrePageContent.i +8 -0
  265. data/bindings/ogre/interface/Paging/OgrePageContentCollection.i +8 -0
  266. data/bindings/ogre/interface/Paging/OgrePageContentCollectionFactory.i +8 -0
  267. data/bindings/ogre/interface/Paging/OgrePageContentFactory.i +8 -0
  268. data/bindings/ogre/interface/Paging/OgrePageFileFormats.i +8 -0
  269. data/bindings/ogre/interface/Paging/OgrePageManager.i +8 -0
  270. data/bindings/ogre/interface/Paging/OgrePageStrategy.i +8 -0
  271. data/bindings/ogre/interface/Paging/OgrePagedWorld.i +8 -0
  272. data/bindings/ogre/interface/Paging/OgrePagedWorldSection.i +8 -0
  273. data/bindings/ogre/interface/Paging/OgrePaging.i +8 -0
  274. data/bindings/ogre/interface/Paging/OgrePagingPrerequisites.i +8 -0
  275. data/bindings/ogre/interface/Paging/OgreSimplePageContentCollection.i +8 -0
  276. data/bindings/ogre/interface/RTShaderSystem/OgreRTShaderSystem.i +8 -0
  277. data/bindings/ogre/interface/RTShaderSystem/OgreShaderCGProgramProcessor.i +8 -0
  278. data/bindings/ogre/interface/RTShaderSystem/OgreShaderCGProgramWriter.i +8 -0
  279. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExDualQuaternionSkinning.i +8 -0
  280. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExHardwareSkinning.i +10 -0
  281. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExHardwareSkinningTechnique.i +8 -0
  282. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExIntegratedPSSM3.i +8 -0
  283. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExLayeredBlending.i +11 -0
  284. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExLinearSkinning.i +8 -0
  285. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExNormalMapLighting.i +8 -0
  286. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExPerPixelLighting.i +8 -0
  287. data/bindings/ogre/interface/RTShaderSystem/OgreShaderExTextureAtlasSampler.i +10 -0
  288. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPColour.i +8 -0
  289. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPFog.i +8 -0
  290. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPLighting.i +8 -0
  291. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPRenderState.i +8 -0
  292. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPRenderStateBuilder.i +11 -0
  293. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPTexturing.i +8 -0
  294. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFFPTransform.i +8 -0
  295. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFunction.i +8 -0
  296. data/bindings/ogre/interface/RTShaderSystem/OgreShaderFunctionAtom.i +8 -0
  297. data/bindings/ogre/interface/RTShaderSystem/OgreShaderGLSLESProgramProcessor.i +8 -0
  298. data/bindings/ogre/interface/RTShaderSystem/OgreShaderGLSLESProgramWriter.i +11 -0
  299. data/bindings/ogre/interface/RTShaderSystem/OgreShaderGLSLProgramProcessor.i +8 -0
  300. data/bindings/ogre/interface/RTShaderSystem/OgreShaderGLSLProgramWriter.i +8 -0
  301. data/bindings/ogre/interface/RTShaderSystem/OgreShaderGenerator.i +8 -0
  302. data/bindings/ogre/interface/RTShaderSystem/OgreShaderHLSLProgramProcessor.i +8 -0
  303. data/bindings/ogre/interface/RTShaderSystem/OgreShaderHLSLProgramWriter.i +8 -0
  304. data/bindings/ogre/interface/RTShaderSystem/OgreShaderMaterialSerializerListener.i +8 -0
  305. data/bindings/ogre/interface/RTShaderSystem/OgreShaderParameter.i +8 -0
  306. data/bindings/ogre/interface/RTShaderSystem/OgreShaderPrerequisites.i +8 -0
  307. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgram.i +8 -0
  308. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgramManager.i +8 -0
  309. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgramProcessor.i +8 -0
  310. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgramSet.i +8 -0
  311. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgramWriter.i +8 -0
  312. data/bindings/ogre/interface/RTShaderSystem/OgreShaderProgramWriterManager.i +8 -0
  313. data/bindings/ogre/interface/RTShaderSystem/OgreShaderRenderState.i +8 -0
  314. data/bindings/ogre/interface/RTShaderSystem/OgreShaderScriptTranslator.i +8 -0
  315. data/bindings/ogre/interface/RTShaderSystem/OgreShaderSubRenderState.i +8 -0
  316. data/bindings/ogre/interface/Terrain/OgreTerrain.i +14 -0
  317. data/bindings/ogre/interface/Terrain/OgreTerrainGroup.i +79 -0
  318. data/bindings/ogre/interface/Terrain/OgreTerrainLayerBlendMap.i +8 -0
  319. data/bindings/ogre/interface/Terrain/OgreTerrainMaterialGenerator.i +8 -0
  320. data/bindings/ogre/interface/Terrain/OgreTerrainMaterialGeneratorA.i +8 -0
  321. data/bindings/ogre/interface/Terrain/OgreTerrainPagedWorldSection.i +8 -0
  322. data/bindings/ogre/interface/Terrain/OgreTerrainPaging.i +8 -0
  323. data/bindings/ogre/interface/Terrain/OgreTerrainPrerequisites.i +8 -0
  324. data/bindings/ogre/interface/Terrain/OgreTerrainQuadTreeNode.i +8 -0
  325. data/bindings/ogre/interface/Threading/OgreDefaultWorkQueue.i +8 -0
  326. data/bindings/ogre/interface/Threading/OgreDefaultWorkQueueStandard.i +8 -0
  327. data/bindings/ogre/interface/Threading/OgreThreadDefines.i +8 -0
  328. data/bindings/ogre/interface/Threading/OgreThreadDefinesNone.i +8 -0
  329. data/bindings/ogre/interface/Threading/OgreThreadHeaders.i +8 -0
  330. data/bindings/ogre/interface/changeFileName +6 -0
  331. data/bindings/ogre/interface/ogre.i +4 -0
  332. data/bindings/ogre/interface/ogre_all.i +353 -0
  333. data/bindings/ogre/interface/ogre_wrap.cpp +411602 -0
  334. data/bindings/ogre/interface/ogre_wrap.h +30 -0
  335. data/bindings/ogre/interface/ogre_wrap.o +0 -0
  336. data/bindings/ogrebites/interface/Makefile +19 -0
  337. data/bindings/ogrebites/interface/SdkCameraMan.i +6 -0
  338. data/bindings/ogrebites/interface/SdkTrays.i +60 -0
  339. data/bindings/ogrebites/interface/ogrebites.i +26 -0
  340. data/bindings/ogrebites/interface/ogrebites_wrap.cpp +19257 -0
  341. data/bindings/ogrebites/interface/ogrebites_wrap.h +34 -0
  342. data/bindings/ogrebites/interface/ogrebites_wrap.o +0 -0
  343. data/bindings/ois/interface/Makefile +19 -0
  344. data/bindings/ois/interface/OIS_Effect.i +8 -0
  345. data/bindings/ois/interface/OIS_Event.i +8 -0
  346. data/bindings/ois/interface/OIS_Exception.i +8 -0
  347. data/bindings/ois/interface/OIS_FactoryCreator.i +8 -0
  348. data/bindings/ois/interface/OIS_ForceFeedback.i +8 -0
  349. data/bindings/ois/interface/OIS_InputManager.i +20 -0
  350. data/bindings/ois/interface/OIS_Interface.i +8 -0
  351. data/bindings/ois/interface/OIS_JoyStick.i +8 -0
  352. data/bindings/ois/interface/OIS_Keyboard.i +15 -0
  353. data/bindings/ois/interface/OIS_Mouse.i +10 -0
  354. data/bindings/ois/interface/OIS_Object.i +22 -0
  355. data/bindings/ois/interface/OIS_Prereqs.i +20 -0
  356. data/bindings/ois/interface/ois.i +3 -0
  357. data/bindings/ois/interface/ois_all.i +23 -0
  358. data/bindings/ois/interface/ois_wrap.cpp +19311 -0
  359. data/bindings/ois/interface/ois_wrap.h +40 -0
  360. data/bindings/ois/interface/ois_wrap.o +0 -0
  361. data/bindings/procedural/interface/Makefile +19 -0
  362. data/bindings/procedural/interface/ProceduralBoxGenerator.i +12 -0
  363. data/bindings/procedural/interface/ProceduralCapsuleGenerator.i +12 -0
  364. data/bindings/procedural/interface/ProceduralConeGenerator.i +12 -0
  365. data/bindings/procedural/interface/ProceduralCylinderGenerator.i +12 -0
  366. data/bindings/procedural/interface/ProceduralExtruder.i +8 -0
  367. data/bindings/procedural/interface/ProceduralGeometryHelpers.i +15 -0
  368. data/bindings/procedural/interface/ProceduralHeader.i +8 -0
  369. data/bindings/procedural/interface/ProceduralIcoSphereGenerator.i +12 -0
  370. data/bindings/procedural/interface/ProceduralLathe.i +8 -0
  371. data/bindings/procedural/interface/ProceduralMeshGenerator.i +9 -0
  372. data/bindings/procedural/interface/ProceduralMultiShape.i +8 -0
  373. data/bindings/procedural/interface/ProceduralPath.i +8 -0
  374. data/bindings/procedural/interface/ProceduralPathGenerators.i +10 -0
  375. data/bindings/procedural/interface/ProceduralPlaneGenerator.i +12 -0
  376. data/bindings/procedural/interface/ProceduralPlatform.i +8 -0
  377. data/bindings/procedural/interface/ProceduralRoot.i +23 -0
  378. data/bindings/procedural/interface/ProceduralRoundedBoxGenerator.i +12 -0
  379. data/bindings/procedural/interface/ProceduralShape.i +8 -0
  380. data/bindings/procedural/interface/ProceduralShapeGenerators.i +10 -0
  381. data/bindings/procedural/interface/ProceduralSphereGenerator.i +11 -0
  382. data/bindings/procedural/interface/ProceduralSplines.i +8 -0
  383. data/bindings/procedural/interface/ProceduralStableHeaders.i +8 -0
  384. data/bindings/procedural/interface/ProceduralTorusGenerator.i +12 -0
  385. data/bindings/procedural/interface/ProceduralTorusKnotGenerator.i +12 -0
  386. data/bindings/procedural/interface/ProceduralTrack.i +8 -0
  387. data/bindings/procedural/interface/ProceduralTriangleBuffer.i +13 -0
  388. data/bindings/procedural/interface/ProceduralTriangulator.i +8 -0
  389. data/bindings/procedural/interface/ProceduralTubeGenerator.i +12 -0
  390. data/bindings/procedural/interface/ProceduralUtils.i +8 -0
  391. data/bindings/procedural/interface/procedural.i +41 -0
  392. data/bindings/procedural/interface/procedural_wrap.cpp +32082 -0
  393. data/bindings/procedural/interface/procedural_wrap.h +19 -0
  394. data/bindings/procedural/interface/procedural_wrap.o +0 -0
  395. data/deps/include/OGRE/ExampleApplication.h +431 -0
  396. data/deps/include/OGRE/ExampleFrameListener.h +516 -0
  397. data/deps/include/OGRE/ExampleLoadingBar.h +192 -0
  398. data/deps/include/OGRE/FileSystemLayer.h +75 -0
  399. data/deps/include/OGRE/GLX/OgreConfigDialogImp.h +75 -0
  400. data/deps/include/OGRE/GLX/OgreErrorDialogImp.h +52 -0
  401. data/deps/include/OGRE/GLX/OgreTimerImp.h +79 -0
  402. data/deps/include/OGRE/Ogre.h +133 -0
  403. data/deps/include/OGRE/OgreAlignedAllocator.h +107 -0
  404. data/deps/include/OGRE/OgreAnimable.h +335 -0
  405. data/deps/include/OGRE/OgreAnimation.h +544 -0
  406. data/deps/include/OGRE/OgreAnimationState.h +295 -0
  407. data/deps/include/OGRE/OgreAnimationTrack.h +580 -0
  408. data/deps/include/OGRE/OgreAny.h +418 -0
  409. data/deps/include/OGRE/OgreArchive.h +240 -0
  410. data/deps/include/OGRE/OgreArchiveFactory.h +70 -0
  411. data/deps/include/OGRE/OgreArchiveManager.h +139 -0
  412. data/deps/include/OGRE/OgreAtomicWrappers.h +441 -0
  413. data/deps/include/OGRE/OgreAutoParamDataSource.h +265 -0
  414. data/deps/include/OGRE/OgreAxisAlignedBox.h +841 -0
  415. data/deps/include/OGRE/OgreBillboard.h +225 -0
  416. data/deps/include/OGRE/OgreBillboardChain.h +383 -0
  417. data/deps/include/OGRE/OgreBillboardParticleRenderer.h +261 -0
  418. data/deps/include/OGRE/OgreBillboardSet.h +878 -0
  419. data/deps/include/OGRE/OgreBitwise.h +331 -0
  420. data/deps/include/OGRE/OgreBlendMode.h +266 -0
  421. data/deps/include/OGRE/OgreBone.h +154 -0
  422. data/deps/include/OGRE/OgreBorderPanelOverlayElement.h +352 -0
  423. data/deps/include/OGRE/OgreBuildSettings.h +62 -0
  424. data/deps/include/OGRE/OgreCamera.h +680 -0
  425. data/deps/include/OGRE/OgreCodec.h +178 -0
  426. data/deps/include/OGRE/OgreColourValue.h +334 -0
  427. data/deps/include/OGRE/OgreCommon.h +870 -0
  428. data/deps/include/OGRE/OgreCompositionPass.h +356 -0
  429. data/deps/include/OGRE/OgreCompositionTargetPass.h +174 -0
  430. data/deps/include/OGRE/OgreCompositionTechnique.h +188 -0
  431. data/deps/include/OGRE/OgreCompositor.h +235 -0
  432. data/deps/include/OGRE/OgreCompositorChain.h +241 -0
  433. data/deps/include/OGRE/OgreCompositorInstance.h +373 -0
  434. data/deps/include/OGRE/OgreCompositorLogic.h +68 -0
  435. data/deps/include/OGRE/OgreCompositorManager.h +291 -0
  436. data/deps/include/OGRE/OgreConfig.h +189 -0
  437. data/deps/include/OGRE/OgreConfigDialog.h +57 -0
  438. data/deps/include/OGRE/OgreConfigFile.h +110 -0
  439. data/deps/include/OGRE/OgreConfigOptionMap.h +63 -0
  440. data/deps/include/OGRE/OgreController.h +233 -0
  441. data/deps/include/OGRE/OgreControllerManager.h +294 -0
  442. data/deps/include/OGRE/OgreConvexBody.h +260 -0
  443. data/deps/include/OGRE/OgreCustomCompositionPass.h +65 -0
  444. data/deps/include/OGRE/OgreDDSCodec.h +98 -0
  445. data/deps/include/OGRE/OgreDataStream.h +664 -0
  446. data/deps/include/OGRE/OgreDefaultHardwareBufferManager.h +140 -0
  447. data/deps/include/OGRE/OgreDeflate.h +133 -0
  448. data/deps/include/OGRE/OgreDepthBuffer.h +155 -0
  449. data/deps/include/OGRE/OgreDistanceLodStrategy.h +137 -0
  450. data/deps/include/OGRE/OgreDualQuaternion.h +184 -0
  451. data/deps/include/OGRE/OgreDynLib.h +130 -0
  452. data/deps/include/OGRE/OgreDynLibManager.h +117 -0
  453. data/deps/include/OGRE/OgreEdgeListBuilder.h +269 -0
  454. data/deps/include/OGRE/OgreEntity.h +866 -0
  455. data/deps/include/OGRE/OgreErrorDialog.h +57 -0
  456. data/deps/include/OGRE/OgreException.h +351 -0
  457. data/deps/include/OGRE/OgreExternalTextureSource.h +191 -0
  458. data/deps/include/OGRE/OgreExternalTextureSourceManager.h +124 -0
  459. data/deps/include/OGRE/OgreFactoryObj.h +72 -0
  460. data/deps/include/OGRE/OgreFileSystem.h +144 -0
  461. data/deps/include/OGRE/OgreFont.h +478 -0
  462. data/deps/include/OGRE/OgreFontManager.h +102 -0
  463. data/deps/include/OGRE/OgreFrameListener.h +140 -0
  464. data/deps/include/OGRE/OgreFreeImageCodec.h +87 -0
  465. data/deps/include/OGRE/OgreFrustum.h +673 -0
  466. data/deps/include/OGRE/OgreGpuProgram.h +487 -0
  467. data/deps/include/OGRE/OgreGpuProgramManager.h +262 -0
  468. data/deps/include/OGRE/OgreGpuProgramParams.h +1840 -0
  469. data/deps/include/OGRE/OgreGpuProgramUsage.h +149 -0
  470. data/deps/include/OGRE/OgreHardwareBuffer.h +356 -0
  471. data/deps/include/OGRE/OgreHardwareBufferManager.h +539 -0
  472. data/deps/include/OGRE/OgreHardwareIndexBuffer.h +89 -0
  473. data/deps/include/OGRE/OgreHardwareOcclusionQuery.h +132 -0
  474. data/deps/include/OGRE/OgreHardwarePixelBuffer.h +208 -0
  475. data/deps/include/OGRE/OgreHardwareVertexBuffer.h +581 -0
  476. data/deps/include/OGRE/OgreHeaderPrefix.h +82 -0
  477. data/deps/include/OGRE/OgreHeaderSuffix.h +44 -0
  478. data/deps/include/OGRE/OgreHighLevelGpuProgram.h +194 -0
  479. data/deps/include/OGRE/OgreHighLevelGpuProgramManager.h +158 -0
  480. data/deps/include/OGRE/OgreImage.h +510 -0
  481. data/deps/include/OGRE/OgreImageCodec.h +89 -0
  482. data/deps/include/OGRE/OgreInstanceBatch.h +344 -0
  483. data/deps/include/OGRE/OgreInstanceBatchHW.h +110 -0
  484. data/deps/include/OGRE/OgreInstanceBatchHW_VTF.h +113 -0
  485. data/deps/include/OGRE/OgreInstanceBatchShader.h +99 -0
  486. data/deps/include/OGRE/OgreInstanceBatchVTF.h +226 -0
  487. data/deps/include/OGRE/OgreInstanceManager.h +280 -0
  488. data/deps/include/OGRE/OgreInstancedEntity.h +277 -0
  489. data/deps/include/OGRE/OgreInstancedGeometry.h +890 -0
  490. data/deps/include/OGRE/OgreIteratorRange.h +321 -0
  491. data/deps/include/OGRE/OgreIteratorWrapper.h +383 -0
  492. data/deps/include/OGRE/OgreIteratorWrappers.h +35 -0
  493. data/deps/include/OGRE/OgreKeyFrame.h +257 -0
  494. data/deps/include/OGRE/OgreLight.h +597 -0
  495. data/deps/include/OGRE/OgreLodListener.h +207 -0
  496. data/deps/include/OGRE/OgreLodStrategy.h +132 -0
  497. data/deps/include/OGRE/OgreLodStrategyManager.h +133 -0
  498. data/deps/include/OGRE/OgreLog.h +263 -0
  499. data/deps/include/OGRE/OgreLogManager.h +175 -0
  500. data/deps/include/OGRE/OgreManualObject.h +572 -0
  501. data/deps/include/OGRE/OgreMaterial.h +741 -0
  502. data/deps/include/OGRE/OgreMaterialManager.h +304 -0
  503. data/deps/include/OGRE/OgreMaterialSerializer.h +447 -0
  504. data/deps/include/OGRE/OgreMath.h +743 -0
  505. data/deps/include/OGRE/OgreMatrix3.h +286 -0
  506. data/deps/include/OGRE/OgreMatrix4.h +660 -0
  507. data/deps/include/OGRE/OgreMemoryAllocatedObject.h +129 -0
  508. data/deps/include/OGRE/OgreMemoryAllocatorConfig.h +493 -0
  509. data/deps/include/OGRE/OgreMemoryNedAlloc.h +140 -0
  510. data/deps/include/OGRE/OgreMemoryNedPooling.h +143 -0
  511. data/deps/include/OGRE/OgreMemorySTLAllocator.h +225 -0
  512. data/deps/include/OGRE/OgreMemoryStdAlloc.h +155 -0
  513. data/deps/include/OGRE/OgreMemoryTracker.h +197 -0
  514. data/deps/include/OGRE/OgreMesh.h +922 -0
  515. data/deps/include/OGRE/OgreMeshFileFormat.h +295 -0
  516. data/deps/include/OGRE/OgreMeshManager.h +497 -0
  517. data/deps/include/OGRE/OgreMeshSerializer.h +206 -0
  518. data/deps/include/OGRE/OgreMeshSerializerImpl.h +274 -0
  519. data/deps/include/OGRE/OgreMovableObject.h +641 -0
  520. data/deps/include/OGRE/OgreMovablePlane.h +97 -0
  521. data/deps/include/OGRE/OgreNode.h +774 -0
  522. data/deps/include/OGRE/OgreNumerics.h +66 -0
  523. data/deps/include/OGRE/OgreOptimisedUtil.h +232 -0
  524. data/deps/include/OGRE/OgreOverlay.h +280 -0
  525. data/deps/include/OGRE/OgreOverlayContainer.h +152 -0
  526. data/deps/include/OGRE/OgreOverlayElement.h +501 -0
  527. data/deps/include/OGRE/OgreOverlayElementCommands.h +122 -0
  528. data/deps/include/OGRE/OgreOverlayElementFactory.h +116 -0
  529. data/deps/include/OGRE/OgreOverlayManager.h +256 -0
  530. data/deps/include/OGRE/OgrePanelOverlayElement.h +161 -0
  531. data/deps/include/OGRE/OgreParticle.h +154 -0
  532. data/deps/include/OGRE/OgreParticleAffector.h +127 -0
  533. data/deps/include/OGRE/OgreParticleAffectorFactory.h +81 -0
  534. data/deps/include/OGRE/OgreParticleEmitter.h +524 -0
  535. data/deps/include/OGRE/OgreParticleEmitterCommands.h +215 -0
  536. data/deps/include/OGRE/OgreParticleEmitterFactory.h +84 -0
  537. data/deps/include/OGRE/OgreParticleIterator.h +68 -0
  538. data/deps/include/OGRE/OgreParticleScriptCompiler.h +92 -0
  539. data/deps/include/OGRE/OgreParticleSystem.h +911 -0
  540. data/deps/include/OGRE/OgreParticleSystemManager.h +406 -0
  541. data/deps/include/OGRE/OgreParticleSystemRenderer.h +139 -0
  542. data/deps/include/OGRE/OgrePass.h +1775 -0
  543. data/deps/include/OGRE/OgrePatchMesh.h +164 -0
  544. data/deps/include/OGRE/OgrePatchSurface.h +240 -0
  545. data/deps/include/OGRE/OgrePixelCountLodStrategy.h +113 -0
  546. data/deps/include/OGRE/OgrePixelFormat.h +513 -0
  547. data/deps/include/OGRE/OgrePlane.h +166 -0
  548. data/deps/include/OGRE/OgrePlaneBoundedVolume.h +135 -0
  549. data/deps/include/OGRE/OgrePlatform.h +311 -0
  550. data/deps/include/OGRE/OgrePlatformInformation.h +202 -0
  551. data/deps/include/OGRE/OgrePlugin.h +139 -0
  552. data/deps/include/OGRE/OgrePolygon.h +145 -0
  553. data/deps/include/OGRE/OgrePose.h +141 -0
  554. data/deps/include/OGRE/OgrePredefinedControllers.h +292 -0
  555. data/deps/include/OGRE/OgrePrefabFactory.h +73 -0
  556. data/deps/include/OGRE/OgrePrerequisites.h +563 -0
  557. data/deps/include/OGRE/OgreProfiler.h +506 -0
  558. data/deps/include/OGRE/OgreProgressiveMesh.h +416 -0
  559. data/deps/include/OGRE/OgreQuaternion.h +330 -0
  560. data/deps/include/OGRE/OgreRadixSort.h +330 -0
  561. data/deps/include/OGRE/OgreRay.h +122 -0
  562. data/deps/include/OGRE/OgreRectangle.h +77 -0
  563. data/deps/include/OGRE/OgreRectangle2D.h +101 -0
  564. data/deps/include/OGRE/OgreRenderObjectListener.h +64 -0
  565. data/deps/include/OGRE/OgreRenderOperation.h +100 -0
  566. data/deps/include/OGRE/OgreRenderQueue.h +516 -0
  567. data/deps/include/OGRE/OgreRenderQueueInvocation.h +225 -0
  568. data/deps/include/OGRE/OgreRenderQueueListener.h +106 -0
  569. data/deps/include/OGRE/OgreRenderQueueSortingGrouping.h +733 -0
  570. data/deps/include/OGRE/OgreRenderSystem.h +1572 -0
  571. data/deps/include/OGRE/OgreRenderSystemCapabilities.h +727 -0
  572. data/deps/include/OGRE/OgreRenderSystemCapabilitiesManager.h +129 -0
  573. data/deps/include/OGRE/OgreRenderSystemCapabilitiesSerializer.h +248 -0
  574. data/deps/include/OGRE/OgreRenderTarget.h +534 -0
  575. data/deps/include/OGRE/OgreRenderTargetListener.h +146 -0
  576. data/deps/include/OGRE/OgreRenderTexture.h +140 -0
  577. data/deps/include/OGRE/OgreRenderToVertexBuffer.h +151 -0
  578. data/deps/include/OGRE/OgreRenderWindow.h +225 -0
  579. data/deps/include/OGRE/OgreRenderable.h +428 -0
  580. data/deps/include/OGRE/OgreResource.h +536 -0
  581. data/deps/include/OGRE/OgreResourceBackgroundQueue.h +359 -0
  582. data/deps/include/OGRE/OgreResourceGroupManager.h +1092 -0
  583. data/deps/include/OGRE/OgreResourceManager.h +538 -0
  584. data/deps/include/OGRE/OgreRibbonTrail.h +245 -0
  585. data/deps/include/OGRE/OgreRoot.h +1075 -0
  586. data/deps/include/OGRE/OgreRotationalSpline.h +136 -0
  587. data/deps/include/OGRE/OgreSceneManager.h +3670 -0
  588. data/deps/include/OGRE/OgreSceneManagerEnumerator.h +233 -0
  589. data/deps/include/OGRE/OgreSceneNode.h +472 -0
  590. data/deps/include/OGRE/OgreSceneQuery.h +564 -0
  591. data/deps/include/OGRE/OgreScriptCompiler.h +851 -0
  592. data/deps/include/OGRE/OgreScriptLexer.h +96 -0
  593. data/deps/include/OGRE/OgreScriptLoader.h +96 -0
  594. data/deps/include/OGRE/OgreScriptParser.h +63 -0
  595. data/deps/include/OGRE/OgreScriptTranslator.h +286 -0
  596. data/deps/include/OGRE/OgreSearchOps.h +74 -0
  597. data/deps/include/OGRE/OgreSerializer.h +120 -0
  598. data/deps/include/OGRE/OgreShadowCameraSetup.h +107 -0
  599. data/deps/include/OGRE/OgreShadowCameraSetupFocused.h +289 -0
  600. data/deps/include/OGRE/OgreShadowCameraSetupLiSPSM.h +254 -0
  601. data/deps/include/OGRE/OgreShadowCameraSetupPSSM.h +126 -0
  602. data/deps/include/OGRE/OgreShadowCameraSetupPlaneOptimal.h +88 -0
  603. data/deps/include/OGRE/OgreShadowCaster.h +225 -0
  604. data/deps/include/OGRE/OgreShadowTextureManager.h +156 -0
  605. data/deps/include/OGRE/OgreShadowVolumeExtrudeProgram.h +286 -0
  606. data/deps/include/OGRE/OgreSharedPtr.h +278 -0
  607. data/deps/include/OGRE/OgreSimpleRenderable.h +111 -0
  608. data/deps/include/OGRE/OgreSimpleSpline.h +137 -0
  609. data/deps/include/OGRE/OgreSingleton.h +104 -0
  610. data/deps/include/OGRE/OgreSkeleton.h +539 -0
  611. data/deps/include/OGRE/OgreSkeletonFileFormat.h +117 -0
  612. data/deps/include/OGRE/OgreSkeletonInstance.h +163 -0
  613. data/deps/include/OGRE/OgreSkeletonManager.h +105 -0
  614. data/deps/include/OGRE/OgreSkeletonSerializer.h +151 -0
  615. data/deps/include/OGRE/OgreSmallVector.h +814 -0
  616. data/deps/include/OGRE/OgreSphere.h +145 -0
  617. data/deps/include/OGRE/OgreSpotShadowFadePng.h +647 -0
  618. data/deps/include/OGRE/OgreStableHeaders.h +82 -0
  619. data/deps/include/OGRE/OgreStaticFaceGroup.h +141 -0
  620. data/deps/include/OGRE/OgreStaticGeometry.h +781 -0
  621. data/deps/include/OGRE/OgreStaticPluginLoader.h +205 -0
  622. data/deps/include/OGRE/OgreStdHeaders.h +128 -0
  623. data/deps/include/OGRE/OgreStreamSerialiser.h +386 -0
  624. data/deps/include/OGRE/OgreString.h +223 -0
  625. data/deps/include/OGRE/OgreStringConverter.h +270 -0
  626. data/deps/include/OGRE/OgreStringInterface.h +335 -0
  627. data/deps/include/OGRE/OgreStringVector.h +53 -0
  628. data/deps/include/OGRE/OgreSubEntity.h +288 -0
  629. data/deps/include/OGRE/OgreSubMesh.h +294 -0
  630. data/deps/include/OGRE/OgreTagPoint.h +123 -0
  631. data/deps/include/OGRE/OgreTangentSpaceCalc.h +269 -0
  632. data/deps/include/OGRE/OgreTechnique.h +714 -0
  633. data/deps/include/OGRE/OgreTextAreaOverlayElement.h +258 -0
  634. data/deps/include/OGRE/OgreTexture.h +496 -0
  635. data/deps/include/OGRE/OgreTextureManager.h +508 -0
  636. data/deps/include/OGRE/OgreTextureUnitState.h +1265 -0
  637. data/deps/include/OGRE/OgreTimer.h +49 -0
  638. data/deps/include/OGRE/OgreUTFString.h +1115 -0
  639. data/deps/include/OGRE/OgreUnifiedHighLevelGpuProgram.h +177 -0
  640. data/deps/include/OGRE/OgreUserObjectBindings.h +140 -0
  641. data/deps/include/OGRE/OgreVector2.h +609 -0
  642. data/deps/include/OGRE/OgreVector3.h +818 -0
  643. data/deps/include/OGRE/OgreVector4.h +414 -0
  644. data/deps/include/OGRE/OgreVertexBoneAssignment.h +63 -0
  645. data/deps/include/OGRE/OgreVertexIndexData.h +323 -0
  646. data/deps/include/OGRE/OgreViewport.h +433 -0
  647. data/deps/include/OGRE/OgreWindowEventUtilities.h +186 -0
  648. data/deps/include/OGRE/OgreWireBoundingBox.h +87 -0
  649. data/deps/include/OGRE/OgreWorkQueue.h +556 -0
  650. data/deps/include/OGRE/OgreZip.h +196 -0
  651. data/deps/include/OGRE/Paging/OgreGrid2DPageStrategy.h +250 -0
  652. data/deps/include/OGRE/Paging/OgreGrid3DPageStrategy.h +222 -0
  653. data/deps/include/OGRE/Paging/OgrePage.h +205 -0
  654. data/deps/include/OGRE/Paging/OgrePageConnection.h +50 -0
  655. data/deps/include/OGRE/Paging/OgrePageContent.h +90 -0
  656. data/deps/include/OGRE/Paging/OgrePageContentCollection.h +103 -0
  657. data/deps/include/OGRE/Paging/OgrePageContentCollectionFactory.h +62 -0
  658. data/deps/include/OGRE/Paging/OgrePageContentFactory.h +67 -0
  659. data/deps/include/OGRE/Paging/OgrePageFileFormats.h +223 -0
  660. data/deps/include/OGRE/Paging/OgrePageManager.h +481 -0
  661. data/deps/include/OGRE/Paging/OgrePageStrategy.h +138 -0
  662. data/deps/include/OGRE/Paging/OgrePagedWorld.h +252 -0
  663. data/deps/include/OGRE/Paging/OgrePagedWorldSection.h +316 -0
  664. data/deps/include/OGRE/Paging/OgrePaging.h +45 -0
  665. data/deps/include/OGRE/Paging/OgrePagingPrerequisites.h +84 -0
  666. data/deps/include/OGRE/Paging/OgreSimplePageContentCollection.h +137 -0
  667. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspLevel.h +278 -0
  668. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspNode.h +212 -0
  669. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspPrerequisites.h +65 -0
  670. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspResourceManager.h +110 -0
  671. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspSceneManager.h +280 -0
  672. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspSceneManagerPlugin.h +67 -0
  673. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreBspSceneNode.h +79 -0
  674. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreQuake3Level.h +167 -0
  675. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreQuake3Shader.h +119 -0
  676. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreQuake3ShaderManager.h +125 -0
  677. data/deps/include/OGRE/Plugins/BSPSceneManager/OgreQuake3Types.h +250 -0
  678. data/deps/include/OGRE/Plugins/CgProgramManager/OgreCgFxScriptLoader.h +1544 -0
  679. data/deps/include/OGRE/Plugins/CgProgramManager/OgreCgPlugin.h +65 -0
  680. data/deps/include/OGRE/Plugins/CgProgramManager/OgreCgPrerequisites.h +62 -0
  681. data/deps/include/OGRE/Plugins/CgProgramManager/OgreCgProgram.h +149 -0
  682. data/deps/include/OGRE/Plugins/CgProgramManager/OgreCgProgramFactory.h +55 -0
  683. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctree.h +164 -0
  684. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreeCamera.h +89 -0
  685. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreeNode.h +148 -0
  686. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreePlugin.h +64 -0
  687. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreePrerequisites.h +59 -0
  688. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreeSceneManager.h +253 -0
  689. data/deps/include/OGRE/Plugins/OctreeSceneManager/OgreOctreeSceneQuery.h +102 -0
  690. data/deps/include/OGRE/Plugins/OctreeZone/OgreOctreeZone.h +264 -0
  691. data/deps/include/OGRE/Plugins/OctreeZone/OgreOctreeZoneOctree.h +203 -0
  692. data/deps/include/OGRE/Plugins/OctreeZone/OgreOctreeZonePlugin.h +72 -0
  693. data/deps/include/OGRE/Plugins/OctreeZone/OgreOctreeZonePrerequisites.h +67 -0
  694. data/deps/include/OGRE/Plugins/PCZSceneManager/OgreAntiPortal.h +75 -0
  695. data/deps/include/OGRE/Plugins/PCZSceneManager/OgreCapsule.h +68 -0
  696. data/deps/include/OGRE/Plugins/PCZSceneManager/OgreDefaultZone.h +154 -0
  697. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCPlane.h +94 -0
  698. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZCamera.h +113 -0
  699. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZFrustum.h +136 -0
  700. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZLight.h +137 -0
  701. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZPlugin.h +77 -0
  702. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZPrerequisites.h +63 -0
  703. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZSceneManager.h +410 -0
  704. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZSceneNode.h +135 -0
  705. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZSceneQuery.h +134 -0
  706. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZone.h +316 -0
  707. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePCZoneFactory.h +126 -0
  708. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePortal.h +106 -0
  709. data/deps/include/OGRE/Plugins/PCZSceneManager/OgrePortalBase.h +303 -0
  710. data/deps/include/OGRE/Plugins/PCZSceneManager/OgreSegment.h +81 -0
  711. data/deps/include/OGRE/Plugins/ParticleFX/OgreAreaEmitter.h +139 -0
  712. data/deps/include/OGRE/Plugins/ParticleFX/OgreBoxEmitter.h +60 -0
  713. data/deps/include/OGRE/Plugins/ParticleFX/OgreBoxEmitterFactory.h +66 -0
  714. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourFaderAffector.h +167 -0
  715. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourFaderAffector2.h +226 -0
  716. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourFaderAffectorFactory.h +56 -0
  717. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourFaderAffectorFactory2.h +56 -0
  718. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourImageAffector.h +80 -0
  719. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourImageAffectorFactory.h +56 -0
  720. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourInterpolatorAffector.h +97 -0
  721. data/deps/include/OGRE/Plugins/ParticleFX/OgreColourInterpolatorAffectorFactory.h +56 -0
  722. data/deps/include/OGRE/Plugins/ParticleFX/OgreCylinderEmitter.h +68 -0
  723. data/deps/include/OGRE/Plugins/ParticleFX/OgreCylinderEmitterFactory.h +67 -0
  724. data/deps/include/OGRE/Plugins/ParticleFX/OgreDeflectorPlaneAffector.h +114 -0
  725. data/deps/include/OGRE/Plugins/ParticleFX/OgreDeflectorPlaneAffectorFactory.h +56 -0
  726. data/deps/include/OGRE/Plugins/ParticleFX/OgreDirectionRandomiserAffector.h +109 -0
  727. data/deps/include/OGRE/Plugins/ParticleFX/OgreDirectionRandomiserAffectorFactory.h +54 -0
  728. data/deps/include/OGRE/Plugins/ParticleFX/OgreEllipsoidEmitter.h +64 -0
  729. data/deps/include/OGRE/Plugins/ParticleFX/OgreEllipsoidEmitterFactory.h +67 -0
  730. data/deps/include/OGRE/Plugins/ParticleFX/OgreHollowEllipsoidEmitter.h +126 -0
  731. data/deps/include/OGRE/Plugins/ParticleFX/OgreHollowEllipsoidEmitterFactory.h +67 -0
  732. data/deps/include/OGRE/Plugins/ParticleFX/OgreLinearForceAffector.h +120 -0
  733. data/deps/include/OGRE/Plugins/ParticleFX/OgreLinearForceAffectorFactory.h +56 -0
  734. data/deps/include/OGRE/Plugins/ParticleFX/OgreParticleFXPlugin.h +66 -0
  735. data/deps/include/OGRE/Plugins/ParticleFX/OgreParticleFXPrerequisites.h +68 -0
  736. data/deps/include/OGRE/Plugins/ParticleFX/OgrePointEmitter.h +62 -0
  737. data/deps/include/OGRE/Plugins/ParticleFX/OgrePointEmitterFactory.h +66 -0
  738. data/deps/include/OGRE/Plugins/ParticleFX/OgreRingEmitter.h +111 -0
  739. data/deps/include/OGRE/Plugins/ParticleFX/OgreRingEmitterFactory.h +67 -0
  740. data/deps/include/OGRE/Plugins/ParticleFX/OgreRotationAffector.h +131 -0
  741. data/deps/include/OGRE/Plugins/ParticleFX/OgreRotationAffectorFactory.h +56 -0
  742. data/deps/include/OGRE/Plugins/ParticleFX/OgreScaleAffector.h +84 -0
  743. data/deps/include/OGRE/Plugins/ParticleFX/OgreScaleAffectorFactory.h +56 -0
  744. data/deps/include/OGRE/RTShaderSystem/OgreRTShaderSystem.h +76 -0
  745. data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramProcessor.h +85 -0
  746. data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramWriter.h +145 -0
  747. data/deps/include/OGRE/RTShaderSystem/OgreShaderExDualQuaternionSkinning.h +127 -0
  748. data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinning.h +357 -0
  749. data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinningTechnique.h +156 -0
  750. data/deps/include/OGRE/RTShaderSystem/OgreShaderExIntegratedPSSM3.h +213 -0
  751. data/deps/include/OGRE/RTShaderSystem/OgreShaderExLayeredBlending.h +257 -0
  752. data/deps/include/OGRE/RTShaderSystem/OgreShaderExLinearSkinning.h +97 -0
  753. data/deps/include/OGRE/RTShaderSystem/OgreShaderExNormalMapLighting.h +391 -0
  754. data/deps/include/OGRE/RTShaderSystem/OgreShaderExPerPixelLighting.h +276 -0
  755. data/deps/include/OGRE/RTShaderSystem/OgreShaderExTextureAtlasSampler.h +367 -0
  756. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPColour.h +180 -0
  757. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPFog.h +200 -0
  758. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPLighting.h +241 -0
  759. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPRenderState.h +134 -0
  760. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPRenderStateBuilder.h +146 -0
  761. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTexturing.h +272 -0
  762. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTransform.h +121 -0
  763. data/deps/include/OGRE/RTShaderSystem/OgreShaderFunction.h +227 -0
  764. data/deps/include/OGRE/RTShaderSystem/OgreShaderFunctionAtom.h +250 -0
  765. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramProcessor.h +92 -0
  766. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramWriter.h +193 -0
  767. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramProcessor.h +97 -0
  768. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramWriter.h +146 -0
  769. data/deps/include/OGRE/RTShaderSystem/OgreShaderGenerator.h +936 -0
  770. data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramProcessor.h +84 -0
  771. data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramWriter.h +145 -0
  772. data/deps/include/OGRE/RTShaderSystem/OgreShaderMaterialSerializerListener.h +109 -0
  773. data/deps/include/OGRE/RTShaderSystem/OgreShaderParameter.h +652 -0
  774. data/deps/include/OGRE/RTShaderSystem/OgreShaderPrerequisites.h +120 -0
  775. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgram.h +218 -0
  776. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramManager.h +236 -0
  777. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramProcessor.h +266 -0
  778. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramSet.h +98 -0
  779. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramWriter.h +110 -0
  780. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramWriterManager.h +130 -0
  781. data/deps/include/OGRE/RTShaderSystem/OgreShaderRenderState.h +219 -0
  782. data/deps/include/OGRE/RTShaderSystem/OgreShaderScriptTranslator.h +144 -0
  783. data/deps/include/OGRE/RTShaderSystem/OgreShaderSubRenderState.h +321 -0
  784. data/deps/include/OGRE/RenderSystems/GL/GL/gl.h +1918 -0
  785. data/deps/include/OGRE/RenderSystems/GL/GL/glew.h +16131 -0
  786. data/deps/include/OGRE/RenderSystems/GL/GL/glext.h +6030 -0
  787. data/deps/include/OGRE/RenderSystems/GL/GL/glxew.h +1587 -0
  788. data/deps/include/OGRE/RenderSystems/GL/GL/glxext.h +681 -0
  789. data/deps/include/OGRE/RenderSystems/GL/GL/glxtokens.h +231 -0
  790. data/deps/include/OGRE/RenderSystems/GL/GL/wglew.h +1363 -0
  791. data/deps/include/OGRE/RenderSystems/GL/GL/wglext.h +608 -0
  792. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLUtil.h +43 -0
  793. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLXContext.h +62 -0
  794. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLXGLSupport.h +201 -0
  795. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLXRenderTexture.h +52 -0
  796. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLXUtils.h +102 -0
  797. data/deps/include/OGRE/RenderSystems/GL/GLX/OgreGLXWindow.h +126 -0
  798. data/deps/include/OGRE/RenderSystems/GL/OgreGLATIFSInit.h +41 -0
  799. data/deps/include/OGRE/RenderSystems/GL/OgreGLContext.h +75 -0
  800. data/deps/include/OGRE/RenderSystems/GL/OgreGLDefaultHardwareBufferManager.h +135 -0
  801. data/deps/include/OGRE/RenderSystems/GL/OgreGLDepthBuffer.h +71 -0
  802. data/deps/include/OGRE/RenderSystems/GL/OgreGLFBOMultiRenderTarget.h +59 -0
  803. data/deps/include/OGRE/RenderSystems/GL/OgreGLFBORenderTexture.h +200 -0
  804. data/deps/include/OGRE/RenderSystems/GL/OgreGLFrameBufferObject.h +105 -0
  805. data/deps/include/OGRE/RenderSystems/GL/OgreGLGpuNvparseProgram.h +69 -0
  806. data/deps/include/OGRE/RenderSystems/GL/OgreGLGpuProgram.h +120 -0
  807. data/deps/include/OGRE/RenderSystems/GL/OgreGLGpuProgramManager.h +68 -0
  808. data/deps/include/OGRE/RenderSystems/GL/OgreGLHardwareBufferManager.h +141 -0
  809. data/deps/include/OGRE/RenderSystems/GL/OgreGLHardwareIndexBuffer.h +70 -0
  810. data/deps/include/OGRE/RenderSystems/GL/OgreGLHardwareOcclusionQuery.h +108 -0
  811. data/deps/include/OGRE/RenderSystems/GL/OgreGLHardwarePixelBuffer.h +138 -0
  812. data/deps/include/OGRE/RenderSystems/GL/OgreGLHardwareVertexBuffer.h +69 -0
  813. data/deps/include/OGRE/RenderSystems/GL/OgreGLPBRenderTexture.h +106 -0
  814. data/deps/include/OGRE/RenderSystems/GL/OgreGLPBuffer.h +62 -0
  815. data/deps/include/OGRE/RenderSystems/GL/OgreGLPixelFormat.h +100 -0
  816. data/deps/include/OGRE/RenderSystems/GL/OgreGLPlugin.h +63 -0
  817. data/deps/include/OGRE/RenderSystems/GL/OgreGLPrerequisites.h +105 -0
  818. data/deps/include/OGRE/RenderSystems/GL/OgreGLRenderSystem.h +521 -0
  819. data/deps/include/OGRE/RenderSystems/GL/OgreGLRenderTexture.h +141 -0
  820. data/deps/include/OGRE/RenderSystems/GL/OgreGLRenderToVertexBuffer.h +72 -0
  821. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLExtSupport.h +66 -0
  822. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLGpuProgram.h +104 -0
  823. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLLinkProgram.h +149 -0
  824. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLLinkProgramManager.h +144 -0
  825. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLPreprocessor.h +524 -0
  826. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLProgram.h +200 -0
  827. data/deps/include/OGRE/RenderSystems/GL/OgreGLSLProgramFactory.h +60 -0
  828. data/deps/include/OGRE/RenderSystems/GL/OgreGLSupport.h +137 -0
  829. data/deps/include/OGRE/RenderSystems/GL/OgreGLTexture.h +191 -0
  830. data/deps/include/OGRE/RenderSystems/GL/OgreGLTextureManager.h +67 -0
  831. data/deps/include/OGRE/Sample.h +325 -0
  832. data/deps/include/OGRE/SampleContext.h +864 -0
  833. data/deps/include/OGRE/SamplePlugin.h +99 -0
  834. data/deps/include/OGRE/SdkCameraMan.h +367 -0
  835. data/deps/include/OGRE/SdkSample.h +552 -0
  836. data/deps/include/OGRE/SdkTrays.h +3168 -0
  837. data/deps/include/OGRE/Terrain/OgreTerrain.h +2076 -0
  838. data/deps/include/OGRE/Terrain/OgreTerrainGroup.h +545 -0
  839. data/deps/include/OGRE/Terrain/OgreTerrainLayerBlendMap.h +199 -0
  840. data/deps/include/OGRE/Terrain/OgreTerrainMaterialGenerator.h +404 -0
  841. data/deps/include/OGRE/Terrain/OgreTerrainMaterialGeneratorA.h +279 -0
  842. data/deps/include/OGRE/Terrain/OgreTerrainPagedWorldSection.h +165 -0
  843. data/deps/include/OGRE/Terrain/OgreTerrainPaging.h +135 -0
  844. data/deps/include/OGRE/Terrain/OgreTerrainPrerequisites.h +68 -0
  845. data/deps/include/OGRE/Terrain/OgreTerrainQuadTreeNode.h +413 -0
  846. data/deps/include/OGRE/Threading/OgreDefaultWorkQueue.h +42 -0
  847. data/deps/include/OGRE/Threading/OgreDefaultWorkQueueStandard.h +82 -0
  848. data/deps/include/OGRE/Threading/OgreThreadDefines.h +41 -0
  849. data/deps/include/OGRE/Threading/OgreThreadDefinesNone.h +59 -0
  850. data/deps/include/OGRE/Threading/OgreThreadHeaders.h +39 -0
  851. data/deps/include/OGRE/asm_math.h +376 -0
  852. data/deps/include/OIS/OIS.h +41 -0
  853. data/deps/include/OIS/OISConfig.h +75 -0
  854. data/deps/include/OIS/OISEffect.h +278 -0
  855. data/deps/include/OIS/OISEvents.h +43 -0
  856. data/deps/include/OIS/OISException.h +78 -0
  857. data/deps/include/OIS/OISFactoryCreator.h +81 -0
  858. data/deps/include/OIS/OISForceFeedback.h +120 -0
  859. data/deps/include/OIS/OISInputManager.h +205 -0
  860. data/deps/include/OIS/OISInterface.h +47 -0
  861. data/deps/include/OIS/OISJoyStick.h +228 -0
  862. data/deps/include/OIS/OISKeyboard.h +312 -0
  863. data/deps/include/OIS/OISMouse.h +138 -0
  864. data/deps/include/OIS/OISMultiTouch.h +169 -0
  865. data/deps/include/OIS/OISObject.h +95 -0
  866. data/deps/include/OIS/OISPrereqs.h +226 -0
  867. data/deps/include/OgreProcedural/Procedural.h +54 -0
  868. data/deps/include/OgreProcedural/ProceduralBoxGenerator.h +110 -0
  869. data/deps/include/OgreProcedural/ProceduralCapsuleGenerator.h +103 -0
  870. data/deps/include/OgreProcedural/ProceduralConeGenerator.h +90 -0
  871. data/deps/include/OgreProcedural/ProceduralCylinderGenerator.h +99 -0
  872. data/deps/include/OgreProcedural/ProceduralExtruder.h +131 -0
  873. data/deps/include/OgreProcedural/ProceduralGeometryHelpers.h +171 -0
  874. data/deps/include/OgreProcedural/ProceduralIcoSphereGenerator.h +76 -0
  875. data/deps/include/OgreProcedural/ProceduralLathe.h +129 -0
  876. data/deps/include/OgreProcedural/ProceduralMeshGenerator.h +286 -0
  877. data/deps/include/OgreProcedural/ProceduralMultiShape.h +126 -0
  878. data/deps/include/OgreProcedural/ProceduralPath.h +322 -0
  879. data/deps/include/OgreProcedural/ProceduralPathGenerators.h +281 -0
  880. data/deps/include/OgreProcedural/ProceduralPlaneGenerator.h +93 -0
  881. data/deps/include/OgreProcedural/ProceduralPlatform.h +54 -0
  882. data/deps/include/OgreProcedural/ProceduralRoot.h +65 -0
  883. data/deps/include/OgreProcedural/ProceduralRoundedBoxGenerator.h +118 -0
  884. data/deps/include/OgreProcedural/ProceduralShape.h +532 -0
  885. data/deps/include/OgreProcedural/ProceduralShapeGenerators.h +362 -0
  886. data/deps/include/OgreProcedural/ProceduralSphereGenerator.h +80 -0
  887. data/deps/include/OgreProcedural/ProceduralSplines.h +168 -0
  888. data/deps/include/OgreProcedural/ProceduralStableHeaders.h +28 -0
  889. data/deps/include/OgreProcedural/ProceduralTorusGenerator.h +88 -0
  890. data/deps/include/OgreProcedural/ProceduralTorusKnotGenerator.h +106 -0
  891. data/deps/include/OgreProcedural/ProceduralTrack.h +122 -0
  892. data/deps/include/OgreProcedural/ProceduralTriangleBuffer.h +328 -0
  893. data/deps/include/OgreProcedural/ProceduralTriangulator.h +173 -0
  894. data/deps/include/OgreProcedural/ProceduralTubeGenerator.h +96 -0
  895. data/deps/include/OgreProcedural/ProceduralUtils.h +185 -0
  896. data/deps/lib/OGRE/Plugin_BSPSceneManager.so +0 -0
  897. data/deps/lib/OGRE/Plugin_BSPSceneManager.so.1.8.0 +0 -0
  898. data/deps/lib/OGRE/Plugin_CgProgramManager.so +0 -0
  899. data/deps/lib/OGRE/Plugin_CgProgramManager.so.1.8.0 +0 -0
  900. data/deps/lib/OGRE/Plugin_OctreeSceneManager.so +0 -0
  901. data/deps/lib/OGRE/Plugin_OctreeSceneManager.so.1.8.0 +0 -0
  902. data/deps/lib/OGRE/Plugin_OctreeZone.so +0 -0
  903. data/deps/lib/OGRE/Plugin_OctreeZone.so.1.8.0 +0 -0
  904. data/deps/lib/OGRE/Plugin_PCZSceneManager.so +0 -0
  905. data/deps/lib/OGRE/Plugin_PCZSceneManager.so.1.8.0 +0 -0
  906. data/deps/lib/OGRE/Plugin_ParticleFX.so +0 -0
  907. data/deps/lib/OGRE/Plugin_ParticleFX.so.1.8.0 +0 -0
  908. data/deps/lib/OGRE/RenderSystem_GL.so +0 -0
  909. data/deps/lib/OGRE/RenderSystem_GL.so.1.8.0 +0 -0
  910. data/deps/lib/libOIS-1.3.0.so +0 -0
  911. data/deps/lib/libOIS.so +0 -0
  912. data/deps/lib/libOgreMain.so +0 -0
  913. data/deps/lib/libOgreMain.so.1.8.0 +0 -0
  914. data/deps/lib/libOgrePaging.so +0 -0
  915. data/deps/lib/libOgrePaging.so.1.8.0 +0 -0
  916. data/deps/lib/libOgreProcedural.so +0 -0
  917. data/deps/lib/libOgreRTShaderSystem.so +0 -0
  918. data/deps/lib/libOgreRTShaderSystem.so.1.8.0 +0 -0
  919. data/deps/lib/libOgreTerrain.so +0 -0
  920. data/deps/lib/libOgreTerrain.so.1.8.0 +0 -0
  921. data/deps/share/OGRE/media/DeferredShadingMedia/COPYING +18 -0
  922. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/Ambient_ps.cg +68 -0
  923. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/LightMaterial_ps.cg +187 -0
  924. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/LightMaterial_vs.cg +53 -0
  925. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/ShowColour_ps.cg +41 -0
  926. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/ShowDS_ps.cg +40 -0
  927. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/ShowNormal_ps.cg +39 -0
  928. data/deps/share/OGRE/media/DeferredShadingMedia/DeferredShading/post/vs.cg +54 -0
  929. data/deps/share/OGRE/media/DeferredShadingMedia/ShadowCaster.cg +25 -0
  930. data/deps/share/OGRE/media/DeferredShadingMedia/ShadowCaster.material +15 -0
  931. data/deps/share/OGRE/media/DeferredShadingMedia/ShadowCaster.program +24 -0
  932. data/deps/share/OGRE/media/DeferredShadingMedia/deferred.compositor +147 -0
  933. data/deps/share/OGRE/media/DeferredShadingMedia/deferred_post.material +148 -0
  934. data/deps/share/OGRE/media/DeferredShadingMedia/deferred_post.program +85 -0
  935. data/deps/share/OGRE/media/DeferredShadingMedia/deferred_post_minilight.material +71 -0
  936. data/deps/share/OGRE/media/DeferredShadingMedia/deferreddemo.material +73 -0
  937. data/deps/share/OGRE/media/DeferredShadingMedia/ssao.cg +178 -0
  938. data/deps/share/OGRE/media/DeferredShadingMedia/ssao.compositor +93 -0
  939. data/deps/share/OGRE/media/DeferredShadingMedia/ssao.material +148 -0
  940. data/deps/share/OGRE/media/PCZAppMedia/Carpet_Diamond_Olive.jpg +0 -0
  941. data/deps/share/OGRE/media/PCZAppMedia/Metal_Brass_Ceiling.jpg +0 -0
  942. data/deps/share/OGRE/media/PCZAppMedia/Metal_Embossed.jpg +0 -0
  943. data/deps/share/OGRE/media/PCZAppMedia/Metal_Rusted.jpg +0 -0
  944. data/deps/share/OGRE/media/PCZAppMedia/Metal_Rusted1.jpg +0 -0
  945. data/deps/share/OGRE/media/PCZAppMedia/Metal_Steel_Textured.jpg +0 -0
  946. data/deps/share/OGRE/media/PCZAppMedia/Metal_Steel_Textured_White.jpg +0 -0
  947. data/deps/share/OGRE/media/PCZAppMedia/ROOM.material +149 -0
  948. data/deps/share/OGRE/media/PCZAppMedia/ROOM_NX.mesh +0 -0
  949. data/deps/share/OGRE/media/PCZAppMedia/ROOM_NY.mesh +0 -0
  950. data/deps/share/OGRE/media/PCZAppMedia/ROOM_NZ.mesh +0 -0
  951. data/deps/share/OGRE/media/PCZAppMedia/ROOM_PX.mesh +0 -0
  952. data/deps/share/OGRE/media/PCZAppMedia/ROOM_PY.mesh +0 -0
  953. data/deps/share/OGRE/media/PCZAppMedia/ROOM_PZ.mesh +0 -0
  954. data/deps/share/OGRE/media/PCZAppMedia/Roofing_Tile_Spanish.jpg +0 -0
  955. data/deps/share/OGRE/media/PCZAppMedia/Translucent_Glass_Tinted.jpg +0 -0
  956. data/deps/share/OGRE/media/PCZAppMedia/Translucent_Glass_Tinted1.jpg +0 -0
  957. data/deps/share/OGRE/media/PCZAppMedia/Wood_Floor.jpg +0 -0
  958. data/deps/share/OGRE/media/PCZAppMedia/building_exterior.mesh +0 -0
  959. data/deps/share/OGRE/media/PCZAppMedia/room_nxnynz.mesh +0 -0
  960. data/deps/share/OGRE/media/PCZAppMedia/room_nxpx.mesh +0 -0
  961. data/deps/share/OGRE/media/PCZAppMedia/room_nxpxnypynzpz.mesh +0 -0
  962. data/deps/share/OGRE/media/PCZAppMedia/room_nxpxnz.mesh +0 -0
  963. data/deps/share/OGRE/media/PCZAppMedia/room_nxpxnzpz.mesh +0 -0
  964. data/deps/share/OGRE/media/PCZAppMedia/room_nxpxpz.mesh +0 -0
  965. data/deps/share/OGRE/media/PCZAppMedia/room_nxpynz.mesh +0 -0
  966. data/deps/share/OGRE/media/PCZAppMedia/room_nxpz.mesh +0 -0
  967. data/deps/share/OGRE/media/PCZAppMedia/room_nypy.mesh +0 -0
  968. data/deps/share/OGRE/media/PCZAppMedia/room_nypy_4y.mesh +0 -0
  969. data/deps/share/OGRE/media/PCZAppMedia/room_nzpz.mesh +0 -0
  970. data/deps/share/OGRE/media/PCZAppMedia/room_pxnynz.mesh +0 -0
  971. data/deps/share/OGRE/media/PCZAppMedia/room_pxpynz.mesh +0 -0
  972. data/deps/share/OGRE/media/PCZAppMedia/room_pxpz.mesh +0 -0
  973. data/deps/share/OGRE/media/PCZAppMedia/terrain2.cfg +71 -0
  974. data/deps/share/OGRE/media/PCZAppMedia/terrain2.png +0 -0
  975. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Common.cg +248 -0
  976. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Common.glsl +248 -0
  977. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Common.glsles +231 -0
  978. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Common.hlsl +219 -0
  979. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Fog.cg +138 -0
  980. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Fog.glsl +139 -0
  981. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Fog.glsles +141 -0
  982. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Fog.hlsl +138 -0
  983. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Lighting.cg +225 -0
  984. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Lighting.glsl +226 -0
  985. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Lighting.glsles +227 -0
  986. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Lighting.hlsl +225 -0
  987. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Texturing.cg +319 -0
  988. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Texturing.glsl +334 -0
  989. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Texturing.glsles +355 -0
  990. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Texturing.hlsl +319 -0
  991. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Transform.cg +78 -0
  992. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Transform.glsl +71 -0
  993. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Transform.glsles +65 -0
  994. data/deps/share/OGRE/media/RTShaderLib/FFPLib_Transform.hlsl +71 -0
  995. data/deps/share/OGRE/media/RTShaderLib/SGXLib_DualQuaternion.cg +130 -0
  996. data/deps/share/OGRE/media/RTShaderLib/SGXLib_DualQuaternion.glsl +132 -0
  997. data/deps/share/OGRE/media/RTShaderLib/SGXLib_IntegratedPSSM.cg +81 -0
  998. data/deps/share/OGRE/media/RTShaderLib/SGXLib_IntegratedPSSM.glsl +107 -0
  999. data/deps/share/OGRE/media/RTShaderLib/SGXLib_IntegratedPSSM.glsles +112 -0
  1000. data/deps/share/OGRE/media/RTShaderLib/SGXLib_IntegratedPSSM.hlsl +81 -0
  1001. data/deps/share/OGRE/media/RTShaderLib/SGXLib_LayeredBlending.cg +728 -0
  1002. data/deps/share/OGRE/media/RTShaderLib/SGXLib_LayeredBlending.glsl +825 -0
  1003. data/deps/share/OGRE/media/RTShaderLib/SGXLib_LayeredBlending.glsles +889 -0
  1004. data/deps/share/OGRE/media/RTShaderLib/SGXLib_LayeredBlending.hlsl +730 -0
  1005. data/deps/share/OGRE/media/RTShaderLib/SGXLib_NormalMapLighting.cg +257 -0
  1006. data/deps/share/OGRE/media/RTShaderLib/SGXLib_NormalMapLighting.glsl +269 -0
  1007. data/deps/share/OGRE/media/RTShaderLib/SGXLib_NormalMapLighting.glsles +264 -0
  1008. data/deps/share/OGRE/media/RTShaderLib/SGXLib_NormalMapLighting.hlsl +257 -0
  1009. data/deps/share/OGRE/media/RTShaderLib/SGXLib_PerPixelLighting.cg +226 -0
  1010. data/deps/share/OGRE/media/RTShaderLib/SGXLib_PerPixelLighting.glsl +228 -0
  1011. data/deps/share/OGRE/media/RTShaderLib/SGXLib_PerPixelLighting.glsles +223 -0
  1012. data/deps/share/OGRE/media/RTShaderLib/SGXLib_PerPixelLighting.hlsl +226 -0
  1013. data/deps/share/OGRE/media/RTShaderLib/SGXLib_TextureAtlas.cg +122 -0
  1014. data/deps/share/OGRE/media/RTShaderLib/SGXLib_TextureAtlas.glsl +124 -0
  1015. data/deps/share/OGRE/media/RTShaderLib/SGXLib_TextureAtlas.glsles +122 -0
  1016. data/deps/share/OGRE/media/RTShaderLib/SGXLib_TextureAtlas.hlsl +122 -0
  1017. data/deps/share/OGRE/media/RTShaderLib/SampleLib_InstancedViewports.cg +76 -0
  1018. data/deps/share/OGRE/media/RTShaderLib/SampleLib_InstancedViewports.glsl +93 -0
  1019. data/deps/share/OGRE/media/RTShaderLib/SampleLib_InstancedViewports.hlsl +76 -0
  1020. data/deps/share/OGRE/media/RTShaderLib/SampleLib_ReflectionMap.cg +62 -0
  1021. data/deps/share/OGRE/media/RTShaderLib/SampleLib_ReflectionMap.glsl +65 -0
  1022. data/deps/share/OGRE/media/RTShaderLib/SampleLib_ReflectionMap.glsles +67 -0
  1023. data/deps/share/OGRE/media/RTShaderLib/SampleLib_ReflectionMap.hlsl +62 -0
  1024. data/deps/share/OGRE/media/RTShaderLib/cache/dummy.txt +1 -0
  1025. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_Shadow.cg +292 -0
  1026. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_Shadow.material +384 -0
  1027. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowFourWeights.glsl +29 -0
  1028. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowOneWeight.glsl +28 -0
  1029. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowPassThrough_ps.glsl +9 -0
  1030. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowPassThrough_vs.glsl +15 -0
  1031. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowThreeWeights.glsl +29 -0
  1032. data/deps/share/OGRE/media/RTShaderLib/materials/DualQuaternionSkinning_ShadowTwoWeights.glsl +29 -0
  1033. data/deps/share/OGRE/media/RTShaderLib/materials/HardwareSkinningShadow.cg +111 -0
  1034. data/deps/share/OGRE/media/RTShaderLib/materials/HardwareSkinningShadow.material +265 -0
  1035. data/deps/share/OGRE/media/RTShaderLib/materials/HardwareSkinningShadow_Fragment.glsl +6 -0
  1036. data/deps/share/OGRE/media/RTShaderLib/materials/HardwareSkinningShadow_TwoWeights.glsl +18 -0
  1037. data/deps/share/OGRE/media/RTShaderLib/materials/RTShaderSystem.material +221 -0
  1038. data/deps/share/OGRE/media/fonts/bluebold.ttf +0 -0
  1039. data/deps/share/OGRE/media/fonts/bluecond.ttf +0 -0
  1040. data/deps/share/OGRE/media/fonts/bluehigh.ttf +0 -0
  1041. data/deps/share/OGRE/media/fonts/bluehighway-10.font +2 -0
  1042. data/deps/share/OGRE/media/fonts/bluehighway-12.font +2 -0
  1043. data/deps/share/OGRE/media/fonts/bluehighway-8.font +2 -0
  1044. data/deps/share/OGRE/media/fonts/read_me.html +2 -0
  1045. data/deps/share/OGRE/media/fonts/sample.fontdef +11 -0
  1046. data/deps/share/OGRE/media/fonts/solo5.ttf +0 -0
  1047. data/deps/share/OGRE/media/materials/programs/ASCIIFP.cg +32 -0
  1048. data/deps/share/OGRE/media/materials/programs/ASCIIFP.glsles +31 -0
  1049. data/deps/share/OGRE/media/materials/programs/AmbientOneTexture.glsl +13 -0
  1050. data/deps/share/OGRE/media/materials/programs/AmbientOneTexture.glsles +20 -0
  1051. data/deps/share/OGRE/media/materials/programs/AmbientOneTextureWithUV.glsles +23 -0
  1052. data/deps/share/OGRE/media/materials/programs/Bloom2_ps20.glsl +27 -0
  1053. data/deps/share/OGRE/media/materials/programs/Bloom2_ps20.glsles +30 -0
  1054. data/deps/share/OGRE/media/materials/programs/Bloom2_ps20.hlsl +58 -0
  1055. data/deps/share/OGRE/media/materials/programs/Bloom_ps20.hlsl +52 -0
  1056. data/deps/share/OGRE/media/materials/programs/Bloom_vs11.hlsl +21 -0
  1057. data/deps/share/OGRE/media/materials/programs/Blur0_ps20.hlsl +31 -0
  1058. data/deps/share/OGRE/media/materials/programs/Blur0_vs.glsl +15 -0
  1059. data/deps/share/OGRE/media/materials/programs/Blur0_vs.glsles +22 -0
  1060. data/deps/share/OGRE/media/materials/programs/Blur0_vs11.hlsl +22 -0
  1061. data/deps/share/OGRE/media/materials/programs/Blur1_ps20.hlsl +28 -0
  1062. data/deps/share/OGRE/media/materials/programs/Blur1_vs.glsl +15 -0
  1063. data/deps/share/OGRE/media/materials/programs/Blur1_vs.glsles +22 -0
  1064. data/deps/share/OGRE/media/materials/programs/Blur1_vs11.hlsl +19 -0
  1065. data/deps/share/OGRE/media/materials/programs/BlurH_ps20.glsl +56 -0
  1066. data/deps/share/OGRE/media/materials/programs/BlurH_ps20.glsles +58 -0
  1067. data/deps/share/OGRE/media/materials/programs/BlurH_ps20.hlsl +51 -0
  1068. data/deps/share/OGRE/media/materials/programs/BlurV_ps20.glsl +60 -0
  1069. data/deps/share/OGRE/media/materials/programs/BlurV_ps20.glsles +63 -0
  1070. data/deps/share/OGRE/media/materials/programs/BlurV_ps20.hlsl +51 -0
  1071. data/deps/share/OGRE/media/materials/programs/Blur_ps.glsl +14 -0
  1072. data/deps/share/OGRE/media/materials/programs/Blur_ps.glsles +18 -0
  1073. data/deps/share/OGRE/media/materials/programs/Blur_vs.glsl +14 -0
  1074. data/deps/share/OGRE/media/materials/programs/Blur_vs.glsles +24 -0
  1075. data/deps/share/OGRE/media/materials/programs/Blur_vs11.hlsl +19 -0
  1076. data/deps/share/OGRE/media/materials/programs/BrightBloom2_ps20.glsl +29 -0
  1077. data/deps/share/OGRE/media/materials/programs/BrightBloom2_ps20.glsles +32 -0
  1078. data/deps/share/OGRE/media/materials/programs/BrightBloom2_ps20.hlsl +20 -0
  1079. data/deps/share/OGRE/media/materials/programs/ColdCasterFp.glsles +11 -0
  1080. data/deps/share/OGRE/media/materials/programs/ColdCasterVp.glsles +18 -0
  1081. data/deps/share/OGRE/media/materials/programs/Combine_fp.cg +15 -0
  1082. data/deps/share/OGRE/media/materials/programs/Combine_fp.glsles +17 -0
  1083. data/deps/share/OGRE/media/materials/programs/Common.cg +81 -0
  1084. data/deps/share/OGRE/media/materials/programs/DOF_ps.cg +47 -0
  1085. data/deps/share/OGRE/media/materials/programs/DOF_ps.glsles +94 -0
  1086. data/deps/share/OGRE/media/materials/programs/DepthShadowmap.hlsl +309 -0
  1087. data/deps/share/OGRE/media/materials/programs/DepthShadowmapCasterFp.glsl +16 -0
  1088. data/deps/share/OGRE/media/materials/programs/DepthShadowmapCasterFp.glsles +19 -0
  1089. data/deps/share/OGRE/media/materials/programs/DepthShadowmapCasterVp.glsl +24 -0
  1090. data/deps/share/OGRE/media/materials/programs/DepthShadowmapCasterVp.glsles +27 -0
  1091. data/deps/share/OGRE/media/materials/programs/DepthShadowmapNormalMapReceiverFp.glsl +84 -0
  1092. data/deps/share/OGRE/media/materials/programs/DepthShadowmapNormalMapReceiverFp.glsles +86 -0
  1093. data/deps/share/OGRE/media/materials/programs/DepthShadowmapNormalMapReceiverVp.glsl +42 -0
  1094. data/deps/share/OGRE/media/materials/programs/DepthShadowmapNormalMapReceiverVp.glsles +51 -0
  1095. data/deps/share/OGRE/media/materials/programs/DepthShadowmapReceiverFp.glsl +66 -0
  1096. data/deps/share/OGRE/media/materials/programs/DepthShadowmapReceiverFp.glsles +67 -0
  1097. data/deps/share/OGRE/media/materials/programs/DepthShadowmapReceiverVp.glsl +32 -0
  1098. data/deps/share/OGRE/media/materials/programs/DepthShadowmapReceiverVp.glsles +42 -0
  1099. data/deps/share/OGRE/media/materials/programs/DitherFP.cg +18 -0
  1100. data/deps/share/OGRE/media/materials/programs/DitherFP.glsles +25 -0
  1101. data/deps/share/OGRE/media/materials/programs/DualQuaternion.cg +159 -0
  1102. data/deps/share/OGRE/media/materials/programs/DualQuaternion.glsl +42 -0
  1103. data/deps/share/OGRE/media/materials/programs/DualQuaternion_Common.cg +85 -0
  1104. data/deps/share/OGRE/media/materials/programs/DualQuaternion_Common.glsl +70 -0
  1105. data/deps/share/OGRE/media/materials/programs/DualQuaternion_ShadowCaster.glsl +29 -0
  1106. data/deps/share/OGRE/media/materials/programs/DualQuaternion_TwoPhase.glsl +77 -0
  1107. data/deps/share/OGRE/media/materials/programs/DualQuaternion_TwoPhaseShadowCaster.glsl +41 -0
  1108. data/deps/share/OGRE/media/materials/programs/EmbossedFp.glsles +18 -0
  1109. data/deps/share/OGRE/media/materials/programs/Example_Basic.cg +400 -0
  1110. data/deps/share/OGRE/media/materials/programs/Example_Basic.hlsl +273 -0
  1111. data/deps/share/OGRE/media/materials/programs/Example_BasicFp.glsles +620 -0
  1112. data/deps/share/OGRE/media/materials/programs/Example_BasicVp.glsles +620 -0
  1113. data/deps/share/OGRE/media/materials/programs/Example_BumpMapping.cg +235 -0
  1114. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingFp.glsles +29 -0
  1115. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingShadowRcvFp.glsles +34 -0
  1116. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingShadowRcvVp.glsles +55 -0
  1117. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingSpecularFp.glsles +41 -0
  1118. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingSpecularVp.glsles +50 -0
  1119. data/deps/share/OGRE/media/materials/programs/Example_BumpMappingVp.glsles +50 -0
  1120. data/deps/share/OGRE/media/materials/programs/Example_CelShading.cg +64 -0
  1121. data/deps/share/OGRE/media/materials/programs/Example_CelShadingFp.glsles +25 -0
  1122. data/deps/share/OGRE/media/materials/programs/Example_CelShadingVp.glsles +50 -0
  1123. data/deps/share/OGRE/media/materials/programs/Example_Fresnel.cg +116 -0
  1124. data/deps/share/OGRE/media/materials/programs/Example_FresnelFp.glsles +40 -0
  1125. data/deps/share/OGRE/media/materials/programs/Example_FresnelPS.asm +72 -0
  1126. data/deps/share/OGRE/media/materials/programs/Example_FresnelVp.glsles +39 -0
  1127. data/deps/share/OGRE/media/materials/programs/Example_Projection.cg +28 -0
  1128. data/deps/share/OGRE/media/materials/programs/Example_ProjectionFp.glsles +56 -0
  1129. data/deps/share/OGRE/media/materials/programs/Example_ProjectionVp.glsles +26 -0
  1130. data/deps/share/OGRE/media/materials/programs/Example_TextureArrayPS.asm +10 -0
  1131. data/deps/share/OGRE/media/materials/programs/Example_TextureArrayPS.glsl +17 -0
  1132. data/deps/share/OGRE/media/materials/programs/Example_TextureArrayPS.hlsl4 +33 -0
  1133. data/deps/share/OGRE/media/materials/programs/Example_TextureArrayVS.cg +14 -0
  1134. data/deps/share/OGRE/media/materials/programs/Example_TextureArrayVS.glsl +11 -0
  1135. data/deps/share/OGRE/media/materials/programs/GlassFP.cg +9 -0
  1136. data/deps/share/OGRE/media/materials/programs/GlassFP.glsles +15 -0
  1137. data/deps/share/OGRE/media/materials/programs/Grass.cg +283 -0
  1138. data/deps/share/OGRE/media/materials/programs/GrassAmbientFp.glsles +22 -0
  1139. data/deps/share/OGRE/media/materials/programs/GrassAmbientVp.glsles +41 -0
  1140. data/deps/share/OGRE/media/materials/programs/GrassCasterFp.glsles +33 -0
  1141. data/deps/share/OGRE/media/materials/programs/GrassCasterVp.glsles +32 -0
  1142. data/deps/share/OGRE/media/materials/programs/GrassFp.glsles +25 -0
  1143. data/deps/share/OGRE/media/materials/programs/GrassReceiverFp.glsles +47 -0
  1144. data/deps/share/OGRE/media/materials/programs/GrassReceiverVp.glsles +57 -0
  1145. data/deps/share/OGRE/media/materials/programs/GrassTexVp.glsles +26 -0
  1146. data/deps/share/OGRE/media/materials/programs/GrassVp.glsles +38 -0
  1147. data/deps/share/OGRE/media/materials/programs/GrayScale.cg +20 -0
  1148. data/deps/share/OGRE/media/materials/programs/GrayScale.glsles +13 -0
  1149. data/deps/share/OGRE/media/materials/programs/HWBasicInstancing.cg +69 -0
  1150. data/deps/share/OGRE/media/materials/programs/HWBasicInstancing.vert +69 -0
  1151. data/deps/share/OGRE/media/materials/programs/HW_VTFInstancing.cg +124 -0
  1152. data/deps/share/OGRE/media/materials/programs/HW_VTFInstancing.vert +131 -0
  1153. data/deps/share/OGRE/media/materials/programs/HalftoneFP.cg +19 -0
  1154. data/deps/share/OGRE/media/materials/programs/HalftoneFP.glsles +24 -0
  1155. data/deps/share/OGRE/media/materials/programs/HeatBlurFp.glsles +63 -0
  1156. data/deps/share/OGRE/media/materials/programs/HeatBlurVp.glsles +16 -0
  1157. data/deps/share/OGRE/media/materials/programs/HeatCasterFp.glsles +11 -0
  1158. data/deps/share/OGRE/media/materials/programs/HeatCasterVp.glsles +18 -0
  1159. data/deps/share/OGRE/media/materials/programs/HeatVision.cg +230 -0
  1160. data/deps/share/OGRE/media/materials/programs/Instancing.frag +66 -0
  1161. data/deps/share/OGRE/media/materials/programs/Instancing.program +84 -0
  1162. data/deps/share/OGRE/media/materials/programs/InstancingMisc.cg +63 -0
  1163. data/deps/share/OGRE/media/materials/programs/InstancingMisc.vert +62 -0
  1164. data/deps/share/OGRE/media/materials/programs/InstancingVertexInterpolators.cg +34 -0
  1165. data/deps/share/OGRE/media/materials/programs/Instancing_ps.cg +57 -0
  1166. data/deps/share/OGRE/media/materials/programs/InvertFP.cg +6 -0
  1167. data/deps/share/OGRE/media/materials/programs/InvertFP.glsles +13 -0
  1168. data/deps/share/OGRE/media/materials/programs/LaplaceFP.cg +37 -0
  1169. data/deps/share/OGRE/media/materials/programs/LaplaceFP.glsles +40 -0
  1170. data/deps/share/OGRE/media/materials/programs/LightToHeatFp.glsles +39 -0
  1171. data/deps/share/OGRE/media/materials/programs/LightToHeatVp.glsles +17 -0
  1172. data/deps/share/OGRE/media/materials/programs/NightVisionFP.cg +27 -0
  1173. data/deps/share/OGRE/media/materials/programs/NightVisionFP.glsles +26 -0
  1174. data/deps/share/OGRE/media/materials/programs/Ocean2GLSL.frag +71 -0
  1175. data/deps/share/OGRE/media/materials/programs/Ocean2GLSL.vert +91 -0
  1176. data/deps/share/OGRE/media/materials/programs/Ocean2GLSLES.frag +76 -0
  1177. data/deps/share/OGRE/media/materials/programs/Ocean2GLSLES.vert +101 -0
  1178. data/deps/share/OGRE/media/materials/programs/Ocean2HLSL_Cg.frag +85 -0
  1179. data/deps/share/OGRE/media/materials/programs/Ocean2HLSL_Cg.vert +108 -0
  1180. data/deps/share/OGRE/media/materials/programs/OffsetMapping.cg +84 -0
  1181. data/deps/share/OGRE/media/materials/programs/OffsetMapping.hlsl +135 -0
  1182. data/deps/share/OGRE/media/materials/programs/OffsetMappingFp.glsl +69 -0
  1183. data/deps/share/OGRE/media/materials/programs/OffsetMappingFp.glsles +43 -0
  1184. data/deps/share/OGRE/media/materials/programs/OffsetMappingShadowsFp.glsles +70 -0
  1185. data/deps/share/OGRE/media/materials/programs/OffsetMappingShadowsVp.glsles +63 -0
  1186. data/deps/share/OGRE/media/materials/programs/OffsetMappingVp.glsl +54 -0
  1187. data/deps/share/OGRE/media/materials/programs/OffsetMappingVp.glsles +50 -0
  1188. data/deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm +44 -0
  1189. data/deps/share/OGRE/media/materials/programs/OffsetMapping_specular.glsles +49 -0
  1190. data/deps/share/OGRE/media/materials/programs/OldMovieFP.cg +55 -0
  1191. data/deps/share/OGRE/media/materials/programs/OldMovieFP.glsles +58 -0
  1192. data/deps/share/OGRE/media/materials/programs/OldTV.cg +42 -0
  1193. data/deps/share/OGRE/media/materials/programs/ParticleGS.cg +324 -0
  1194. data/deps/share/OGRE/media/materials/programs/ParticleGS.hlsl +316 -0
  1195. data/deps/share/OGRE/media/materials/programs/PassthroughFP.cg +14 -0
  1196. data/deps/share/OGRE/media/materials/programs/PassthroughFP.glsl +9 -0
  1197. data/deps/share/OGRE/media/materials/programs/PassthroughFP.glsles +14 -0
  1198. data/deps/share/OGRE/media/materials/programs/PassthroughVP.glsl +5 -0
  1199. data/deps/share/OGRE/media/materials/programs/PassthroughVP.glsles +13 -0
  1200. data/deps/share/OGRE/media/materials/programs/PosterizeFP.cg +17 -0
  1201. data/deps/share/OGRE/media/materials/programs/PosterizeFP.glsles +22 -0
  1202. data/deps/share/OGRE/media/materials/programs/Radial_Blur_FP.cg +58 -0
  1203. data/deps/share/OGRE/media/materials/programs/Radial_Blur_FP.glsles +62 -0
  1204. data/deps/share/OGRE/media/materials/programs/Radial_Blur_FP.hlsl +58 -0
  1205. data/deps/share/OGRE/media/materials/programs/ShaderInstancing.cg +101 -0
  1206. data/deps/share/OGRE/media/materials/programs/ShaderInstancing.vert +117 -0
  1207. data/deps/share/OGRE/media/materials/programs/SharpenEdgesFP.cg +23 -0
  1208. data/deps/share/OGRE/media/materials/programs/SharpenEdgesFP.glsles +31 -0
  1209. data/deps/share/OGRE/media/materials/programs/ShowNormals.glsles +16 -0
  1210. data/deps/share/OGRE/media/materials/programs/ShowTangents.glsles +16 -0
  1211. data/deps/share/OGRE/media/materials/programs/ShowUV.glsles +12 -0
  1212. data/deps/share/OGRE/media/materials/programs/ShowUVdir3D.glsles +14 -0
  1213. data/deps/share/OGRE/media/materials/programs/StdQuad_Tex2_vp.glsles +23 -0
  1214. data/deps/share/OGRE/media/materials/programs/StdQuad_Tex2a_vp.glsles +23 -0
  1215. data/deps/share/OGRE/media/materials/programs/StdQuad_Tex3_vp.glsles +25 -0
  1216. data/deps/share/OGRE/media/materials/programs/StdQuad_Tex4_vp.glsles +27 -0
  1217. data/deps/share/OGRE/media/materials/programs/StdQuad_vp.cg +113 -0
  1218. data/deps/share/OGRE/media/materials/programs/StdQuad_vp.glsl +11 -0
  1219. data/deps/share/OGRE/media/materials/programs/StdQuad_vp.glsles +17 -0
  1220. data/deps/share/OGRE/media/materials/programs/StdQuad_vp.hlsl +20 -0
  1221. data/deps/share/OGRE/media/materials/programs/Swizzle.gp +39 -0
  1222. data/deps/share/OGRE/media/materials/programs/SwizzleGP.cg +14 -0
  1223. data/deps/share/OGRE/media/materials/programs/SwizzleGP.glsl +40 -0
  1224. data/deps/share/OGRE/media/materials/programs/SwizzleGP.glsles +80 -0
  1225. data/deps/share/OGRE/media/materials/programs/TilingFP.cg +33 -0
  1226. data/deps/share/OGRE/media/materials/programs/TilingFP.glsles +36 -0
  1227. data/deps/share/OGRE/media/materials/programs/VTFInstancing.cg +107 -0
  1228. data/deps/share/OGRE/media/materials/programs/VTFInstancing.vert +113 -0
  1229. data/deps/share/OGRE/media/materials/programs/crowdVp.glsl +62 -0
  1230. data/deps/share/OGRE/media/materials/programs/crowdVp.glsles +68 -0
  1231. data/deps/share/OGRE/media/materials/programs/depthshadowobject.cg +185 -0
  1232. data/deps/share/OGRE/media/materials/programs/depthshadowobjectFp.glsles +183 -0
  1233. data/deps/share/OGRE/media/materials/programs/depthshadowobjectVp.glsles +183 -0
  1234. data/deps/share/OGRE/media/materials/programs/hdr.cg +25 -0
  1235. data/deps/share/OGRE/media/materials/programs/hdr.hlsl +165 -0
  1236. data/deps/share/OGRE/media/materials/programs/hdrFp.glsles +15 -0
  1237. data/deps/share/OGRE/media/materials/programs/hdr_bloom.glsl +22 -0
  1238. data/deps/share/OGRE/media/materials/programs/hdr_bloom.glsles +25 -0
  1239. data/deps/share/OGRE/media/materials/programs/hdr_downscale2x2luminence.glsl +24 -0
  1240. data/deps/share/OGRE/media/materials/programs/hdr_downscale2x2luminence.glsles +26 -0
  1241. data/deps/share/OGRE/media/materials/programs/hdr_downscale3x3.glsl +26 -0
  1242. data/deps/share/OGRE/media/materials/programs/hdr_downscale3x3.glsles +30 -0
  1243. data/deps/share/OGRE/media/materials/programs/hdr_downscale3x3brightpass.glsl +37 -0
  1244. data/deps/share/OGRE/media/materials/programs/hdr_downscale3x3brightpass.glsles +64 -0
  1245. data/deps/share/OGRE/media/materials/programs/hdr_finalToneMapping.glsl +28 -0
  1246. data/deps/share/OGRE/media/materials/programs/hdr_finalToneMapping.glsles +54 -0
  1247. data/deps/share/OGRE/media/materials/programs/hdr_tonemap_util.glsl +29 -0
  1248. data/deps/share/OGRE/media/materials/programs/hdrutils.hlsl +65 -0
  1249. data/deps/share/OGRE/media/materials/programs/instancing.cg +125 -0
  1250. data/deps/share/OGRE/media/materials/programs/instancingVp.glsl +39 -0
  1251. data/deps/share/OGRE/media/materials/programs/instancingVp.glsles +51 -0
  1252. data/deps/share/OGRE/media/materials/programs/isosurf.cg +155 -0
  1253. data/deps/share/OGRE/media/materials/programs/isosurf.hlsl +145 -0
  1254. data/deps/share/OGRE/media/materials/programs/mrttestfp.hlsl +48 -0
  1255. data/deps/share/OGRE/media/materials/programs/mrttestfp_quad.glsl +17 -0
  1256. data/deps/share/OGRE/media/materials/programs/mrttestfp_quad.glsles +20 -0
  1257. data/deps/share/OGRE/media/materials/programs/mrttestfp_scene.glsl +20 -0
  1258. data/deps/share/OGRE/media/materials/programs/mrttestfp_scene.glsles +21 -0
  1259. data/deps/share/OGRE/media/materials/programs/oceanGLSL.frag +45 -0
  1260. data/deps/share/OGRE/media/materials/programs/oceanGLSL.vert +32 -0
  1261. data/deps/share/OGRE/media/materials/programs/oceanHLSL_Cg.frag +45 -0
  1262. data/deps/share/OGRE/media/materials/programs/oceanHLSL_Cg.vert +41 -0
  1263. data/deps/share/OGRE/media/materials/programs/particlesgs.fx +367 -0
  1264. data/deps/share/OGRE/media/materials/programs/pssm.cg +164 -0
  1265. data/deps/share/OGRE/media/materials/programs/pssm.hlsl +167 -0
  1266. data/deps/share/OGRE/media/materials/programs/pssmCasterFp.glsles +13 -0
  1267. data/deps/share/OGRE/media/materials/programs/pssmCasterVp.glsles +21 -0
  1268. data/deps/share/OGRE/media/materials/programs/pssmFp.glsles +0 -0
  1269. data/deps/share/OGRE/media/materials/programs/pssmReceiverFp.glsles +92 -0
  1270. data/deps/share/OGRE/media/materials/programs/pssmReceiverVp.glsles +63 -0
  1271. data/deps/share/OGRE/media/materials/programs/pssmVp.glsles +0 -0
  1272. data/deps/share/OGRE/media/materials/programs/shadows.cg +144 -0
  1273. data/deps/share/OGRE/media/materials/programs/shadows.glsl +146 -0
  1274. data/deps/share/OGRE/media/materials/programs/skinningTwoWeightsShadowCasterVp.glsl +42 -0
  1275. data/deps/share/OGRE/media/materials/programs/skinningTwoWeightsShadowCasterVp.glsles +46 -0
  1276. data/deps/share/OGRE/media/materials/programs/skinningTwoWeightsVp.glsl +61 -0
  1277. data/deps/share/OGRE/media/materials/programs/skinningTwoWeightsVp.glsles +63 -0
  1278. data/deps/share/OGRE/media/materials/programs/varianceshadowcasterfp.cg +65 -0
  1279. data/deps/share/OGRE/media/materials/programs/varianceshadowcasterfp.glsles +132 -0
  1280. data/deps/share/OGRE/media/materials/programs/varianceshadowcastervp.cg +44 -0
  1281. data/deps/share/OGRE/media/materials/programs/varianceshadowcastervp.glsles +88 -0
  1282. data/deps/share/OGRE/media/materials/programs/varianceshadowreceiverfp.cg +107 -0
  1283. data/deps/share/OGRE/media/materials/programs/varianceshadowreceiverfp.glsles +214 -0
  1284. data/deps/share/OGRE/media/materials/programs/varianceshadowreceivervp.cg +47 -0
  1285. data/deps/share/OGRE/media/materials/programs/varianceshadowreceivervp.glsles +94 -0
  1286. data/deps/share/OGRE/media/materials/scripts/ASCII.material +55 -0
  1287. data/deps/share/OGRE/media/materials/scripts/ASMSwizzle.material +19 -0
  1288. data/deps/share/OGRE/media/materials/scripts/BlackAndWhite.material +45 -0
  1289. data/deps/share/OGRE/media/materials/scripts/Bloom.material +217 -0
  1290. data/deps/share/OGRE/media/materials/scripts/Bloom2.material +360 -0
  1291. data/deps/share/OGRE/media/materials/scripts/CGSwizzle.material +20 -0
  1292. data/deps/share/OGRE/media/materials/scripts/CompositorDemo.material +18 -0
  1293. data/deps/share/OGRE/media/materials/scripts/DOF.material +94 -0
  1294. data/deps/share/OGRE/media/materials/scripts/DepthShadowmap.material +747 -0
  1295. data/deps/share/OGRE/media/materials/scripts/Dither.material +57 -0
  1296. data/deps/share/OGRE/media/materials/scripts/DualQuaternion.material +112 -0
  1297. data/deps/share/OGRE/media/materials/scripts/DualQuaternion.program +154 -0
  1298. data/deps/share/OGRE/media/materials/scripts/Embossed.material +44 -0
  1299. data/deps/share/OGRE/media/materials/scripts/Example-Water.material +183 -0
  1300. data/deps/share/OGRE/media/materials/scripts/Examples-Advanced.material +842 -0
  1301. data/deps/share/OGRE/media/materials/scripts/Examples-DynTex.material +38 -0
  1302. data/deps/share/OGRE/media/materials/scripts/Examples-Water.material +183 -0
  1303. data/deps/share/OGRE/media/materials/scripts/Examples.compositor +788 -0
  1304. data/deps/share/OGRE/media/materials/scripts/Examples.material +2035 -0
  1305. data/deps/share/OGRE/media/materials/scripts/Examples.program +340 -0
  1306. data/deps/share/OGRE/media/materials/scripts/GLSLSwizzle.material +37 -0
  1307. data/deps/share/OGRE/media/materials/scripts/Glass.material +56 -0
  1308. data/deps/share/OGRE/media/materials/scripts/HWInstancing.material +131 -0
  1309. data/deps/share/OGRE/media/materials/scripts/HW_VTFInstancing.material +445 -0
  1310. data/deps/share/OGRE/media/materials/scripts/HW_VTF_LUTInstancing.material +438 -0
  1311. data/deps/share/OGRE/media/materials/scripts/Halftone.material +56 -0
  1312. data/deps/share/OGRE/media/materials/scripts/HeatVision.material +317 -0
  1313. data/deps/share/OGRE/media/materials/scripts/Hurt.material +18 -0
  1314. data/deps/share/OGRE/media/materials/scripts/InstancingMisc.material +81 -0
  1315. data/deps/share/OGRE/media/materials/scripts/Invert.material +47 -0
  1316. data/deps/share/OGRE/media/materials/scripts/IsoSurf.material +127 -0
  1317. data/deps/share/OGRE/media/materials/scripts/Laplace.material +49 -0
  1318. data/deps/share/OGRE/media/materials/scripts/MRTtest.material +133 -0
  1319. data/deps/share/OGRE/media/materials/scripts/MotionBlur.material +101 -0
  1320. data/deps/share/OGRE/media/materials/scripts/NightVision.material +49 -0
  1321. data/deps/share/OGRE/media/materials/scripts/Ocean.controls +90 -0
  1322. data/deps/share/OGRE/media/materials/scripts/Ocean.material +618 -0
  1323. data/deps/share/OGRE/media/materials/scripts/OffsetMapping.material +447 -0
  1324. data/deps/share/OGRE/media/materials/scripts/Ogre.material +66 -0
  1325. data/deps/share/OGRE/media/materials/scripts/OldMovie.material +85 -0
  1326. data/deps/share/OGRE/media/materials/scripts/OldTV.material +59 -0
  1327. data/deps/share/OGRE/media/materials/scripts/ParticleGS.material +200 -0
  1328. data/deps/share/OGRE/media/materials/scripts/Penguin.material +13 -0
  1329. data/deps/share/OGRE/media/materials/scripts/Posterize.material +46 -0
  1330. data/deps/share/OGRE/media/materials/scripts/RZR-002.material +15 -0
  1331. data/deps/share/OGRE/media/materials/scripts/RadialBlur.material +49 -0
  1332. data/deps/share/OGRE/media/materials/scripts/SSAO/CreaseShading.cg +65 -0
  1333. data/deps/share/OGRE/media/materials/scripts/SSAO/CreaseShading.material +57 -0
  1334. data/deps/share/OGRE/media/materials/scripts/SSAO/Crytek.cg +88 -0
  1335. data/deps/share/OGRE/media/materials/scripts/SSAO/Crytek.material +57 -0
  1336. data/deps/share/OGRE/media/materials/scripts/SSAO/GBuffer.cg +40 -0
  1337. data/deps/share/OGRE/media/materials/scripts/SSAO/GBuffer.material +61 -0
  1338. data/deps/share/OGRE/media/materials/scripts/SSAO/HemisphereMC.cg +86 -0
  1339. data/deps/share/OGRE/media/materials/scripts/SSAO/HemisphereMC.material +60 -0
  1340. data/deps/share/OGRE/media/materials/scripts/SSAO/HorizonBased.cg +95 -0
  1341. data/deps/share/OGRE/media/materials/scripts/SSAO/HorizonBased.material +58 -0
  1342. data/deps/share/OGRE/media/materials/scripts/SSAO/SSAO.compositor +224 -0
  1343. data/deps/share/OGRE/media/materials/scripts/SSAO/SSAOPost.cg +153 -0
  1344. data/deps/share/OGRE/media/materials/scripts/SSAO/SSAOPost.compositor +77 -0
  1345. data/deps/share/OGRE/media/materials/scripts/SSAO/SSAOPost.material +239 -0
  1346. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowDepth.cg +13 -0
  1347. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowDepth.material +47 -0
  1348. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowNormals.cg +11 -0
  1349. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowNormals.material +40 -0
  1350. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowViewPos.cg +11 -0
  1351. data/deps/share/OGRE/media/materials/scripts/SSAO/ShowViewPos.material +40 -0
  1352. data/deps/share/OGRE/media/materials/scripts/SSAO/UnsharpMask.cg +79 -0
  1353. data/deps/share/OGRE/media/materials/scripts/SSAO/UnsharpMask.material +141 -0
  1354. data/deps/share/OGRE/media/materials/scripts/SSAO/Volumetric.cg +82 -0
  1355. data/deps/share/OGRE/media/materials/scripts/SSAO/Volumetric.material +59 -0
  1356. data/deps/share/OGRE/media/materials/scripts/ShaderInstancing.material +380 -0
  1357. data/deps/share/OGRE/media/materials/scripts/ShaderSystem.material +20 -0
  1358. data/deps/share/OGRE/media/materials/scripts/SharpenEdges.material +66 -0
  1359. data/deps/share/OGRE/media/materials/scripts/StdQuad_vp.program +162 -0
  1360. data/deps/share/OGRE/media/materials/scripts/TextureAtlasSampleOrg.tai +36 -0
  1361. data/deps/share/OGRE/media/materials/scripts/TextureAtlasSampleWrap.tai +36 -0
  1362. data/deps/share/OGRE/media/materials/scripts/Tiling.material +50 -0
  1363. data/deps/share/OGRE/media/materials/scripts/VTFInstancing.material +438 -0
  1364. data/deps/share/OGRE/media/materials/scripts/VarianceShadowmap.material +103 -0
  1365. data/deps/share/OGRE/media/materials/scripts/facial.material +98 -0
  1366. data/deps/share/OGRE/media/materials/scripts/hdr.material +332 -0
  1367. data/deps/share/OGRE/media/materials/scripts/instancing.material +185 -0
  1368. data/deps/share/OGRE/media/materials/scripts/pssm.material +226 -0
  1369. data/deps/share/OGRE/media/materials/scripts/shadows.material +130 -0
  1370. data/deps/share/OGRE/media/materials/scripts/sibenik.material +305 -0
  1371. data/deps/share/OGRE/media/materials/scripts/smoke.material +19 -0
  1372. data/deps/share/OGRE/media/materials/textures/10points.png +0 -0
  1373. data/deps/share/OGRE/media/materials/textures/1D_Noise.png +0 -0
  1374. data/deps/share/OGRE/media/materials/textures/1D_Noise2.png +0 -0
  1375. data/deps/share/OGRE/media/materials/textures/1d_SPIRAL.png +0 -0
  1376. data/deps/share/OGRE/media/materials/textures/1d_debug.png +0 -0
  1377. data/deps/share/OGRE/media/materials/textures/8x8PagesSplotches2.png +0 -0
  1378. data/deps/share/OGRE/media/materials/textures/ASCII.dds +0 -0
  1379. data/deps/share/OGRE/media/materials/textures/BeachStones.jpg +0 -0
  1380. data/deps/share/OGRE/media/materials/textures/BumpyMetal.jpg +0 -0
  1381. data/deps/share/OGRE/media/materials/textures/Chrome.jpg +0 -0
  1382. data/deps/share/OGRE/media/materials/textures/Dirt.jpg +0 -0
  1383. data/deps/share/OGRE/media/materials/textures/Dr_Bunsen_Head.jpg +0 -0
  1384. data/deps/share/OGRE/media/materials/textures/GLX_icon.png +0 -0
  1385. data/deps/share/OGRE/media/materials/textures/GreenSkin.jpg +0 -0
  1386. data/deps/share/OGRE/media/materials/textures/HeatLookup.tga +0 -0
  1387. data/deps/share/OGRE/media/materials/textures/HeatNoise.tga +0 -0
  1388. data/deps/share/OGRE/media/materials/textures/KAMEN-stup.jpg +0 -0
  1389. data/deps/share/OGRE/media/materials/textures/KAMEN320x240-bump.jpg +0 -0
  1390. data/deps/share/OGRE/media/materials/textures/KAMEN320x240.jpg +0 -0
  1391. data/deps/share/OGRE/media/materials/textures/LowRes.png +0 -0
  1392. data/deps/share/OGRE/media/materials/textures/MRAMOR-bump.jpg +0 -0
  1393. data/deps/share/OGRE/media/materials/textures/MRAMOR6X6.jpg +0 -0
  1394. data/deps/share/OGRE/media/materials/textures/MtlPlat2.jpg +0 -0
  1395. data/deps/share/OGRE/media/materials/textures/NMBalls.png +0 -0
  1396. data/deps/share/OGRE/media/materials/textures/NMBumpsOut.png +0 -0
  1397. data/deps/share/OGRE/media/materials/textures/NMHollyBumps.png +0 -0
  1398. data/deps/share/OGRE/media/materials/textures/NMStripes.png +0 -0
  1399. data/deps/share/OGRE/media/materials/textures/NPRMetallic.tga +0 -0
  1400. data/deps/share/OGRE/media/materials/textures/NoiseVolume.dds +0 -0
  1401. data/deps/share/OGRE/media/materials/textures/Panels_Diffuse.png +0 -0
  1402. data/deps/share/OGRE/media/materials/textures/Panels_Normal_Obj.png +0 -0
  1403. data/deps/share/OGRE/media/materials/textures/Panels_Normal_Tangent.png +0 -0
  1404. data/deps/share/OGRE/media/materials/textures/Panels_reflection.png +0 -0
  1405. data/deps/share/OGRE/media/materials/textures/Panels_refmask.png +0 -0
  1406. data/deps/share/OGRE/media/materials/textures/RZR-002.png +0 -0
  1407. data/deps/share/OGRE/media/materials/textures/Random3D.dds +0 -0
  1408. data/deps/share/OGRE/media/materials/textures/RustedMetal.jpg +0 -0
  1409. data/deps/share/OGRE/media/materials/textures/RustyBarrel.png +0 -0
  1410. data/deps/share/OGRE/media/materials/textures/RustySteel.jpg +0 -0
  1411. data/deps/share/OGRE/media/materials/textures/SSAO/4InterleavedKMeansDisk8x4.png +0 -0
  1412. data/deps/share/OGRE/media/materials/textures/SSAO/gray256.png +0 -0
  1413. data/deps/share/OGRE/media/materials/textures/SSAO/importance4InterleavedSphereHemisphere8x4.png +0 -0
  1414. data/deps/share/OGRE/media/materials/textures/SSAO/rand1x32.png +0 -0
  1415. data/deps/share/OGRE/media/materials/textures/SSAO/randCosSinJitter4x4.png +0 -0
  1416. data/deps/share/OGRE/media/materials/textures/SSAO/regularSphereJittered4.png +0 -0
  1417. data/deps/share/OGRE/media/materials/textures/Sepia1D.tga +0 -0
  1418. data/deps/share/OGRE/media/materials/textures/SmallLeaf_BP.png +0 -0
  1419. data/deps/share/OGRE/media/materials/textures/TextureAtlasSampleOrg0.png +0 -0
  1420. data/deps/share/OGRE/media/materials/textures/TextureAtlasSampleWrap0.png +0 -0
  1421. data/deps/share/OGRE/media/materials/textures/Water01.jpg +0 -0
  1422. data/deps/share/OGRE/media/materials/textures/Water02.jpg +0 -0
  1423. data/deps/share/OGRE/media/materials/textures/WaterNormal1.tga +0 -0
  1424. data/deps/share/OGRE/media/materials/textures/WaterNormal2.tga +0 -0
  1425. data/deps/share/OGRE/media/materials/textures/WoodPallet.png +0 -0
  1426. data/deps/share/OGRE/media/materials/textures/atheneNormalMap.png +0 -0
  1427. data/deps/share/OGRE/media/materials/textures/aureola.png +0 -0
  1428. data/deps/share/OGRE/media/materials/textures/basic_droplet.png +0 -0
  1429. data/deps/share/OGRE/media/materials/textures/blue_jaiqua.jpg +0 -0
  1430. data/deps/share/OGRE/media/materials/textures/cel_shading_diffuse.png +0 -0
  1431. data/deps/share/OGRE/media/materials/textures/cel_shading_edge.png +0 -0
  1432. data/deps/share/OGRE/media/materials/textures/cel_shading_specular.png +0 -0
  1433. data/deps/share/OGRE/media/materials/textures/checker.png +0 -0
  1434. data/deps/share/OGRE/media/materials/textures/circuit.dds +0 -0
  1435. data/deps/share/OGRE/media/materials/textures/clouds.jpg +0 -0
  1436. data/deps/share/OGRE/media/materials/textures/cursor.png +0 -0
  1437. data/deps/share/OGRE/media/materials/textures/dark_grid.png +0 -0
  1438. data/deps/share/OGRE/media/materials/textures/dirt01.jpg +0 -0
  1439. data/deps/share/OGRE/media/materials/textures/dkyellow.png +0 -0
  1440. data/deps/share/OGRE/media/materials/textures/droplet.png +0 -0
  1441. data/deps/share/OGRE/media/materials/textures/egyptrockyfull.jpg +0 -0
  1442. data/deps/share/OGRE/media/materials/textures/flare.png +0 -0
  1443. data/deps/share/OGRE/media/materials/textures/flare_alpha.dds +0 -0
  1444. data/deps/share/OGRE/media/materials/textures/flaretrail.png +0 -0
  1445. data/deps/share/OGRE/media/materials/textures/frost.png +0 -0
  1446. data/deps/share/OGRE/media/materials/textures/fw12b.jpg +0 -0
  1447. data/deps/share/OGRE/media/materials/textures/gras_02.png +0 -0
  1448. data/deps/share/OGRE/media/materials/textures/grassWalpha.tga +0 -0
  1449. data/deps/share/OGRE/media/materials/textures/grass_1024.jpg +0 -0
  1450. data/deps/share/OGRE/media/materials/textures/img1.png +0 -0
  1451. data/deps/share/OGRE/media/materials/textures/img2.png +0 -0
  1452. data/deps/share/OGRE/media/materials/textures/leaf.png +0 -0
  1453. data/deps/share/OGRE/media/materials/textures/nm_bk.png +0 -0
  1454. data/deps/share/OGRE/media/materials/textures/nm_dn.png +0 -0
  1455. data/deps/share/OGRE/media/materials/textures/nm_fr.png +0 -0
  1456. data/deps/share/OGRE/media/materials/textures/nm_lf.png +0 -0
  1457. data/deps/share/OGRE/media/materials/textures/nm_rt.png +0 -0
  1458. data/deps/share/OGRE/media/materials/textures/nm_up.png +0 -0
  1459. data/deps/share/OGRE/media/materials/textures/normalNoiseColor.png +0 -0
  1460. data/deps/share/OGRE/media/materials/textures/nskingr.jpg +0 -0
  1461. data/deps/share/OGRE/media/materials/textures/nvidia/TextureUsageAgreement.txt +26 -0
  1462. data/deps/share/OGRE/media/materials/textures/nvidia/dirt_grayrocky_diffusespecular.dds +0 -0
  1463. data/deps/share/OGRE/media/materials/textures/nvidia/dirt_grayrocky_normalheight.dds +0 -0
  1464. data/deps/share/OGRE/media/materials/textures/nvidia/grass_green-01_diffusespecular.dds +0 -0
  1465. data/deps/share/OGRE/media/materials/textures/nvidia/grass_green-01_normalheight.dds +0 -0
  1466. data/deps/share/OGRE/media/materials/textures/nvidia/growth_weirdfungus-03_diffusespecular.dds +0 -0
  1467. data/deps/share/OGRE/media/materials/textures/nvidia/growth_weirdfungus-03_normalheight.dds +0 -0
  1468. data/deps/share/OGRE/media/materials/textures/ogreborder.png +0 -0
  1469. data/deps/share/OGRE/media/materials/textures/ogreborderUp.png +0 -0
  1470. data/deps/share/OGRE/media/materials/textures/ogrebordercenter.png +0 -0
  1471. data/deps/share/OGRE/media/materials/textures/ogregui.tga +0 -0
  1472. data/deps/share/OGRE/media/materials/textures/ogrelogo-small.jpg +0 -0
  1473. data/deps/share/OGRE/media/materials/textures/ogrelogo.png +0 -0
  1474. data/deps/share/OGRE/media/materials/textures/particle.dds +0 -0
  1475. data/deps/share/OGRE/media/materials/textures/penguin.jpg +0 -0
  1476. data/deps/share/OGRE/media/materials/textures/perlinvolume.dds +0 -0
  1477. data/deps/share/OGRE/media/materials/textures/r2skin.jpg +0 -0
  1478. data/deps/share/OGRE/media/materials/textures/radial.png +0 -0
  1479. data/deps/share/OGRE/media/materials/textures/random.png +0 -0
  1480. data/deps/share/OGRE/media/materials/textures/ribbonband.png +0 -0
  1481. data/deps/share/OGRE/media/materials/textures/rockwall.tga +0 -0
  1482. data/deps/share/OGRE/media/materials/textures/rockwall_NH.tga +0 -0
  1483. data/deps/share/OGRE/media/materials/textures/scr-back.png +0 -0
  1484. data/deps/share/OGRE/media/materials/textures/scr-down-p.png +0 -0
  1485. data/deps/share/OGRE/media/materials/textures/scr-down.png +0 -0
  1486. data/deps/share/OGRE/media/materials/textures/scr-thumb.png +0 -0
  1487. data/deps/share/OGRE/media/materials/textures/scr-up-p.png +0 -0
  1488. data/deps/share/OGRE/media/materials/textures/scr-up.png +0 -0
  1489. data/deps/share/OGRE/media/materials/textures/smoke.png +0 -0
  1490. data/deps/share/OGRE/media/materials/textures/smokecolors.png +0 -0
  1491. data/deps/share/OGRE/media/materials/textures/snow_1024.jpg +0 -0
  1492. data/deps/share/OGRE/media/materials/textures/spacesky.jpg +0 -0
  1493. data/deps/share/OGRE/media/materials/textures/spheremap.png +0 -0
  1494. data/deps/share/OGRE/media/materials/textures/spine_strips.dds +0 -0
  1495. data/deps/share/OGRE/media/materials/textures/spotlight_image.png +0 -0
  1496. data/deps/share/OGRE/media/materials/textures/steelhead.png +0 -0
  1497. data/deps/share/OGRE/media/materials/textures/strugotine.jpg +0 -0
  1498. data/deps/share/OGRE/media/materials/textures/terr_dirt-grass.jpg +0 -0
  1499. data/deps/share/OGRE/media/materials/textures/terr_rock-dirt.jpg +0 -0
  1500. data/deps/share/OGRE/media/materials/textures/terr_rock6.jpg +0 -0
  1501. data/deps/share/OGRE/media/materials/textures/terrain.png +0 -0
  1502. data/deps/share/OGRE/media/materials/textures/terrain_detail.jpg +0 -0
  1503. data/deps/share/OGRE/media/materials/textures/terrain_texture.jpg +0 -0
  1504. data/deps/share/OGRE/media/materials/textures/texmap2.jpg +0 -0
  1505. data/deps/share/OGRE/media/materials/textures/tusk.jpg +0 -0
  1506. data/deps/share/OGRE/media/materials/textures/waveNM.png +0 -0
  1507. data/deps/share/OGRE/media/materials/textures/waves2.dds +0 -0
  1508. data/deps/share/OGRE/media/materials/textures/white.bmp +0 -0
  1509. data/deps/share/OGRE/media/models/Barrel.mesh +0 -0
  1510. data/deps/share/OGRE/media/models/RZR-002.mesh +0 -0
  1511. data/deps/share/OGRE/media/models/ShaderSystem.mesh +0 -0
  1512. data/deps/share/OGRE/media/models/WoodPallet.mesh +0 -0
  1513. data/deps/share/OGRE/media/models/athene.mesh +0 -0
  1514. data/deps/share/OGRE/media/models/column.mesh +0 -0
  1515. data/deps/share/OGRE/media/models/cornell.mesh +0 -0
  1516. data/deps/share/OGRE/media/models/cube.mesh +0 -0
  1517. data/deps/share/OGRE/media/models/facial.mesh +0 -0
  1518. data/deps/share/OGRE/media/models/fish.mesh +0 -0
  1519. data/deps/share/OGRE/media/models/fish.skeleton +0 -0
  1520. data/deps/share/OGRE/media/models/geosphere4500.mesh +0 -0
  1521. data/deps/share/OGRE/media/models/geosphere8000.mesh +0 -0
  1522. data/deps/share/OGRE/media/models/jaiqua.mesh +0 -0
  1523. data/deps/share/OGRE/media/models/jaiqua.skeleton +0 -0
  1524. data/deps/share/OGRE/media/models/knot.mesh +0 -0
  1525. data/deps/share/OGRE/media/models/ninja.mesh +0 -0
  1526. data/deps/share/OGRE/media/models/ninja.skeleton +0 -0
  1527. data/deps/share/OGRE/media/models/ogrehead.mesh +0 -0
  1528. data/deps/share/OGRE/media/models/penguin.mesh +0 -0
  1529. data/deps/share/OGRE/media/models/penguin.skeleton +0 -0
  1530. data/deps/share/OGRE/media/models/razor.mesh +0 -0
  1531. data/deps/share/OGRE/media/models/robot.mesh +0 -0
  1532. data/deps/share/OGRE/media/models/robot.skeleton +0 -0
  1533. data/deps/share/OGRE/media/models/sibenik.mesh +0 -0
  1534. data/deps/share/OGRE/media/models/sphere.mesh +0 -0
  1535. data/deps/share/OGRE/media/models/spine.mesh +0 -0
  1536. data/deps/share/OGRE/media/models/spine.mesh.skeleton +0 -0
  1537. data/deps/share/OGRE/media/models/tudorhouse.mesh +0 -0
  1538. data/deps/share/OGRE/media/packs/SdkTrays.zip +0 -0
  1539. data/deps/share/OGRE/media/packs/Sinbad.zip +0 -0
  1540. data/deps/share/OGRE/media/packs/chiropteraDM.pk3 +0 -0
  1541. data/deps/share/OGRE/media/packs/chiropteraDM.txt +99 -0
  1542. data/deps/share/OGRE/media/packs/cubemap.zip +0 -0
  1543. data/deps/share/OGRE/media/packs/cubemapsJS.zip +0 -0
  1544. data/deps/share/OGRE/media/packs/dragon.zip +0 -0
  1545. data/deps/share/OGRE/media/packs/fresneldemo.zip +0 -0
  1546. data/deps/share/OGRE/media/packs/ogredance.zip +0 -0
  1547. data/deps/share/OGRE/media/packs/ogretestmap.zip +0 -0
  1548. data/deps/share/OGRE/media/packs/skybox.zip +0 -0
  1549. data/deps/share/OGRE/media/particle/Examples-Water.particle +35 -0
  1550. data/deps/share/OGRE/media/particle/Examples.particle +381 -0
  1551. data/deps/share/OGRE/media/particle/emitted_emitter.particle +56 -0
  1552. data/deps/share/OGRE/media/particle/smoke.particle +44 -0
  1553. data/deps/share/OGRE/media/terrain.cfg +71 -0
  1554. data/deps/share/OGRE/media/thumbnails/thumb_bezier.png +0 -0
  1555. data/deps/share/OGRE/media/thumbnails/thumb_bsp.png +0 -0
  1556. data/deps/share/OGRE/media/thumbnails/thumb_bump.png +0 -0
  1557. data/deps/share/OGRE/media/thumbnails/thumb_camtrack.png +0 -0
  1558. data/deps/share/OGRE/media/thumbnails/thumb_cel.png +0 -0
  1559. data/deps/share/OGRE/media/thumbnails/thumb_char.png +0 -0
  1560. data/deps/share/OGRE/media/thumbnails/thumb_comp.png +0 -0
  1561. data/deps/share/OGRE/media/thumbnails/thumb_cubemap.png +0 -0
  1562. data/deps/share/OGRE/media/thumbnails/thumb_deferred.png +0 -0
  1563. data/deps/share/OGRE/media/thumbnails/thumb_dualquaternionskinning.png +0 -0
  1564. data/deps/share/OGRE/media/thumbnails/thumb_dyntex.png +0 -0
  1565. data/deps/share/OGRE/media/thumbnails/thumb_error.png +0 -0
  1566. data/deps/share/OGRE/media/thumbnails/thumb_facial.png +0 -0
  1567. data/deps/share/OGRE/media/thumbnails/thumb_fresnel.png +0 -0
  1568. data/deps/share/OGRE/media/thumbnails/thumb_grass.png +0 -0
  1569. data/deps/share/OGRE/media/thumbnails/thumb_instancing.png +0 -0
  1570. data/deps/share/OGRE/media/thumbnails/thumb_isosurf.png +0 -0
  1571. data/deps/share/OGRE/media/thumbnails/thumb_lighting.png +0 -0
  1572. data/deps/share/OGRE/media/thumbnails/thumb_newinstancing.png +0 -0
  1573. data/deps/share/OGRE/media/thumbnails/thumb_ocean.png +0 -0
  1574. data/deps/share/OGRE/media/thumbnails/thumb_particlegs.png +0 -0
  1575. data/deps/share/OGRE/media/thumbnails/thumb_particles.png +0 -0
  1576. data/deps/share/OGRE/media/thumbnails/thumb_playpen.png +0 -0
  1577. data/deps/share/OGRE/media/thumbnails/thumb_shadersystem.png +0 -0
  1578. data/deps/share/OGRE/media/thumbnails/thumb_shadows.png +0 -0
  1579. data/deps/share/OGRE/media/thumbnails/thumb_skelanim.png +0 -0
  1580. data/deps/share/OGRE/media/thumbnails/thumb_skybox.png +0 -0
  1581. data/deps/share/OGRE/media/thumbnails/thumb_skydome.png +0 -0
  1582. data/deps/share/OGRE/media/thumbnails/thumb_skyplane.png +0 -0
  1583. data/deps/share/OGRE/media/thumbnails/thumb_smoke.png +0 -0
  1584. data/deps/share/OGRE/media/thumbnails/thumb_spheremap.png +0 -0
  1585. data/deps/share/OGRE/media/thumbnails/thumb_ssao.png +0 -0
  1586. data/deps/share/OGRE/media/thumbnails/thumb_terrain.png +0 -0
  1587. data/deps/share/OGRE/media/thumbnails/thumb_texarray.png +0 -0
  1588. data/deps/share/OGRE/media/thumbnails/thumb_texfx.png +0 -0
  1589. data/deps/share/OGRE/media/thumbnails/thumb_trans.png +0 -0
  1590. data/deps/share/OGRE/media/thumbnails/thumb_visual_tests.png +0 -0
  1591. data/deps/share/OGRE/media/thumbnails/thumb_voltex.png +0 -0
  1592. data/deps/share/OGRE/media/thumbnails/thumb_water.png +0 -0
  1593. data/lib/OIS.so +0 -0
  1594. data/lib/Ogre.so +0 -0
  1595. data/lib/OgreBites.so +0 -0
  1596. data/lib/OgreConfig.rb +37 -0
  1597. data/lib/Procedural.so +0 -0
  1598. data/lib/Version.rb +5 -0
  1599. data/sample/Charactor/CameraMover.rb +184 -0
  1600. data/sample/Charactor/Sinbad.rb +246 -0
  1601. data/sample/Charactor/SinbadCharacter.rb +379 -0
  1602. data/sample/Charactor/UiListener.rb +65 -0
  1603. data/sample/Charactor/plugins.cfg +17 -0
  1604. data/sample/Charactor/resources.cfg +22 -0
  1605. data/sample/Charactor/sinbad +5 -0
  1606. data/sample/Charactor/sinbad.win +5 -0
  1607. metadata +1651 -0
@@ -0,0 +1,3168 @@
1
+ /*
2
+ -----------------------------------------------------------------------------
3
+ This source file is part of OGRE
4
+ (Object-oriented Graphics Rendering Engine)
5
+ For the latest info, see http://www.ogre3d.org/
6
+
7
+ Copyright (c) 2000-2012 Torus Knot Software Ltd
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+ -----------------------------------------------------------------------------
27
+ */
28
+ #ifndef __SdkTrays_H__
29
+ #define __SdkTrays_H__
30
+
31
+ #include "Ogre.h"
32
+ #include "OgreFontManager.h"
33
+ #include "OgreBorderPanelOverlayElement.h"
34
+ #include "OgreTextAreaOverlayElement.h"
35
+ #include <math.h>
36
+
37
+ #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
38
+ #include "OgreStringSerialiser.h"
39
+ #endif
40
+ #include "OgreTimer.h"
41
+
42
+ #if OGRE_COMPILER == OGRE_COMPILER_MSVC
43
+ // TODO - remove this
44
+ # pragma warning (disable : 4244)
45
+ #endif
46
+
47
+ #if OGRE_UNICODE_SUPPORT
48
+ #define DISPLAY_STRING_TO_STRING(DS) (DS.asUTF8())
49
+ #else
50
+ #define DISPLAY_STRING_TO_STRING(DS) (DS)
51
+ #endif
52
+ namespace OgreBites
53
+ {
54
+ enum TrayLocation // enumerator values for widget tray anchoring locations
55
+ {
56
+ TL_TOPLEFT,
57
+ TL_TOP,
58
+ TL_TOPRIGHT,
59
+ TL_LEFT,
60
+ TL_CENTER,
61
+ TL_RIGHT,
62
+ TL_BOTTOMLEFT,
63
+ TL_BOTTOM,
64
+ TL_BOTTOMRIGHT,
65
+ TL_NONE
66
+ };
67
+
68
+ enum ButtonState // enumerator values for button states
69
+ {
70
+ BS_UP,
71
+ BS_OVER,
72
+ BS_DOWN
73
+ };
74
+
75
+ // forward widget class declarations
76
+ class Widget;
77
+ class Button;
78
+ class SelectMenu;
79
+ class Label;
80
+ class Slider;
81
+ class CheckBox;
82
+
83
+ /*=============================================================================
84
+ | Listener class for responding to tray events.
85
+ =============================================================================*/
86
+ class SdkTrayListener
87
+ {
88
+ public:
89
+
90
+ virtual ~SdkTrayListener() {}
91
+ virtual void buttonHit(Button* button) {}
92
+ virtual void itemSelected(SelectMenu* menu) {}
93
+ virtual void labelHit(Label* label) {}
94
+ virtual void sliderMoved(Slider* slider) {}
95
+ virtual void checkBoxToggled(CheckBox* box) {}
96
+ virtual void okDialogClosed(const Ogre::DisplayString& message) {}
97
+ virtual void yesNoDialogClosed(const Ogre::DisplayString& question, bool yesHit) {}
98
+ };
99
+
100
+ /*=============================================================================
101
+ | Abstract base class for all widgets.
102
+ =============================================================================*/
103
+ class Widget
104
+ {
105
+ public:
106
+
107
+ Widget()
108
+ {
109
+ mTrayLoc = TL_NONE;
110
+ mElement = 0;
111
+ mListener = 0;
112
+ }
113
+
114
+ virtual ~Widget() {}
115
+
116
+ void cleanup()
117
+ {
118
+ if (mElement) nukeOverlayElement(mElement);
119
+ mElement = 0;
120
+ }
121
+
122
+ /*-----------------------------------------------------------------------------
123
+ | Static utility method to recursively delete an overlay element plus
124
+ | all of its children from the system.
125
+ -----------------------------------------------------------------------------*/
126
+ static void nukeOverlayElement(Ogre::OverlayElement* element)
127
+ {
128
+ Ogre::OverlayContainer* container = dynamic_cast<Ogre::OverlayContainer*>(element);
129
+ if (container)
130
+ {
131
+ std::vector<Ogre::OverlayElement*> toDelete;
132
+
133
+ Ogre::OverlayContainer::ChildIterator children = container->getChildIterator();
134
+ while (children.hasMoreElements())
135
+ {
136
+ toDelete.push_back(children.getNext());
137
+ }
138
+
139
+ for (unsigned int i = 0; i < toDelete.size(); i++)
140
+ {
141
+ nukeOverlayElement(toDelete[i]);
142
+ }
143
+ }
144
+ if (element)
145
+ {
146
+ Ogre::OverlayContainer* parent = element->getParent();
147
+ if (parent) parent->removeChild(element->getName());
148
+ Ogre::OverlayManager::getSingleton().destroyOverlayElement(element);
149
+ }
150
+ }
151
+
152
+ /*-----------------------------------------------------------------------------
153
+ | Static utility method to check if the cursor is over an overlay element.
154
+ -----------------------------------------------------------------------------*/
155
+ static bool isCursorOver(Ogre::OverlayElement* element, const Ogre::Vector2& cursorPos, Ogre::Real voidBorder = 0)
156
+ {
157
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
158
+ Ogre::Real l = element->_getDerivedLeft() * om.getViewportWidth();
159
+ Ogre::Real t = element->_getDerivedTop() * om.getViewportHeight();
160
+ Ogre::Real r = l + element->getWidth();
161
+ Ogre::Real b = t + element->getHeight();
162
+
163
+ return (cursorPos.x >= l + voidBorder && cursorPos.x <= r - voidBorder &&
164
+ cursorPos.y >= t + voidBorder && cursorPos.y <= b - voidBorder);
165
+ }
166
+
167
+ /*-----------------------------------------------------------------------------
168
+ | Static utility method used to get the cursor's offset from the center
169
+ | of an overlay element in pixels.
170
+ -----------------------------------------------------------------------------*/
171
+ static Ogre::Vector2 cursorOffset(Ogre::OverlayElement* element, const Ogre::Vector2& cursorPos)
172
+ {
173
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
174
+ return Ogre::Vector2(cursorPos.x - (element->_getDerivedLeft() * om.getViewportWidth() + element->getWidth() / 2),
175
+ cursorPos.y - (element->_getDerivedTop() * om.getViewportHeight() + element->getHeight() / 2));
176
+ }
177
+
178
+ /*-----------------------------------------------------------------------------
179
+ | Static utility method used to get the width of a caption in a text area.
180
+ -----------------------------------------------------------------------------*/
181
+ static Ogre::Real getCaptionWidth(const Ogre::DisplayString& caption, Ogre::TextAreaOverlayElement* area)
182
+ {
183
+ Ogre::Font* font = (Ogre::Font*)Ogre::FontManager::getSingleton().getByName(area->getFontName()).getPointer();
184
+ Ogre::String current = DISPLAY_STRING_TO_STRING(caption);
185
+ Ogre::Real lineWidth = 0;
186
+
187
+ for (unsigned int i = 0; i < current.length(); i++)
188
+ {
189
+ // be sure to provide a line width in the text area
190
+ if (current[i] == ' ')
191
+ {
192
+ if (area->getSpaceWidth() != 0) lineWidth += area->getSpaceWidth();
193
+ else lineWidth += font->getGlyphAspectRatio(' ') * area->getCharHeight();
194
+ }
195
+ else if (current[i] == '\n') break;
196
+ // use glyph information to calculate line width
197
+ else lineWidth += font->getGlyphAspectRatio(current[i]) * area->getCharHeight();
198
+ }
199
+
200
+ return (unsigned int)lineWidth;
201
+ }
202
+
203
+ /*-----------------------------------------------------------------------------
204
+ | Static utility method to cut off a string to fit in a text area.
205
+ -----------------------------------------------------------------------------*/
206
+ static void fitCaptionToArea(const Ogre::DisplayString& caption, Ogre::TextAreaOverlayElement* area, Ogre::Real maxWidth)
207
+ {
208
+ Ogre::Font* f = (Ogre::Font*)Ogre::FontManager::getSingleton().getByName(area->getFontName()).getPointer();
209
+ Ogre::String s = DISPLAY_STRING_TO_STRING(caption);
210
+
211
+ int nl = s.find('\n');
212
+ if (nl != -1) s = s.substr(0, nl);
213
+
214
+ Ogre::Real width = 0;
215
+
216
+ for (unsigned int i = 0; i < s.length(); i++)
217
+ {
218
+ if (s[i] == ' ' && area->getSpaceWidth() != 0) width += area->getSpaceWidth();
219
+ else width += f->getGlyphAspectRatio(s[i]) * area->getCharHeight();
220
+ if (width > maxWidth)
221
+ {
222
+ s = s.substr(0, i);
223
+ break;
224
+ }
225
+ }
226
+
227
+ area->setCaption(s);
228
+ }
229
+
230
+ Ogre::OverlayElement* getOverlayElement()
231
+ {
232
+ return mElement;
233
+ }
234
+
235
+ const Ogre::String& getName()
236
+ {
237
+ return mElement->getName();
238
+ }
239
+
240
+ TrayLocation getTrayLocation()
241
+ {
242
+ return mTrayLoc;
243
+ }
244
+
245
+ void hide()
246
+ {
247
+ mElement->hide();
248
+ }
249
+
250
+ void show()
251
+ {
252
+ mElement->show();
253
+ }
254
+
255
+ bool isVisible()
256
+ {
257
+ return mElement->isVisible();
258
+ }
259
+
260
+ // callbacks
261
+
262
+ virtual void _cursorPressed(const Ogre::Vector2& cursorPos) {}
263
+ virtual void _cursorReleased(const Ogre::Vector2& cursorPos) {}
264
+ virtual void _cursorMoved(const Ogre::Vector2& cursorPos) {}
265
+ virtual void _focusLost() {}
266
+
267
+ // internal methods used by SdkTrayManager. do not call directly.
268
+
269
+ void _assignToTray(TrayLocation trayLoc) { mTrayLoc = trayLoc; }
270
+ void _assignListener(SdkTrayListener* listener) { mListener = listener; }
271
+
272
+ protected:
273
+
274
+ Ogre::OverlayElement* mElement;
275
+ TrayLocation mTrayLoc;
276
+ SdkTrayListener* mListener;
277
+ };
278
+
279
+ typedef std::vector<Widget*> WidgetList;
280
+ typedef Ogre::VectorIterator<WidgetList> WidgetIterator;
281
+
282
+ /*=============================================================================
283
+ | Basic button class.
284
+ =============================================================================*/
285
+ class Button : public Widget
286
+ {
287
+ public:
288
+
289
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
290
+ Button(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width)
291
+ {
292
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate("SdkTrays/Button", "BorderPanel", name);
293
+ mBP = (Ogre::BorderPanelOverlayElement*)mElement;
294
+ mTextArea = (Ogre::TextAreaOverlayElement*)mBP->getChild(mBP->getName() + "/ButtonCaption");
295
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
296
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
297
+ #endif
298
+ mTextArea->setTop(-(mTextArea->getCharHeight() / 2));
299
+
300
+ if (width > 0)
301
+ {
302
+ mElement->setWidth(width);
303
+ mFitToContents = false;
304
+ }
305
+ else mFitToContents = true;
306
+
307
+ setCaption(caption);
308
+ mState = BS_UP;
309
+ }
310
+
311
+ virtual ~Button() {}
312
+
313
+ const Ogre::DisplayString& getCaption()
314
+ {
315
+ return mTextArea->getCaption();
316
+ }
317
+
318
+ void setCaption(const Ogre::DisplayString& caption)
319
+ {
320
+ mTextArea->setCaption(caption);
321
+ if (mFitToContents) mElement->setWidth(getCaptionWidth(caption, mTextArea) + mElement->getHeight() - 12);
322
+ }
323
+
324
+ const ButtonState& getState() { return mState; }
325
+
326
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
327
+ {
328
+ if (isCursorOver(mElement, cursorPos, 4)) setState(BS_DOWN);
329
+ }
330
+
331
+ void _cursorReleased(const Ogre::Vector2& cursorPos)
332
+ {
333
+ if (mState == BS_DOWN)
334
+ {
335
+ setState(BS_OVER);
336
+ if (mListener) mListener->buttonHit(this);
337
+ }
338
+ }
339
+
340
+ void _cursorMoved(const Ogre::Vector2& cursorPos)
341
+ {
342
+ if (isCursorOver(mElement, cursorPos, 4))
343
+ {
344
+ if (mState == BS_UP) setState(BS_OVER);
345
+ }
346
+ else
347
+ {
348
+ if (mState != BS_UP) setState(BS_UP);
349
+ }
350
+ }
351
+
352
+ void _focusLost()
353
+ {
354
+ setState(BS_UP); // reset button if cursor was lost
355
+ }
356
+
357
+ protected:
358
+
359
+ void setState(const ButtonState& bs)
360
+ {
361
+ if (bs == BS_OVER)
362
+ {
363
+ mBP->setBorderMaterialName("SdkTrays/Button/Over");
364
+ mBP->setMaterialName("SdkTrays/Button/Over");
365
+ }
366
+ else if (bs == BS_UP)
367
+ {
368
+ mBP->setBorderMaterialName("SdkTrays/Button/Up");
369
+ mBP->setMaterialName("SdkTrays/Button/Up");
370
+ }
371
+ else
372
+ {
373
+ mBP->setBorderMaterialName("SdkTrays/Button/Down");
374
+ mBP->setMaterialName("SdkTrays/Button/Down");
375
+ }
376
+
377
+ mState = bs;
378
+ }
379
+
380
+ ButtonState mState;
381
+ Ogre::BorderPanelOverlayElement* mBP;
382
+ Ogre::TextAreaOverlayElement* mTextArea;
383
+ bool mFitToContents;
384
+ };
385
+
386
+ /*=============================================================================
387
+ | Scrollable text box widget.
388
+ =============================================================================*/
389
+ class TextBox : public Widget
390
+ {
391
+ public:
392
+
393
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
394
+ TextBox(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width, Ogre::Real height)
395
+ {
396
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate("SdkTrays/TextBox", "BorderPanel", name);
397
+ mElement->setWidth(width);
398
+ mElement->setHeight(height);
399
+ Ogre::OverlayContainer* container = (Ogre::OverlayContainer*)mElement;
400
+ mTextArea = (Ogre::TextAreaOverlayElement*)container->getChild(getName() + "/TextBoxText");
401
+ mCaptionBar = (Ogre::BorderPanelOverlayElement*)container->getChild(getName() + "/TextBoxCaptionBar");
402
+ mCaptionBar->setWidth(width - 4);
403
+ mCaptionTextArea = (Ogre::TextAreaOverlayElement*)mCaptionBar->getChild(mCaptionBar->getName() + "/TextBoxCaption");
404
+ setCaption(caption);
405
+ mScrollTrack = (Ogre::BorderPanelOverlayElement*)container->getChild(getName() + "/TextBoxScrollTrack");
406
+ mScrollHandle = (Ogre::PanelOverlayElement*)mScrollTrack->getChild(mScrollTrack->getName() + "/TextBoxScrollHandle");
407
+ mScrollHandle->hide();
408
+ mDragging = false;
409
+ mScrollPercentage = 0;
410
+ mStartingLine = 0;
411
+ mPadding = 15;
412
+ mText = "";
413
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
414
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
415
+ mCaptionTextArea->setCharHeight(mCaptionTextArea->getCharHeight() - 3);
416
+ #endif
417
+ refitContents();
418
+ }
419
+
420
+ void setPadding(Ogre::Real padding)
421
+ {
422
+ mPadding = padding;
423
+ refitContents();
424
+ }
425
+
426
+ Ogre::Real getPadding()
427
+ {
428
+ return mPadding;
429
+ }
430
+
431
+ const Ogre::DisplayString& getCaption()
432
+ {
433
+ return mCaptionTextArea->getCaption();
434
+ }
435
+
436
+ void setCaption(const Ogre::DisplayString& caption)
437
+ {
438
+ mCaptionTextArea->setCaption(caption);
439
+ }
440
+
441
+ const Ogre::DisplayString& getText()
442
+ {
443
+ return mText;
444
+ }
445
+
446
+ /*-----------------------------------------------------------------------------
447
+ | Sets text box content. Most of this method is for wordwrap.
448
+ -----------------------------------------------------------------------------*/
449
+ void setText(const Ogre::DisplayString& text)
450
+ {
451
+ mText = text;
452
+ mLines.clear();
453
+
454
+ Ogre::Font* font = (Ogre::Font*)Ogre::FontManager::getSingleton().getByName(mTextArea->getFontName()).getPointer();
455
+
456
+ Ogre::String current = DISPLAY_STRING_TO_STRING(text);
457
+ bool firstWord = true;
458
+ unsigned int lastSpace = 0;
459
+ unsigned int lineBegin = 0;
460
+ Ogre::Real lineWidth = 0;
461
+ Ogre::Real rightBoundary = mElement->getWidth() - 2 * mPadding + mScrollTrack->getLeft() + 10;
462
+
463
+ for (unsigned int i = 0; i < current.length(); i++)
464
+ {
465
+ if (current[i] == ' ')
466
+ {
467
+ if (mTextArea->getSpaceWidth() != 0) lineWidth += mTextArea->getSpaceWidth();
468
+ else lineWidth += font->getGlyphAspectRatio(' ') * mTextArea->getCharHeight();
469
+ firstWord = false;
470
+ lastSpace = i;
471
+ }
472
+ else if (current[i] == '\n')
473
+ {
474
+ firstWord = true;
475
+ lineWidth = 0;
476
+ mLines.push_back(current.substr(lineBegin, i - lineBegin));
477
+ lineBegin = i + 1;
478
+ }
479
+ else
480
+ {
481
+ // use glyph information to calculate line width
482
+ lineWidth += font->getGlyphAspectRatio(current[i]) * mTextArea->getCharHeight();
483
+ if (lineWidth > rightBoundary)
484
+ {
485
+ if (firstWord)
486
+ {
487
+ current.insert(i, "\n");
488
+ i = i - 1;
489
+ }
490
+ else
491
+ {
492
+ current[lastSpace] = '\n';
493
+ i = lastSpace - 1;
494
+ }
495
+ }
496
+ }
497
+ }
498
+
499
+ mLines.push_back(current.substr(lineBegin));
500
+
501
+ unsigned int maxLines = getHeightInLines();
502
+
503
+ if (mLines.size() > maxLines) // if too much text, filter based on scroll percentage
504
+ {
505
+ mScrollHandle->show();
506
+ filterLines();
507
+ }
508
+ else // otherwise just show all the text
509
+ {
510
+ mTextArea->setCaption(current);
511
+ mScrollHandle->hide();
512
+ mScrollPercentage = 0;
513
+ mScrollHandle->setTop(0);
514
+ }
515
+ }
516
+
517
+ /*-----------------------------------------------------------------------------
518
+ | Sets text box content horizontal alignment.
519
+ -----------------------------------------------------------------------------*/
520
+ void setTextAlignment(Ogre::TextAreaOverlayElement::Alignment ta)
521
+ {
522
+ if (ta == Ogre::TextAreaOverlayElement::Left) mTextArea->setHorizontalAlignment(Ogre::GHA_LEFT);
523
+ else if (ta == Ogre::TextAreaOverlayElement::Center) mTextArea->setHorizontalAlignment(Ogre::GHA_CENTER);
524
+ else mTextArea->setHorizontalAlignment(Ogre::GHA_RIGHT);
525
+ refitContents();
526
+ }
527
+
528
+ void clearText()
529
+ {
530
+ setText("");
531
+ }
532
+
533
+ void appendText(const Ogre::DisplayString& text)
534
+ {
535
+ setText(getText() + text);
536
+ }
537
+
538
+ /*-----------------------------------------------------------------------------
539
+ | Makes adjustments based on new padding, size, or alignment info.
540
+ -----------------------------------------------------------------------------*/
541
+ void refitContents()
542
+ {
543
+ mScrollTrack->setHeight(mElement->getHeight() - mCaptionBar->getHeight() - 20);
544
+ mScrollTrack->setTop(mCaptionBar->getHeight() + 10);
545
+
546
+ mTextArea->setTop(mCaptionBar->getHeight() + mPadding - 5);
547
+ if (mTextArea->getHorizontalAlignment() == Ogre::GHA_RIGHT) mTextArea->setLeft(-mPadding + mScrollTrack->getLeft());
548
+ else if (mTextArea->getHorizontalAlignment() == Ogre::GHA_LEFT) mTextArea->setLeft(mPadding);
549
+ else mTextArea->setLeft(mScrollTrack->getLeft() / 2);
550
+
551
+ setText(getText());
552
+ }
553
+
554
+ /*-----------------------------------------------------------------------------
555
+ | Sets how far scrolled down the text is as a percentage.
556
+ -----------------------------------------------------------------------------*/
557
+ void setScrollPercentage(Ogre::Real percentage)
558
+ {
559
+ mScrollPercentage = Ogre::Math::Clamp<Ogre::Real>(percentage, 0, 1);
560
+ mScrollHandle->setTop((int)(percentage * (mScrollTrack->getHeight() - mScrollHandle->getHeight())));
561
+ filterLines();
562
+ }
563
+
564
+ /*-----------------------------------------------------------------------------
565
+ | Gets how far scrolled down the text is as a percentage.
566
+ -----------------------------------------------------------------------------*/
567
+ Ogre::Real getScrollPercentage()
568
+ {
569
+ return mScrollPercentage;
570
+ }
571
+
572
+ /*-----------------------------------------------------------------------------
573
+ | Gets how many lines of text can fit in this window.
574
+ -----------------------------------------------------------------------------*/
575
+ unsigned int getHeightInLines()
576
+ {
577
+ return (unsigned int) ((mElement->getHeight() - 2 * mPadding - mCaptionBar->getHeight() + 5) / mTextArea->getCharHeight());
578
+ }
579
+
580
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
581
+ {
582
+ if (!mScrollHandle->isVisible()) return; // don't care about clicks if text not scrollable
583
+
584
+ Ogre::Vector2 co = Widget::cursorOffset(mScrollHandle, cursorPos);
585
+
586
+ if (co.squaredLength() <= 81)
587
+ {
588
+ mDragging = true;
589
+ mDragOffset = co.y;
590
+ }
591
+ else if (Widget::isCursorOver(mScrollTrack, cursorPos))
592
+ {
593
+ Ogre::Real newTop = mScrollHandle->getTop() + co.y;
594
+ Ogre::Real lowerBoundary = mScrollTrack->getHeight() - mScrollHandle->getHeight();
595
+ mScrollHandle->setTop(Ogre::Math::Clamp<int>((int)newTop, 0, (int)lowerBoundary));
596
+
597
+ // update text area contents based on new scroll percentage
598
+ mScrollPercentage = Ogre::Math::Clamp<Ogre::Real>(newTop / lowerBoundary, 0, 1);
599
+ filterLines();
600
+ }
601
+ }
602
+
603
+ void _cursorReleased(const Ogre::Vector2& cursorPos)
604
+ {
605
+ mDragging = false;
606
+ }
607
+
608
+ void _cursorMoved(const Ogre::Vector2& cursorPos)
609
+ {
610
+ if (mDragging)
611
+ {
612
+ Ogre::Vector2 co = Widget::cursorOffset(mScrollHandle, cursorPos);
613
+ Ogre::Real newTop = mScrollHandle->getTop() + co.y - mDragOffset;
614
+ Ogre::Real lowerBoundary = mScrollTrack->getHeight() - mScrollHandle->getHeight();
615
+ mScrollHandle->setTop(Ogre::Math::Clamp<int>((int)newTop, 0, (int)lowerBoundary));
616
+
617
+ // update text area contents based on new scroll percentage
618
+ mScrollPercentage = Ogre::Math::Clamp<Ogre::Real>(newTop / lowerBoundary, 0, 1);
619
+ filterLines();
620
+ }
621
+ }
622
+
623
+ void _focusLost()
624
+ {
625
+ mDragging = false; // stop dragging if cursor was lost
626
+ }
627
+
628
+ protected:
629
+
630
+ /*-----------------------------------------------------------------------------
631
+ | Decides which lines to show.
632
+ -----------------------------------------------------------------------------*/
633
+ void filterLines()
634
+ {
635
+ Ogre::String shown = "";
636
+ unsigned int maxLines = getHeightInLines();
637
+ unsigned int newStart = (unsigned int) (mScrollPercentage * (mLines.size() - maxLines) + 0.5);
638
+
639
+ mStartingLine = newStart;
640
+
641
+ for (unsigned int i = 0; i < maxLines; i++)
642
+ {
643
+ shown += mLines[mStartingLine + i] + "\n";
644
+ }
645
+
646
+ mTextArea->setCaption(shown); // show just the filtered lines
647
+ }
648
+
649
+ Ogre::TextAreaOverlayElement* mTextArea;
650
+ Ogre::BorderPanelOverlayElement* mCaptionBar;
651
+ Ogre::TextAreaOverlayElement* mCaptionTextArea;
652
+ Ogre::BorderPanelOverlayElement* mScrollTrack;
653
+ Ogre::PanelOverlayElement* mScrollHandle;
654
+ Ogre::DisplayString mText;
655
+ Ogre::StringVector mLines;
656
+ Ogre::Real mPadding;
657
+ bool mDragging;
658
+ Ogre::Real mScrollPercentage;
659
+ Ogre::Real mDragOffset;
660
+ unsigned int mStartingLine;
661
+ };
662
+
663
+ /*=============================================================================
664
+ | Basic selection menu widget.
665
+ =============================================================================*/
666
+ class SelectMenu : public Widget
667
+ {
668
+ public:
669
+
670
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
671
+ SelectMenu(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width,
672
+ Ogre::Real boxWidth, unsigned int maxItemsShown)
673
+ : mHighlightIndex(0)
674
+ , mDisplayIndex(0)
675
+ , mDragOffset(0.0f)
676
+ {
677
+ mSelectionIndex = -1;
678
+ mFitToContents = false;
679
+ mCursorOver = false;
680
+ mExpanded = false;
681
+ mDragging = false;
682
+ mMaxItemsShown = maxItemsShown;
683
+ mItemsShown = 0;
684
+ mElement = (Ogre::BorderPanelOverlayElement*)Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
685
+ ("SdkTrays/SelectMenu", "BorderPanel", name);
686
+ mTextArea = (Ogre::TextAreaOverlayElement*)((Ogre::OverlayContainer*)mElement)->getChild(name + "/MenuCaption");
687
+ mSmallBox = (Ogre::BorderPanelOverlayElement*)((Ogre::OverlayContainer*)mElement)->getChild(name + "/MenuSmallBox");
688
+ mSmallBox->setWidth(width - 10);
689
+ mSmallTextArea = (Ogre::TextAreaOverlayElement*)mSmallBox->getChild(name + "/MenuSmallBox/MenuSmallText");
690
+ mElement->setWidth(width);
691
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
692
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
693
+ mSmallTextArea->setCharHeight(mSmallTextArea->getCharHeight() - 3);
694
+ #endif
695
+
696
+ if (boxWidth > 0) // long style
697
+ {
698
+ if (width <= 0) mFitToContents = true;
699
+ mSmallBox->setWidth(boxWidth);
700
+ mSmallBox->setTop(2);
701
+ mSmallBox->setLeft(width - boxWidth - 5);
702
+ mElement->setHeight(mSmallBox->getHeight() + 4);
703
+ mTextArea->setHorizontalAlignment(Ogre::GHA_LEFT);
704
+ mTextArea->setAlignment(Ogre::TextAreaOverlayElement::Left);
705
+ mTextArea->setLeft(12);
706
+ mTextArea->setTop(10);
707
+ }
708
+
709
+ mExpandedBox = (Ogre::BorderPanelOverlayElement*)((Ogre::OverlayContainer*)mElement)->getChild(name + "/MenuExpandedBox");
710
+ mExpandedBox->setWidth(mSmallBox->getWidth() + 10);
711
+ mExpandedBox->hide();
712
+ mScrollTrack = (Ogre::BorderPanelOverlayElement*)mExpandedBox->getChild(mExpandedBox->getName() + "/MenuScrollTrack");
713
+ mScrollHandle = (Ogre::PanelOverlayElement*)mScrollTrack->getChild(mScrollTrack->getName() + "/MenuScrollHandle");
714
+
715
+ setCaption(caption);
716
+ }
717
+
718
+ bool isExpanded()
719
+ {
720
+ return mExpanded;
721
+ }
722
+
723
+ const Ogre::DisplayString& getCaption()
724
+ {
725
+ return mTextArea->getCaption();
726
+ }
727
+
728
+ void setCaption(const Ogre::DisplayString& caption)
729
+ {
730
+ mTextArea->setCaption(caption);
731
+ if (mFitToContents)
732
+ {
733
+ mElement->setWidth(getCaptionWidth(caption, mTextArea) + mSmallBox->getWidth() + 23);
734
+ mSmallBox->setLeft(mElement->getWidth() - mSmallBox->getWidth() - 5);
735
+ }
736
+ }
737
+
738
+ const Ogre::StringVector& getItems()
739
+ {
740
+ return mItems;
741
+ }
742
+
743
+ unsigned int getNumItems()
744
+ {
745
+ return mItems.size();
746
+ }
747
+
748
+ void setItems(const Ogre::StringVector& items)
749
+ {
750
+ mItems = items;
751
+ mSelectionIndex = -1;
752
+
753
+ for (unsigned int i = 0; i < mItemElements.size(); i++) // destroy all the item elements
754
+ {
755
+ nukeOverlayElement(mItemElements[i]);
756
+ }
757
+ mItemElements.clear();
758
+
759
+ mItemsShown = std::max<int>(2, std::min<int>(mMaxItemsShown, mItems.size()));
760
+
761
+ for (unsigned int i = 0; i < mItemsShown; i++) // create all the item elements
762
+ {
763
+ Ogre::BorderPanelOverlayElement* e =
764
+ (Ogre::BorderPanelOverlayElement*)Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
765
+ ("SdkTrays/SelectMenuItem", "BorderPanel",
766
+ mExpandedBox->getName() + "/Item" + Ogre::StringConverter::toString(i + 1));
767
+
768
+ e->setTop(6 + i * (mSmallBox->getHeight() - 8));
769
+ e->setWidth(mExpandedBox->getWidth() - 32);
770
+
771
+ mExpandedBox->addChild(e);
772
+ mItemElements.push_back(e);
773
+ }
774
+
775
+ if (!items.empty()) selectItem(0, false);
776
+ else mSmallTextArea->setCaption("");
777
+ }
778
+
779
+ void addItem(const Ogre::DisplayString& item)
780
+ {
781
+ mItems.push_back(item);
782
+ setItems(mItems);
783
+ }
784
+
785
+ void removeItem(const Ogre::DisplayString& item)
786
+ {
787
+ Ogre::StringVector::iterator it;
788
+
789
+ for (it = mItems.begin(); it != mItems.end(); it++)
790
+ {
791
+ if (item == *it) break;
792
+ }
793
+
794
+ if (it != mItems.end())
795
+ {
796
+ mItems.erase(it);
797
+ if (mItems.size() < mItemsShown)
798
+ {
799
+ mItemsShown = mItems.size();
800
+ nukeOverlayElement(mItemElements.back());
801
+ mItemElements.pop_back();
802
+ }
803
+ }
804
+ else
805
+ {
806
+ Ogre::String desc = "Menu \"" + getName() + "\" contains no item \"" + item + "\".";
807
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "SelectMenu::removeItem");
808
+ }
809
+ }
810
+
811
+ void removeItem(unsigned int index)
812
+ {
813
+ Ogre::StringVector::iterator it;
814
+ unsigned int i = 0;
815
+
816
+ for (it = mItems.begin(); it != mItems.end(); it++)
817
+ {
818
+ if (i == index) break;
819
+ i++;
820
+ }
821
+
822
+ if (it != mItems.end())
823
+ {
824
+ mItems.erase(it);
825
+ if (mItems.size() < mItemsShown)
826
+ {
827
+ mItemsShown = mItems.size();
828
+ nukeOverlayElement(mItemElements.back());
829
+ mItemElements.pop_back();
830
+ }
831
+ }
832
+ else
833
+ {
834
+ Ogre::String desc = "Menu \"" + getName() + "\" contains no item at position " +
835
+ Ogre::StringConverter::toString(index) + ".";
836
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "SelectMenu::removeItem");
837
+ }
838
+ }
839
+
840
+ void clearItems()
841
+ {
842
+ mItems.clear();
843
+ mSelectionIndex = -1;
844
+ mSmallTextArea->setCaption("");
845
+ }
846
+
847
+ void selectItem(unsigned int index, bool notifyListener = true)
848
+ {
849
+ if (index >= mItems.size())
850
+ {
851
+ Ogre::String desc = "Menu \"" + getName() + "\" contains no item at position " +
852
+ Ogre::StringConverter::toString(index) + ".";
853
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "SelectMenu::selectItem");
854
+ }
855
+
856
+ mSelectionIndex = index;
857
+ fitCaptionToArea(mItems[index], mSmallTextArea, mSmallBox->getWidth() - mSmallTextArea->getLeft() * 2);
858
+
859
+ if (mListener && notifyListener) mListener->itemSelected(this);
860
+ }
861
+
862
+ void selectItem(const Ogre::DisplayString& item, bool notifyListener = true)
863
+ {
864
+ for (unsigned int i = 0; i < mItems.size(); i++)
865
+ {
866
+ if (item == mItems[i])
867
+ {
868
+ selectItem(i, notifyListener);
869
+ return;
870
+ }
871
+ }
872
+
873
+ Ogre::String desc = "Menu \"" + getName() + "\" contains no item \"" + item + "\".";
874
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "SelectMenu::selectItem");
875
+ }
876
+
877
+ Ogre::DisplayString getSelectedItem()
878
+ {
879
+ if (mSelectionIndex == -1)
880
+ {
881
+ Ogre::String desc = "Menu \"" + getName() + "\" has no item selected.";
882
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "SelectMenu::getSelectedItem");
883
+ return "";
884
+ }
885
+ else return mItems[mSelectionIndex];
886
+ }
887
+
888
+ int getSelectionIndex()
889
+ {
890
+ return mSelectionIndex;
891
+ }
892
+
893
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
894
+ {
895
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
896
+
897
+ if (mExpanded)
898
+ {
899
+ if (mScrollHandle->isVisible()) // check for scrolling
900
+ {
901
+ Ogre::Vector2 co = Widget::cursorOffset(mScrollHandle, cursorPos);
902
+
903
+ if (co.squaredLength() <= 81)
904
+ {
905
+ mDragging = true;
906
+ mDragOffset = co.y;
907
+ return;
908
+ }
909
+ else if (Widget::isCursorOver(mScrollTrack, cursorPos))
910
+ {
911
+ Ogre::Real newTop = mScrollHandle->getTop() + co.y;
912
+ Ogre::Real lowerBoundary = mScrollTrack->getHeight() - mScrollHandle->getHeight();
913
+ mScrollHandle->setTop(Ogre::Math::Clamp<int>((int)newTop, 0, (int)lowerBoundary));
914
+
915
+ Ogre::Real scrollPercentage = Ogre::Math::Clamp<Ogre::Real>(newTop / lowerBoundary, 0, 1);
916
+ setDisplayIndex((unsigned int)(scrollPercentage * (mItems.size() - mItemElements.size()) + 0.5));
917
+ return;
918
+ }
919
+ }
920
+
921
+ if (!isCursorOver(mExpandedBox, cursorPos, 3)) retract();
922
+ else
923
+ {
924
+ Ogre::Real l = mItemElements.front()->_getDerivedLeft() * om.getViewportWidth() + 5;
925
+ Ogre::Real t = mItemElements.front()->_getDerivedTop() * om.getViewportHeight() + 5;
926
+ Ogre::Real r = l + mItemElements.back()->getWidth() - 10;
927
+ Ogre::Real b = mItemElements.back()->_getDerivedTop() * om.getViewportHeight() +
928
+ mItemElements.back()->getHeight() - 5;
929
+
930
+ if (cursorPos.x >= l && cursorPos.x <= r && cursorPos.y >= t && cursorPos.y <= b)
931
+ {
932
+ if (mHighlightIndex != mSelectionIndex) selectItem(mHighlightIndex);
933
+ retract();
934
+ }
935
+ }
936
+ }
937
+ else
938
+ {
939
+ if (mItems.size() < 2) return; // don't waste time showing a menu if there's no choice
940
+
941
+ if (isCursorOver(mSmallBox, cursorPos, 4))
942
+ {
943
+ mExpandedBox->show();
944
+ mSmallBox->hide();
945
+
946
+ // calculate how much vertical space we need
947
+ Ogre::Real idealHeight = mItemsShown * (mSmallBox->getHeight() - 8) + 20;
948
+ mExpandedBox->setHeight(idealHeight);
949
+ mScrollTrack->setHeight(mExpandedBox->getHeight() - 20);
950
+
951
+ mExpandedBox->setLeft(mSmallBox->getLeft() - 4);
952
+
953
+ // if the expanded menu goes down off the screen, make it go up instead
954
+ if (mSmallBox->_getDerivedTop() * om.getViewportHeight() + idealHeight > om.getViewportHeight())
955
+ {
956
+ mExpandedBox->setTop(mSmallBox->getTop() + mSmallBox->getHeight() - idealHeight + 3);
957
+ // if we're in thick style, hide the caption because it will interfere with the expanded menu
958
+ if (mTextArea->getHorizontalAlignment() == Ogre::GHA_CENTER) mTextArea->hide();
959
+ }
960
+ else mExpandedBox->setTop(mSmallBox->getTop() + 3);
961
+
962
+ mExpanded = true;
963
+ mHighlightIndex = mSelectionIndex;
964
+ setDisplayIndex(mHighlightIndex);
965
+
966
+ if (mItemsShown < mItems.size()) // update scrollbar position
967
+ {
968
+ mScrollHandle->show();
969
+ Ogre::Real lowerBoundary = mScrollTrack->getHeight() - mScrollHandle->getHeight();
970
+ mScrollHandle->setTop((int)(mDisplayIndex * lowerBoundary / (mItems.size() - mItemElements.size())));
971
+ }
972
+ else mScrollHandle->hide();
973
+ }
974
+ }
975
+ }
976
+
977
+ void _cursorReleased(const Ogre::Vector2& cursorPos)
978
+ {
979
+ mDragging = false;
980
+ }
981
+
982
+ void _cursorMoved(const Ogre::Vector2& cursorPos)
983
+ {
984
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
985
+
986
+ if (mExpanded)
987
+ {
988
+ if (mDragging)
989
+ {
990
+ Ogre::Vector2 co = Widget::cursorOffset(mScrollHandle, cursorPos);
991
+ Ogre::Real newTop = mScrollHandle->getTop() + co.y - mDragOffset;
992
+ Ogre::Real lowerBoundary = mScrollTrack->getHeight() - mScrollHandle->getHeight();
993
+ mScrollHandle->setTop(Ogre::Math::Clamp<int>((int)newTop, 0, (int)lowerBoundary));
994
+
995
+ Ogre::Real scrollPercentage = Ogre::Math::Clamp<Ogre::Real>(newTop / lowerBoundary, 0, 1);
996
+ int newIndex = (int) (scrollPercentage * (mItems.size() - mItemElements.size()) + 0.5);
997
+ if (newIndex != mDisplayIndex) setDisplayIndex(newIndex);
998
+ return;
999
+ }
1000
+
1001
+ Ogre::Real l = mItemElements.front()->_getDerivedLeft() * om.getViewportWidth() + 5;
1002
+ Ogre::Real t = mItemElements.front()->_getDerivedTop() * om.getViewportHeight() + 5;
1003
+ Ogre::Real r = l + mItemElements.back()->getWidth() - 10;
1004
+ Ogre::Real b = mItemElements.back()->_getDerivedTop() * om.getViewportHeight() +
1005
+ mItemElements.back()->getHeight() - 5;
1006
+
1007
+ if (cursorPos.x >= l && cursorPos.x <= r && cursorPos.y >= t && cursorPos.y <= b)
1008
+ {
1009
+ int newIndex = (int)(mDisplayIndex + (cursorPos.y - t) / (b - t) * mItemElements.size());
1010
+ if (mHighlightIndex != newIndex)
1011
+ {
1012
+ mHighlightIndex = newIndex;
1013
+ setDisplayIndex(mDisplayIndex);
1014
+ }
1015
+ }
1016
+ }
1017
+ else
1018
+ {
1019
+ if (isCursorOver(mSmallBox, cursorPos, 4))
1020
+ {
1021
+ mSmallBox->setMaterialName("SdkTrays/MiniTextBox/Over");
1022
+ mSmallBox->setBorderMaterialName("SdkTrays/MiniTextBox/Over");
1023
+ mCursorOver = true;
1024
+ }
1025
+ else
1026
+ {
1027
+ if (mCursorOver)
1028
+ {
1029
+ mSmallBox->setMaterialName("SdkTrays/MiniTextBox");
1030
+ mSmallBox->setBorderMaterialName("SdkTrays/MiniTextBox");
1031
+ mCursorOver = false;
1032
+ }
1033
+ }
1034
+ }
1035
+ }
1036
+
1037
+ void _focusLost()
1038
+ {
1039
+ if (mExpandedBox->isVisible()) retract();
1040
+ }
1041
+
1042
+ protected:
1043
+
1044
+ /*-----------------------------------------------------------------------------
1045
+ | Internal method - sets which item goes at the top of the expanded menu.
1046
+ -----------------------------------------------------------------------------*/
1047
+ void setDisplayIndex(unsigned int index)
1048
+ {
1049
+ index = std::min<int>(index, mItems.size() - mItemElements.size());
1050
+ mDisplayIndex = index;
1051
+ Ogre::BorderPanelOverlayElement* ie;
1052
+ Ogre::TextAreaOverlayElement* ta;
1053
+
1054
+ for (int i = 0; i < (int)mItemElements.size(); i++)
1055
+ {
1056
+ ie = mItemElements[i];
1057
+ ta = (Ogre::TextAreaOverlayElement*)ie->getChild(ie->getName() + "/MenuItemText");
1058
+
1059
+ fitCaptionToArea(mItems[mDisplayIndex + i], ta, ie->getWidth() - 2 * ta->getLeft());
1060
+
1061
+ if ((mDisplayIndex + i) == mHighlightIndex)
1062
+ {
1063
+ ie->setMaterialName("SdkTrays/MiniTextBox/Over");
1064
+ ie->setBorderMaterialName("SdkTrays/MiniTextBox/Over");
1065
+ }
1066
+ else
1067
+ {
1068
+ ie->setMaterialName("SdkTrays/MiniTextBox");
1069
+ ie->setBorderMaterialName("SdkTrays/MiniTextBox");
1070
+ }
1071
+ }
1072
+ }
1073
+
1074
+ /*-----------------------------------------------------------------------------
1075
+ | Internal method - cleans up an expanded menu.
1076
+ -----------------------------------------------------------------------------*/
1077
+ void retract()
1078
+ {
1079
+ mDragging = false;
1080
+ mExpanded = false;
1081
+ mExpandedBox->hide();
1082
+ mTextArea->show();
1083
+ mSmallBox->show();
1084
+ mSmallBox->setMaterialName("SdkTrays/MiniTextBox");
1085
+ mSmallBox->setBorderMaterialName("SdkTrays/MiniTextBox");
1086
+ }
1087
+
1088
+ Ogre::BorderPanelOverlayElement* mSmallBox;
1089
+ Ogre::BorderPanelOverlayElement* mExpandedBox;
1090
+ Ogre::TextAreaOverlayElement* mTextArea;
1091
+ Ogre::TextAreaOverlayElement* mSmallTextArea;
1092
+ Ogre::BorderPanelOverlayElement* mScrollTrack;
1093
+ Ogre::PanelOverlayElement* mScrollHandle;
1094
+ std::vector<Ogre::BorderPanelOverlayElement*> mItemElements;
1095
+ unsigned int mMaxItemsShown;
1096
+ unsigned int mItemsShown;
1097
+ bool mCursorOver;
1098
+ bool mExpanded;
1099
+ bool mFitToContents;
1100
+ bool mDragging;
1101
+ Ogre::StringVector mItems;
1102
+ int mSelectionIndex;
1103
+ int mHighlightIndex;
1104
+ int mDisplayIndex;
1105
+ Ogre::Real mDragOffset;
1106
+ };
1107
+
1108
+ /*=============================================================================
1109
+ | Basic label widget.
1110
+ =============================================================================*/
1111
+ class Label : public Widget
1112
+ {
1113
+ public:
1114
+
1115
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1116
+ Label(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width)
1117
+ {
1118
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate("SdkTrays/Label", "BorderPanel", name);
1119
+ mTextArea = (Ogre::TextAreaOverlayElement*)((Ogre::OverlayContainer*)mElement)->getChild(getName() + "/LabelCaption");
1120
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
1121
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
1122
+ #endif
1123
+ setCaption(caption);
1124
+ if (width <= 0) mFitToTray = true;
1125
+ else
1126
+ {
1127
+ mFitToTray = false;
1128
+ mElement->setWidth(width);
1129
+ }
1130
+ }
1131
+
1132
+ const Ogre::DisplayString& getCaption()
1133
+ {
1134
+ return mTextArea->getCaption();
1135
+ }
1136
+
1137
+ void setCaption(const Ogre::DisplayString& caption)
1138
+ {
1139
+ mTextArea->setCaption(caption);
1140
+ }
1141
+
1142
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
1143
+ {
1144
+ if (mListener && isCursorOver(mElement, cursorPos, 3)) mListener->labelHit(this);
1145
+ }
1146
+
1147
+ bool _isFitToTray()
1148
+ {
1149
+ return mFitToTray;
1150
+ }
1151
+
1152
+ protected:
1153
+
1154
+ Ogre::TextAreaOverlayElement* mTextArea;
1155
+ bool mFitToTray;
1156
+ };
1157
+
1158
+ /*=============================================================================
1159
+ | Basic separator widget.
1160
+ =============================================================================*/
1161
+ class Separator : public Widget
1162
+ {
1163
+ public:
1164
+
1165
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1166
+ Separator(const Ogre::String& name, Ogre::Real width)
1167
+ {
1168
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate("SdkTrays/Separator", "Panel", name);
1169
+ if (width <= 0) mFitToTray = true;
1170
+ else
1171
+ {
1172
+ mFitToTray = false;
1173
+ mElement->setWidth(width);
1174
+ }
1175
+ }
1176
+
1177
+ bool _isFitToTray()
1178
+ {
1179
+ return mFitToTray;
1180
+ }
1181
+
1182
+ protected:
1183
+
1184
+ bool mFitToTray;
1185
+ };
1186
+
1187
+ /*=============================================================================
1188
+ | Basic slider widget.
1189
+ =============================================================================*/
1190
+ class Slider : public Widget
1191
+ {
1192
+ public:
1193
+
1194
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1195
+ Slider(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width, Ogre::Real trackWidth,
1196
+ Ogre::Real valueBoxWidth, Ogre::Real minValue, Ogre::Real maxValue, unsigned int snaps)
1197
+ : mDragOffset(0.0f)
1198
+ , mValue(0.0f)
1199
+ , mMinValue(0.0f)
1200
+ , mMaxValue(0.0f)
1201
+ , mInterval(0.0f)
1202
+ {
1203
+ mDragging = false;
1204
+ mFitToContents = false;
1205
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
1206
+ ("SdkTrays/Slider", "BorderPanel", name);
1207
+ mElement->setWidth(width);
1208
+ Ogre::OverlayContainer* c = (Ogre::OverlayContainer*)mElement;
1209
+ mTextArea = (Ogre::TextAreaOverlayElement*)c->getChild(getName() + "/SliderCaption");
1210
+ Ogre::OverlayContainer* valueBox = (Ogre::OverlayContainer*)c->getChild(getName() + "/SliderValueBox");
1211
+ valueBox->setWidth(valueBoxWidth);
1212
+ valueBox->setLeft(-(valueBoxWidth + 5));
1213
+ mValueTextArea = (Ogre::TextAreaOverlayElement*)valueBox->getChild(valueBox->getName() + "/SliderValueText");
1214
+ mTrack = (Ogre::BorderPanelOverlayElement*)c->getChild(getName() + "/SliderTrack");
1215
+ mHandle = (Ogre::PanelOverlayElement*)mTrack->getChild(mTrack->getName() + "/SliderHandle");
1216
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
1217
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
1218
+ mValueTextArea->setCharHeight(mValueTextArea->getCharHeight() - 3);
1219
+ #endif
1220
+
1221
+ if (trackWidth <= 0) // tall style
1222
+ {
1223
+ mTrack->setWidth(width - 16);
1224
+ }
1225
+ else // long style
1226
+ {
1227
+ if (width <= 0) mFitToContents = true;
1228
+ mElement->setHeight(34);
1229
+ mTextArea->setTop(10);
1230
+ valueBox->setTop(2);
1231
+ mTrack->setTop(-23);
1232
+ mTrack->setWidth(trackWidth);
1233
+ mTrack->setHorizontalAlignment(Ogre::GHA_RIGHT);
1234
+ mTrack->setLeft(-(trackWidth + valueBoxWidth + 5));
1235
+ }
1236
+
1237
+ setCaption(caption);
1238
+ setRange(minValue, maxValue, snaps, false);
1239
+ }
1240
+
1241
+ /*-----------------------------------------------------------------------------
1242
+ | Sets the minimum value, maximum value, and the number of snapping points.
1243
+ -----------------------------------------------------------------------------*/
1244
+ void setRange(Ogre::Real minValue, Ogre::Real maxValue, unsigned int snaps, bool notifyListener = true)
1245
+ {
1246
+ mMinValue = minValue;
1247
+ mMaxValue = maxValue;
1248
+
1249
+ if (snaps <= 1 || mMinValue >= mMaxValue)
1250
+ {
1251
+ mInterval = 0;
1252
+ mHandle->hide();
1253
+ mValue = minValue;
1254
+ if (snaps == 1) mValueTextArea->setCaption(Ogre::StringConverter::toString(mMinValue));
1255
+ else mValueTextArea->setCaption("");
1256
+ }
1257
+ else
1258
+ {
1259
+ mHandle->show();
1260
+ mInterval = (maxValue - minValue) / (snaps - 1);
1261
+ setValue(minValue, notifyListener);
1262
+ }
1263
+ }
1264
+
1265
+ const Ogre::DisplayString& getValueCaption()
1266
+ {
1267
+ return mValueTextArea->getCaption();
1268
+ }
1269
+
1270
+ /*-----------------------------------------------------------------------------
1271
+ | You can use this method to manually format how the value is displayed.
1272
+ -----------------------------------------------------------------------------*/
1273
+ void setValueCaption(const Ogre::DisplayString& caption)
1274
+ {
1275
+ mValueTextArea->setCaption(caption);
1276
+ }
1277
+
1278
+ void setValue(Ogre::Real value, bool notifyListener = true)
1279
+ {
1280
+ if (mInterval == 0) return;
1281
+
1282
+ mValue = Ogre::Math::Clamp<Ogre::Real>(value, mMinValue, mMaxValue);
1283
+
1284
+ setValueCaption(Ogre::StringConverter::toString(mValue));
1285
+
1286
+ if (mListener && notifyListener) mListener->sliderMoved(this);
1287
+
1288
+ if (!mDragging) mHandle->setLeft((int)((mValue - mMinValue) / (mMaxValue - mMinValue) *
1289
+ (mTrack->getWidth() - mHandle->getWidth())));
1290
+ }
1291
+
1292
+ Ogre::Real getValue()
1293
+ {
1294
+ return mValue;
1295
+ }
1296
+
1297
+ const Ogre::DisplayString& getCaption()
1298
+ {
1299
+ return mTextArea->getCaption();
1300
+ }
1301
+
1302
+ void setCaption(const Ogre::DisplayString& caption)
1303
+ {
1304
+ mTextArea->setCaption(caption);
1305
+
1306
+ if (mFitToContents) mElement->setWidth(getCaptionWidth(caption, mTextArea) +
1307
+ mValueTextArea->getParent()->getWidth() + mTrack->getWidth() + 26);
1308
+ }
1309
+
1310
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
1311
+ {
1312
+ if (!mHandle->isVisible()) return;
1313
+
1314
+ Ogre::Vector2 co = Widget::cursorOffset(mHandle, cursorPos);
1315
+
1316
+ if (co.squaredLength() <= 81)
1317
+ {
1318
+ mDragging = true;
1319
+ mDragOffset = co.x;
1320
+ }
1321
+ else if (Widget::isCursorOver(mTrack, cursorPos))
1322
+ {
1323
+ Ogre::Real newLeft = mHandle->getLeft() + co.x;
1324
+ Ogre::Real rightBoundary = mTrack->getWidth() - mHandle->getWidth();
1325
+
1326
+ mHandle->setLeft(Ogre::Math::Clamp<int>((int)newLeft, 0, (int)rightBoundary));
1327
+ setValue(getSnappedValue(newLeft / rightBoundary));
1328
+ }
1329
+ }
1330
+
1331
+ void _cursorReleased(const Ogre::Vector2& cursorPos)
1332
+ {
1333
+ if (mDragging)
1334
+ {
1335
+ mDragging = false;
1336
+ mHandle->setLeft((int)((mValue - mMinValue) / (mMaxValue - mMinValue) *
1337
+ (mTrack->getWidth() - mHandle->getWidth())));
1338
+ }
1339
+ }
1340
+
1341
+ void _cursorMoved(const Ogre::Vector2& cursorPos)
1342
+ {
1343
+ if (mDragging)
1344
+ {
1345
+ Ogre::Vector2 co = Widget::cursorOffset(mHandle, cursorPos);
1346
+ Ogre::Real newLeft = mHandle->getLeft() + co.x - mDragOffset;
1347
+ Ogre::Real rightBoundary = mTrack->getWidth() - mHandle->getWidth();
1348
+
1349
+ mHandle->setLeft(Ogre::Math::Clamp<int>((int)newLeft, 0, (int)rightBoundary));
1350
+ setValue(getSnappedValue(newLeft / rightBoundary));
1351
+ }
1352
+ }
1353
+
1354
+ void _focusLost()
1355
+ {
1356
+ mDragging = false;
1357
+ }
1358
+
1359
+ protected:
1360
+
1361
+ /*-----------------------------------------------------------------------------
1362
+ | Internal method - given a percentage (from left to right), gets the
1363
+ | value of the nearest marker.
1364
+ -----------------------------------------------------------------------------*/
1365
+ Ogre::Real getSnappedValue(Ogre::Real percentage)
1366
+ {
1367
+ percentage = Ogre::Math::Clamp<Ogre::Real>(percentage, 0, 1);
1368
+ unsigned int whichMarker = (unsigned int) (percentage * (mMaxValue - mMinValue) / mInterval + 0.5);
1369
+ return whichMarker * mInterval + mMinValue;
1370
+ }
1371
+
1372
+ Ogre::TextAreaOverlayElement* mTextArea;
1373
+ Ogre::TextAreaOverlayElement* mValueTextArea;
1374
+ Ogre::BorderPanelOverlayElement* mTrack;
1375
+ Ogre::PanelOverlayElement* mHandle;
1376
+ bool mDragging;
1377
+ bool mFitToContents;
1378
+ Ogre::Real mDragOffset;
1379
+ Ogre::Real mValue;
1380
+ Ogre::Real mMinValue;
1381
+ Ogre::Real mMaxValue;
1382
+ Ogre::Real mInterval;
1383
+ };
1384
+
1385
+ /*=============================================================================
1386
+ | Basic parameters panel widget.
1387
+ =============================================================================*/
1388
+ class ParamsPanel : public Widget
1389
+ {
1390
+ public:
1391
+
1392
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1393
+ ParamsPanel(const Ogre::String& name, Ogre::Real width, unsigned int lines)
1394
+ {
1395
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
1396
+ ("SdkTrays/ParamsPanel", "BorderPanel", name);
1397
+ Ogre::OverlayContainer* c = (Ogre::OverlayContainer*)mElement;
1398
+ mNamesArea = (Ogre::TextAreaOverlayElement*)c->getChild(getName() + "/ParamsPanelNames");
1399
+ mValuesArea = (Ogre::TextAreaOverlayElement*)c->getChild(getName() + "/ParamsPanelValues");
1400
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
1401
+ mNamesArea->setCharHeight(mNamesArea->getCharHeight() - 3);
1402
+ mValuesArea->setCharHeight(mValuesArea->getCharHeight() - 3);
1403
+ #endif
1404
+ mElement->setWidth(width);
1405
+ mElement->setHeight(mNamesArea->getTop() * 2 + lines * mNamesArea->getCharHeight());
1406
+ }
1407
+
1408
+ void setAllParamNames(const Ogre::StringVector& paramNames)
1409
+ {
1410
+ mNames = paramNames;
1411
+ mValues.clear();
1412
+ mValues.resize(mNames.size(), "");
1413
+ mElement->setHeight(mNamesArea->getTop() * 2 + mNames.size() * mNamesArea->getCharHeight());
1414
+ updateText();
1415
+ }
1416
+
1417
+ const Ogre::StringVector& getAllParamNames()
1418
+ {
1419
+ return mNames;
1420
+ }
1421
+
1422
+ void setAllParamValues(const Ogre::StringVector& paramValues)
1423
+ {
1424
+ mValues = paramValues;
1425
+ mValues.resize(mNames.size(), "");
1426
+ updateText();
1427
+ }
1428
+
1429
+ void setParamValue(const Ogre::DisplayString& paramName, const Ogre::DisplayString& paramValue)
1430
+ {
1431
+ for (unsigned int i = 0; i < mNames.size(); i++)
1432
+ {
1433
+ if (mNames[i] == DISPLAY_STRING_TO_STRING(paramName))
1434
+ {
1435
+ mValues[i] = DISPLAY_STRING_TO_STRING(paramValue);
1436
+ updateText();
1437
+ return;
1438
+ }
1439
+ }
1440
+
1441
+ Ogre::String desc = "ParamsPanel \"" + getName() + "\" has no parameter \"" + DISPLAY_STRING_TO_STRING(paramName) + "\".";
1442
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "ParamsPanel::setParamValue");
1443
+ }
1444
+
1445
+ void setParamValue(unsigned int index, const Ogre::DisplayString& paramValue)
1446
+ {
1447
+ if (index >= mNames.size())
1448
+ {
1449
+ Ogre::String desc = "ParamsPanel \"" + getName() + "\" has no parameter at position " +
1450
+ Ogre::StringConverter::toString(index) + ".";
1451
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "ParamsPanel::setParamValue");
1452
+ }
1453
+
1454
+ mValues[index] = DISPLAY_STRING_TO_STRING(paramValue);
1455
+ updateText();
1456
+ }
1457
+
1458
+ Ogre::DisplayString getParamValue(const Ogre::DisplayString& paramName)
1459
+ {
1460
+ for (unsigned int i = 0; i < mNames.size(); i++)
1461
+ {
1462
+ if (mNames[i] == DISPLAY_STRING_TO_STRING(paramName)) return mValues[i];
1463
+ }
1464
+
1465
+ Ogre::String desc = "ParamsPanel \"" + getName() + "\" has no parameter \"" + DISPLAY_STRING_TO_STRING(paramName) + "\".";
1466
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "ParamsPanel::getParamValue");
1467
+ return "";
1468
+ }
1469
+
1470
+ Ogre::DisplayString getParamValue(unsigned int index)
1471
+ {
1472
+ if (index >= mNames.size())
1473
+ {
1474
+ Ogre::String desc = "ParamsPanel \"" + getName() + "\" has no parameter at position " +
1475
+ Ogre::StringConverter::toString(index) + ".";
1476
+ OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, desc, "ParamsPanel::getParamValue");
1477
+ }
1478
+
1479
+ return mValues[index];
1480
+ }
1481
+
1482
+ const Ogre::StringVector& getAllParamValues()
1483
+ {
1484
+ return mValues;
1485
+ }
1486
+
1487
+ protected:
1488
+
1489
+ /*-----------------------------------------------------------------------------
1490
+ | Internal method - updates text areas based on name and value lists.
1491
+ -----------------------------------------------------------------------------*/
1492
+ void updateText()
1493
+ {
1494
+ Ogre::DisplayString namesDS;
1495
+ Ogre::DisplayString valuesDS;
1496
+
1497
+ for (unsigned int i = 0; i < mNames.size(); i++)
1498
+ {
1499
+ namesDS.append(mNames[i] + ":\n");
1500
+ valuesDS.append(mValues[i] + "\n");
1501
+ }
1502
+
1503
+ mNamesArea->setCaption(namesDS);
1504
+ mValuesArea->setCaption(valuesDS);
1505
+ }
1506
+
1507
+ Ogre::TextAreaOverlayElement* mNamesArea;
1508
+ Ogre::TextAreaOverlayElement* mValuesArea;
1509
+ Ogre::StringVector mNames;
1510
+ Ogre::StringVector mValues;
1511
+ };
1512
+
1513
+ /*=============================================================================
1514
+ | Basic check box widget.
1515
+ =============================================================================*/
1516
+ class CheckBox : public Widget
1517
+ {
1518
+ public:
1519
+
1520
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1521
+ CheckBox(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width)
1522
+ {
1523
+ mCursorOver = false;
1524
+ mFitToContents = width <= 0;
1525
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
1526
+ ("SdkTrays/CheckBox", "BorderPanel", name);
1527
+ Ogre::OverlayContainer* c = (Ogre::OverlayContainer*)mElement;
1528
+ mTextArea = (Ogre::TextAreaOverlayElement*)c->getChild(getName() + "/CheckBoxCaption");
1529
+ mSquare = (Ogre::BorderPanelOverlayElement*)c->getChild(getName() + "/CheckBoxSquare");
1530
+ mX = mSquare->getChild(mSquare->getName() + "/CheckBoxX");
1531
+ mX->hide();
1532
+ mElement->setWidth(width);
1533
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
1534
+ mTextArea->setCharHeight(mTextArea->getCharHeight() - 3);
1535
+ #endif
1536
+ setCaption(caption);
1537
+ }
1538
+
1539
+ const Ogre::DisplayString& getCaption()
1540
+ {
1541
+ return mTextArea->getCaption();
1542
+ }
1543
+
1544
+ void setCaption(const Ogre::DisplayString& caption)
1545
+ {
1546
+ mTextArea->setCaption(caption);
1547
+ if (mFitToContents) mElement->setWidth(getCaptionWidth(caption, mTextArea) + mSquare->getWidth() + 23);
1548
+ }
1549
+
1550
+ bool isChecked()
1551
+ {
1552
+ return mX->isVisible();
1553
+ }
1554
+
1555
+ void setChecked(bool checked, bool notifyListener = true)
1556
+ {
1557
+ if (checked) mX->show();
1558
+ else mX->hide();
1559
+ if (mListener && notifyListener) mListener->checkBoxToggled(this);
1560
+ }
1561
+
1562
+ void toggle(bool notifyListener = true)
1563
+ {
1564
+ setChecked(!isChecked(), notifyListener);
1565
+ }
1566
+
1567
+ void _cursorPressed(const Ogre::Vector2& cursorPos)
1568
+ {
1569
+ if (mCursorOver && mListener) toggle();
1570
+ }
1571
+
1572
+ void _cursorMoved(const Ogre::Vector2& cursorPos)
1573
+ {
1574
+ if (isCursorOver(mSquare, cursorPos, 5))
1575
+ {
1576
+ if (!mCursorOver)
1577
+ {
1578
+ mCursorOver = true;
1579
+ mSquare->setMaterialName("SdkTrays/MiniTextBox/Over");
1580
+ mSquare->setBorderMaterialName("SdkTrays/MiniTextBox/Over");
1581
+ }
1582
+ }
1583
+ else
1584
+ {
1585
+ if (mCursorOver)
1586
+ {
1587
+ mCursorOver = false;
1588
+ mSquare->setMaterialName("SdkTrays/MiniTextBox");
1589
+ mSquare->setBorderMaterialName("SdkTrays/MiniTextBox");
1590
+ }
1591
+ }
1592
+ }
1593
+
1594
+ void _focusLost()
1595
+ {
1596
+ mSquare->setMaterialName("SdkTrays/MiniTextBox");
1597
+ mSquare->setBorderMaterialName("SdkTrays/MiniTextBox");
1598
+ mCursorOver = false;
1599
+ }
1600
+
1601
+ protected:
1602
+
1603
+ Ogre::TextAreaOverlayElement* mTextArea;
1604
+ Ogre::BorderPanelOverlayElement* mSquare;
1605
+ Ogre::OverlayElement* mX;
1606
+ bool mFitToContents;
1607
+ bool mCursorOver;
1608
+ };
1609
+
1610
+ /*=============================================================================
1611
+ | Custom, decorative widget created from a template.
1612
+ =============================================================================*/
1613
+ class DecorWidget : public Widget
1614
+ {
1615
+ public:
1616
+
1617
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1618
+ DecorWidget(const Ogre::String& name, const Ogre::String& templateName)
1619
+ {
1620
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate(templateName, "", name);
1621
+ }
1622
+ };
1623
+
1624
+ /*=============================================================================
1625
+ | Basic progress bar widget.
1626
+ =============================================================================*/
1627
+ class ProgressBar : public Widget
1628
+ {
1629
+ public:
1630
+
1631
+ // Do not instantiate any widgets directly. Use SdkTrayManager.
1632
+ ProgressBar(const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width, Ogre::Real commentBoxWidth)
1633
+ : mProgress(0.0f)
1634
+ {
1635
+ mElement = Ogre::OverlayManager::getSingleton().createOverlayElementFromTemplate
1636
+ ("SdkTrays/ProgressBar", "BorderPanel", name);
1637
+ mElement->setWidth(width);
1638
+ Ogre::OverlayContainer* c = (Ogre::OverlayContainer*)mElement;
1639
+ mTextArea = (Ogre::TextAreaOverlayElement*)c->getChild(getName() + "/ProgressCaption");
1640
+ Ogre::OverlayContainer* commentBox = (Ogre::OverlayContainer*)c->getChild(getName() + "/ProgressCommentBox");
1641
+ commentBox->setWidth(commentBoxWidth);
1642
+ commentBox->setLeft(-(commentBoxWidth + 5));
1643
+ mCommentTextArea = (Ogre::TextAreaOverlayElement*)commentBox->getChild(commentBox->getName() + "/ProgressCommentText");
1644
+ mMeter = c->getChild(getName() + "/ProgressMeter");
1645
+ mMeter->setWidth(width - 10);
1646
+ mFill = ((Ogre::OverlayContainer*)mMeter)->getChild(mMeter->getName() + "/ProgressFill");
1647
+ setCaption(caption);
1648
+ }
1649
+
1650
+ /*-----------------------------------------------------------------------------
1651
+ | Sets the progress as a percentage.
1652
+ -----------------------------------------------------------------------------*/
1653
+ void setProgress(Ogre::Real progress)
1654
+ {
1655
+ mProgress = Ogre::Math::Clamp<Ogre::Real>(progress, 0, 1);
1656
+ mFill->setWidth(std::max<int>((int)mFill->getHeight(), (int)(mProgress * (mMeter->getWidth() - 2 * mFill->getLeft()))));
1657
+ }
1658
+
1659
+ /*-----------------------------------------------------------------------------
1660
+ | Gets the progress as a percentage.
1661
+ -----------------------------------------------------------------------------*/
1662
+ Ogre::Real getProgress()
1663
+ {
1664
+ return mProgress;
1665
+ }
1666
+
1667
+ const Ogre::DisplayString& getCaption()
1668
+ {
1669
+ return mTextArea->getCaption();
1670
+ }
1671
+
1672
+ void setCaption(const Ogre::DisplayString& caption)
1673
+ {
1674
+ mTextArea->setCaption(caption);
1675
+ }
1676
+
1677
+ const Ogre::DisplayString& getComment()
1678
+ {
1679
+ return mCommentTextArea->getCaption();
1680
+ }
1681
+
1682
+ void setComment(const Ogre::DisplayString& comment)
1683
+ {
1684
+ mCommentTextArea->setCaption(comment);
1685
+ }
1686
+
1687
+
1688
+ protected:
1689
+
1690
+ Ogre::TextAreaOverlayElement* mTextArea;
1691
+ Ogre::TextAreaOverlayElement* mCommentTextArea;
1692
+ Ogre::OverlayElement* mMeter;
1693
+ Ogre::OverlayElement* mFill;
1694
+ Ogre::Real mProgress;
1695
+ };
1696
+
1697
+ /*=============================================================================
1698
+ | Main class to manage a cursor, backdrop, trays and widgets.
1699
+ =============================================================================*/
1700
+ class SdkTrayManager : public SdkTrayListener, public Ogre::ResourceGroupListener
1701
+ {
1702
+ public:
1703
+
1704
+ /*-----------------------------------------------------------------------------
1705
+ | Creates backdrop, cursor, and trays.
1706
+ -----------------------------------------------------------------------------*/
1707
+ #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS) || (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
1708
+ SdkTrayManager(const Ogre::String& name, Ogre::RenderWindow* window, OIS::MultiTouch* mouse, SdkTrayListener* listener = 0) :
1709
+ #else
1710
+ SdkTrayManager(const Ogre::String& name, Ogre::RenderWindow* window, OIS::Mouse* mouse, SdkTrayListener* listener = 0) :
1711
+ #endif
1712
+ mName(name), mWindow(window), mMouse(mouse), mWidgetDeathRow(), mListener(listener), mWidgetPadding(8),
1713
+ mWidgetSpacing(2), mTrayPadding(0), mTrayDrag(false), mExpandedMenu(0), mDialog(0), mOk(0), mYes(0),
1714
+ mNo(0), mCursorWasVisible(false), mFpsLabel(0), mStatsPanel(0), mLogo(0), mLoadBar(0),
1715
+ mGroupInitProportion(0.0f), mGroupLoadProportion(0.0f), mLoadInc(0.0f)
1716
+ {
1717
+ mTimer = Ogre::Root::getSingleton().getTimer();
1718
+ mLastStatUpdateTime = 0;
1719
+
1720
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
1721
+
1722
+ Ogre::String nameBase = mName + "/";
1723
+ std::replace(nameBase.begin(), nameBase.end(), ' ', '_');
1724
+
1725
+ // create overlay layers for everything
1726
+ mBackdropLayer = om.create(nameBase + "BackdropLayer");
1727
+ mTraysLayer = om.create(nameBase + "WidgetsLayer");
1728
+ mPriorityLayer = om.create(nameBase + "PriorityLayer");
1729
+ mCursorLayer = om.create(nameBase + "CursorLayer");
1730
+ mBackdropLayer->setZOrder(100);
1731
+ mTraysLayer->setZOrder(200);
1732
+ mPriorityLayer->setZOrder(300);
1733
+ mCursorLayer->setZOrder(400);
1734
+
1735
+ // make backdrop and cursor overlay containers
1736
+ mCursor = (Ogre::OverlayContainer*)om.createOverlayElementFromTemplate("SdkTrays/Cursor", "Panel", nameBase + "Cursor");
1737
+ mCursorLayer->add2D(mCursor);
1738
+ mBackdrop = (Ogre::OverlayContainer*)om.createOverlayElement("Panel", nameBase + "Backdrop");
1739
+ mBackdropLayer->add2D(mBackdrop);
1740
+ mDialogShade = (Ogre::OverlayContainer*)om.createOverlayElement("Panel", nameBase + "DialogShade");
1741
+ mDialogShade->setMaterialName("SdkTrays/Shade");
1742
+ mDialogShade->hide();
1743
+ mPriorityLayer->add2D(mDialogShade);
1744
+
1745
+ Ogre::String trayNames[] =
1746
+ { "TopLeft", "Top", "TopRight", "Left", "Center", "Right", "BottomLeft", "Bottom", "BottomRight" };
1747
+
1748
+ for (unsigned int i = 0; i < 9; i++) // make the real trays
1749
+ {
1750
+ mTrays[i] = (Ogre::OverlayContainer*)om.createOverlayElementFromTemplate
1751
+ ("SdkTrays/Tray", "BorderPanel", nameBase + trayNames[i] + "Tray");
1752
+ mTraysLayer->add2D(mTrays[i]);
1753
+
1754
+ mTrayWidgetAlign[i] = Ogre::GHA_CENTER;
1755
+
1756
+ // align trays based on location
1757
+ if (i == TL_TOP || i == TL_CENTER || i == TL_BOTTOM) mTrays[i]->setHorizontalAlignment(Ogre::GHA_CENTER);
1758
+ if (i == TL_LEFT || i == TL_CENTER || i == TL_RIGHT) mTrays[i]->setVerticalAlignment(Ogre::GVA_CENTER);
1759
+ if (i == TL_TOPRIGHT || i == TL_RIGHT || i == TL_BOTTOMRIGHT) mTrays[i]->setHorizontalAlignment(Ogre::GHA_RIGHT);
1760
+ if (i == TL_BOTTOMLEFT || i == TL_BOTTOM || i == TL_BOTTOMRIGHT) mTrays[i]->setVerticalAlignment(Ogre::GVA_BOTTOM);
1761
+ }
1762
+
1763
+ // create the null tray for free-floating widgets
1764
+ mTrays[9] = (Ogre::OverlayContainer*)om.createOverlayElement("Panel", nameBase + "NullTray");
1765
+ mTrayWidgetAlign[9] = Ogre::GHA_LEFT;
1766
+ mTraysLayer->add2D(mTrays[9]);
1767
+ adjustTrays();
1768
+
1769
+ showTrays();
1770
+ showCursor();
1771
+ }
1772
+
1773
+ /*-----------------------------------------------------------------------------
1774
+ | Destroys background, cursor, widgets, and trays.
1775
+ -----------------------------------------------------------------------------*/
1776
+ virtual ~SdkTrayManager()
1777
+ {
1778
+ Ogre::OverlayManager& om = Ogre::OverlayManager::getSingleton();
1779
+
1780
+ destroyAllWidgets();
1781
+
1782
+ for (unsigned int i = 0; i < mWidgetDeathRow.size(); i++) // delete widgets queued for destruction
1783
+ {
1784
+ delete mWidgetDeathRow[i];
1785
+ }
1786
+ mWidgetDeathRow.clear();
1787
+
1788
+ om.destroy(mBackdropLayer);
1789
+ om.destroy(mTraysLayer);
1790
+ om.destroy(mPriorityLayer);
1791
+ om.destroy(mCursorLayer);
1792
+
1793
+ closeDialog();
1794
+ hideLoadingBar();
1795
+
1796
+ Widget::nukeOverlayElement(mBackdrop);
1797
+ Widget::nukeOverlayElement(mCursor);
1798
+ Widget::nukeOverlayElement(mDialogShade);
1799
+
1800
+ for (unsigned int i = 0; i < 10; i++)
1801
+ {
1802
+ Widget::nukeOverlayElement(mTrays[i]);
1803
+ }
1804
+ }
1805
+
1806
+ /*-----------------------------------------------------------------------------
1807
+ | Converts a 2D screen coordinate (in pixels) to a 3D ray into the scene.
1808
+ -----------------------------------------------------------------------------*/
1809
+ static Ogre::Ray screenToScene(Ogre::Camera* cam, const Ogre::Vector2& pt)
1810
+ {
1811
+ return cam->getCameraToViewportRay(pt.x, pt.y);
1812
+ }
1813
+
1814
+ /*-----------------------------------------------------------------------------
1815
+ | Converts a 3D scene position to a 2D screen position (in relative screen size, 0.0-1.0).
1816
+ -----------------------------------------------------------------------------*/
1817
+ static Ogre::Vector2 sceneToScreen(Ogre::Camera* cam, const Ogre::Vector3& pt)
1818
+ {
1819
+ Ogre::Vector3 result = cam->getProjectionMatrix() * cam->getViewMatrix() * pt;
1820
+ return Ogre::Vector2((result.x + 1) / 2, (-result.y + 1) / 2);
1821
+ }
1822
+
1823
+ // these methods get the underlying overlays and overlay elements
1824
+
1825
+ Ogre::OverlayContainer* getTrayContainer(TrayLocation trayLoc) { return mTrays[trayLoc]; }
1826
+ Ogre::Overlay* getBackdropLayer() { return mBackdropLayer; }
1827
+ Ogre::Overlay* getTraysLayer() { return mTraysLayer; }
1828
+ Ogre::Overlay* getCursorLayer() { return mCursorLayer; }
1829
+ Ogre::OverlayContainer* getBackdropContainer() { return mBackdrop; }
1830
+ Ogre::OverlayContainer* getCursorContainer() { return mCursor; }
1831
+ Ogre::OverlayElement* getCursorImage() { return mCursor->getChild(mCursor->getName() + "/CursorImage"); }
1832
+
1833
+ void setListener(SdkTrayListener* listener)
1834
+ {
1835
+ mListener = listener;
1836
+ }
1837
+
1838
+ SdkTrayListener* getListener()
1839
+ {
1840
+ return mListener;
1841
+ }
1842
+
1843
+ void showAll()
1844
+ {
1845
+ showBackdrop();
1846
+ showTrays();
1847
+ showCursor();
1848
+ }
1849
+
1850
+ void hideAll()
1851
+ {
1852
+ hideBackdrop();
1853
+ hideTrays();
1854
+ hideCursor();
1855
+ }
1856
+
1857
+ /*-----------------------------------------------------------------------------
1858
+ | Displays specified material on backdrop, or the last material used if
1859
+ | none specified. Good for pause menus like in the browser.
1860
+ -----------------------------------------------------------------------------*/
1861
+ void showBackdrop(const Ogre::String& materialName = Ogre::StringUtil::BLANK)
1862
+ {
1863
+ if (materialName != Ogre::StringUtil::BLANK) mBackdrop->setMaterialName(materialName);
1864
+ mBackdropLayer->show();
1865
+ }
1866
+
1867
+ void hideBackdrop()
1868
+ {
1869
+ mBackdropLayer->hide();
1870
+ }
1871
+
1872
+ /*-----------------------------------------------------------------------------
1873
+ | Displays specified material on cursor, or the last material used if
1874
+ | none specified. Used to change cursor type.
1875
+ -----------------------------------------------------------------------------*/
1876
+ void showCursor(const Ogre::String& materialName = Ogre::StringUtil::BLANK)
1877
+ {
1878
+ if (materialName != Ogre::StringUtil::BLANK) getCursorImage()->setMaterialName(materialName);
1879
+
1880
+ if (!mCursorLayer->isVisible())
1881
+ {
1882
+ mCursorLayer->show();
1883
+ refreshCursor();
1884
+ }
1885
+ }
1886
+
1887
+ void hideCursor()
1888
+ {
1889
+ mCursorLayer->hide();
1890
+
1891
+ // give widgets a chance to reset in case they're in the middle of something
1892
+ for (unsigned int i = 0; i < 10; i++)
1893
+ {
1894
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
1895
+ {
1896
+ mWidgets[i][j]->_focusLost();
1897
+ }
1898
+ }
1899
+
1900
+ setExpandedMenu(0);
1901
+ }
1902
+
1903
+ /*-----------------------------------------------------------------------------
1904
+ | Updates cursor position based on unbuffered mouse state. This is necessary
1905
+ | because if the tray manager has been cut off from mouse events for a time,
1906
+ | the cursor position will be out of date.
1907
+ -----------------------------------------------------------------------------*/
1908
+ void refreshCursor()
1909
+ {
1910
+ #if (OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0) || (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS)
1911
+ // TODO:
1912
+ // the position should be based on the orientation, for now simply return
1913
+ return;
1914
+ #endif
1915
+ #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
1916
+ std::vector<OIS::MultiTouchState> states = mMouse->getMultiTouchStates();
1917
+ if(states.size() > 0)
1918
+ mCursor->setPosition(states[0].X.abs, states[0].Y.abs);
1919
+ #elif OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
1920
+ // TODO: handle cursor positioning
1921
+ #else
1922
+ mCursor->setPosition(mMouse->getMouseState().X.abs, mMouse->getMouseState().Y.abs);
1923
+ #endif
1924
+ }
1925
+
1926
+ void showTrays()
1927
+ {
1928
+ mTraysLayer->show();
1929
+ mPriorityLayer->show();
1930
+ }
1931
+
1932
+ void hideTrays()
1933
+ {
1934
+ mTraysLayer->hide();
1935
+ mPriorityLayer->hide();
1936
+
1937
+ // give widgets a chance to reset in case they're in the middle of something
1938
+ for (unsigned int i = 0; i < 10; i++)
1939
+ {
1940
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
1941
+ {
1942
+ mWidgets[i][j]->_focusLost();
1943
+ }
1944
+ }
1945
+
1946
+ setExpandedMenu(0);
1947
+ }
1948
+
1949
+ bool isCursorVisible() { return mCursorLayer->isVisible(); }
1950
+ bool isBackdropVisible() { return mBackdropLayer->isVisible(); }
1951
+ bool areTraysVisible() { return mTraysLayer->isVisible(); }
1952
+
1953
+ /*-----------------------------------------------------------------------------
1954
+ | Sets horizontal alignment of a tray's contents.
1955
+ -----------------------------------------------------------------------------*/
1956
+ void setTrayWidgetAlignment(TrayLocation trayLoc, Ogre::GuiHorizontalAlignment gha)
1957
+ {
1958
+ mTrayWidgetAlign[trayLoc] = gha;
1959
+
1960
+ for (unsigned int i = 0; i < mWidgets[trayLoc].size(); i++)
1961
+ {
1962
+ mWidgets[trayLoc][i]->getOverlayElement()->setHorizontalAlignment(gha);
1963
+ }
1964
+ }
1965
+
1966
+ // padding and spacing methods
1967
+
1968
+ void setWidgetPadding(Ogre::Real padding)
1969
+ {
1970
+ mWidgetPadding = std::max<int>((int)padding, 0);
1971
+ adjustTrays();
1972
+ }
1973
+
1974
+ void setWidgetSpacing(Ogre::Real spacing)
1975
+ {
1976
+ mWidgetSpacing = std::max<int>((int)spacing, 0);
1977
+ adjustTrays();
1978
+ }
1979
+ void setTrayPadding(Ogre::Real padding)
1980
+ {
1981
+ mTrayPadding = std::max<int>((int)padding, 0);
1982
+ adjustTrays();
1983
+ }
1984
+
1985
+ virtual Ogre::Real getWidgetPadding() const { return mWidgetPadding; }
1986
+ virtual Ogre::Real getWidgetSpacing() const { return mWidgetSpacing; }
1987
+ virtual Ogre::Real getTrayPadding() const { return mTrayPadding; }
1988
+
1989
+ /*-----------------------------------------------------------------------------
1990
+ | Fits trays to their contents and snaps them to their anchor locations.
1991
+ -----------------------------------------------------------------------------*/
1992
+ virtual void adjustTrays()
1993
+ {
1994
+ for (unsigned int i = 0; i < 9; i++) // resizes and hides trays if necessary
1995
+ {
1996
+ Ogre::Real trayWidth = 0;
1997
+ Ogre::Real trayHeight = mWidgetPadding;
1998
+ std::vector<Ogre::OverlayElement*> labelsAndSeps;
1999
+
2000
+ if (mWidgets[i].empty()) // hide tray if empty
2001
+ {
2002
+ mTrays[i]->hide();
2003
+ continue;
2004
+ }
2005
+ else mTrays[i]->show();
2006
+
2007
+ // arrange widgets and calculate final tray size and position
2008
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
2009
+ {
2010
+ Ogre::OverlayElement* e = mWidgets[i][j]->getOverlayElement();
2011
+
2012
+ if (j != 0) trayHeight += mWidgetSpacing; // don't space first widget
2013
+
2014
+ e->setVerticalAlignment(Ogre::GVA_TOP);
2015
+ e->setTop(trayHeight);
2016
+
2017
+ switch (e->getHorizontalAlignment())
2018
+ {
2019
+ case Ogre::GHA_LEFT:
2020
+ e->setLeft(mWidgetPadding);
2021
+ break;
2022
+ case Ogre::GHA_RIGHT:
2023
+ e->setLeft(-(e->getWidth() + mWidgetPadding));
2024
+ break;
2025
+ default:
2026
+ e->setLeft(-(e->getWidth() / 2));
2027
+ }
2028
+
2029
+ // prevents some weird texture filtering problems (just some)
2030
+ e->setPosition((int)e->getLeft(), (int)e->getTop());
2031
+ e->setDimensions((int)e->getWidth(), (int)e->getHeight());
2032
+
2033
+ trayHeight += e->getHeight();
2034
+
2035
+ Label* l = dynamic_cast<Label*>(mWidgets[i][j]);
2036
+ if (l && l->_isFitToTray())
2037
+ {
2038
+ labelsAndSeps.push_back(e);
2039
+ continue;
2040
+ }
2041
+ Separator* s = dynamic_cast<Separator*>(mWidgets[i][j]);
2042
+ if (s && s->_isFitToTray())
2043
+ {
2044
+ labelsAndSeps.push_back(e);
2045
+ continue;
2046
+ }
2047
+
2048
+ if (e->getWidth() > trayWidth) trayWidth = e->getWidth();
2049
+ }
2050
+
2051
+ // add paddings and resize trays
2052
+ mTrays[i]->setWidth(trayWidth + 2 * mWidgetPadding);
2053
+ mTrays[i]->setHeight(trayHeight + mWidgetPadding);
2054
+
2055
+ for (unsigned int j = 0; j < labelsAndSeps.size(); j++)
2056
+ {
2057
+ labelsAndSeps[j]->setWidth((int)trayWidth);
2058
+ labelsAndSeps[j]->setLeft(-(int)(trayWidth / 2));
2059
+ }
2060
+ }
2061
+
2062
+ for (unsigned int i = 0; i < 9; i++) // snap trays to anchors
2063
+ {
2064
+ if (i == TL_TOPLEFT || i == TL_LEFT || i == TL_BOTTOMLEFT)
2065
+ mTrays[i]->setLeft(mTrayPadding);
2066
+ if (i == TL_TOP || i == TL_CENTER || i == TL_BOTTOM)
2067
+ mTrays[i]->setLeft(-mTrays[i]->getWidth() / 2);
2068
+ if (i == TL_TOPRIGHT || i == TL_RIGHT || i == TL_BOTTOMRIGHT)
2069
+ mTrays[i]->setLeft(-(mTrays[i]->getWidth() + mTrayPadding));
2070
+
2071
+ if (i == TL_TOPLEFT || i == TL_TOP || i == TL_TOPRIGHT)
2072
+ mTrays[i]->setTop(mTrayPadding);
2073
+ if (i == TL_LEFT || i == TL_CENTER || i == TL_RIGHT)
2074
+ mTrays[i]->setTop(-mTrays[i]->getHeight() / 2);
2075
+ if (i == TL_BOTTOMLEFT || i == TL_BOTTOM || i == TL_BOTTOMRIGHT)
2076
+ mTrays[i]->setTop(-mTrays[i]->getHeight() - mTrayPadding);
2077
+
2078
+ // prevents some weird texture filtering problems (just some)
2079
+ mTrays[i]->setPosition((int)mTrays[i]->getLeft(), (int)mTrays[i]->getTop());
2080
+ mTrays[i]->setDimensions((int)mTrays[i]->getWidth(), (int)mTrays[i]->getHeight());
2081
+ }
2082
+ }
2083
+
2084
+ /*-----------------------------------------------------------------------------
2085
+ | Returns a 3D ray into the scene that is directly underneath the cursor.
2086
+ -----------------------------------------------------------------------------*/
2087
+ Ogre::Ray getCursorRay(Ogre::Camera* cam)
2088
+ {
2089
+ return screenToScene(cam, Ogre::Vector2(mCursor->_getLeft(), mCursor->_getTop()));
2090
+ }
2091
+
2092
+ Button* createButton(TrayLocation trayLoc, const Ogre::String& name, const Ogre::String& caption, Ogre::Real width = 0)
2093
+ {
2094
+ Button* b = new Button(name, caption, width);
2095
+ moveWidgetToTray(b, trayLoc);
2096
+ b->_assignListener(mListener);
2097
+ return b;
2098
+ }
2099
+
2100
+ TextBox* createTextBox(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2101
+ Ogre::Real width, Ogre::Real height)
2102
+ {
2103
+ TextBox* tb = new TextBox(name, caption, width, height);
2104
+ moveWidgetToTray(tb, trayLoc);
2105
+ tb->_assignListener(mListener);
2106
+ return tb;
2107
+ }
2108
+
2109
+ SelectMenu* createThickSelectMenu(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2110
+ Ogre::Real width, unsigned int maxItemsShown, const Ogre::StringVector& items = Ogre::StringVector())
2111
+ {
2112
+ SelectMenu* sm = new SelectMenu(name, caption, width, 0, maxItemsShown);
2113
+ moveWidgetToTray(sm, trayLoc);
2114
+ sm->_assignListener(mListener);
2115
+ if (!items.empty()) sm->setItems(items);
2116
+ return sm;
2117
+ }
2118
+
2119
+ SelectMenu* createLongSelectMenu(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2120
+ Ogre::Real width, Ogre::Real boxWidth, unsigned int maxItemsShown, const Ogre::StringVector& items = Ogre::StringVector())
2121
+ {
2122
+ SelectMenu* sm = new SelectMenu(name, caption, width, boxWidth, maxItemsShown);
2123
+ moveWidgetToTray(sm, trayLoc);
2124
+ sm->_assignListener(mListener);
2125
+ if (!items.empty()) sm->setItems(items);
2126
+ return sm;
2127
+ }
2128
+
2129
+ SelectMenu* createLongSelectMenu(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2130
+ Ogre::Real boxWidth, unsigned int maxItemsShown, const Ogre::StringVector& items = Ogre::StringVector())
2131
+ {
2132
+ return createLongSelectMenu(trayLoc, name, caption, 0, boxWidth, maxItemsShown, items);
2133
+ }
2134
+
2135
+ Label* createLabel(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width = 0)
2136
+ {
2137
+ Label* l = new Label(name, caption, width);
2138
+ moveWidgetToTray(l, trayLoc);
2139
+ l->_assignListener(mListener);
2140
+ return l;
2141
+ }
2142
+
2143
+ Separator* createSeparator(TrayLocation trayLoc, const Ogre::String& name, Ogre::Real width = 0)
2144
+ {
2145
+ Separator* s = new Separator(name, width);
2146
+ moveWidgetToTray(s, trayLoc);
2147
+ return s;
2148
+ }
2149
+
2150
+ Slider* createThickSlider(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2151
+ Ogre::Real width, Ogre::Real valueBoxWidth, Ogre::Real minValue, Ogre::Real maxValue, unsigned int snaps)
2152
+ {
2153
+ Slider* s = new Slider(name, caption, width, 0, valueBoxWidth, minValue, maxValue, snaps);
2154
+ moveWidgetToTray(s, trayLoc);
2155
+ s->_assignListener(mListener);
2156
+ return s;
2157
+ }
2158
+
2159
+ Slider* createLongSlider(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption, Ogre::Real width,
2160
+ Ogre::Real trackWidth, Ogre::Real valueBoxWidth, Ogre::Real minValue, Ogre::Real maxValue, unsigned int snaps)
2161
+ {
2162
+ if (trackWidth <= 0) trackWidth = 1;
2163
+ Slider* s = new Slider(name, caption, width, trackWidth, valueBoxWidth, minValue, maxValue, snaps);
2164
+ moveWidgetToTray(s, trayLoc);
2165
+ s->_assignListener(mListener);
2166
+ return s;
2167
+ }
2168
+
2169
+ Slider* createLongSlider(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2170
+ Ogre::Real trackWidth, Ogre::Real valueBoxWidth, Ogre::Real minValue, Ogre::Real maxValue, unsigned int snaps)
2171
+ {
2172
+ return createLongSlider(trayLoc, name, caption, 0, trackWidth, valueBoxWidth, minValue, maxValue, snaps);
2173
+ }
2174
+
2175
+ ParamsPanel* createParamsPanel(TrayLocation trayLoc, const Ogre::String& name, Ogre::Real width, unsigned int lines)
2176
+ {
2177
+ ParamsPanel* pp = new ParamsPanel(name, width, lines);
2178
+ moveWidgetToTray(pp, trayLoc);
2179
+ return pp;
2180
+ }
2181
+
2182
+ ParamsPanel* createParamsPanel(TrayLocation trayLoc, const Ogre::String& name, Ogre::Real width,
2183
+ const Ogre::StringVector& paramNames)
2184
+ {
2185
+ ParamsPanel* pp = new ParamsPanel(name, width, paramNames.size());
2186
+ pp->setAllParamNames(paramNames);
2187
+ moveWidgetToTray(pp, trayLoc);
2188
+ return pp;
2189
+ }
2190
+
2191
+ CheckBox* createCheckBox(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2192
+ Ogre::Real width = 0)
2193
+ {
2194
+ CheckBox* cb = new CheckBox(name, caption, width);
2195
+ moveWidgetToTray(cb, trayLoc);
2196
+ cb->_assignListener(mListener);
2197
+ return cb;
2198
+ }
2199
+
2200
+ DecorWidget* createDecorWidget(TrayLocation trayLoc, const Ogre::String& name, const Ogre::String& templateName)
2201
+ {
2202
+ DecorWidget* dw = new DecorWidget(name, templateName);
2203
+ moveWidgetToTray(dw, trayLoc);
2204
+ return dw;
2205
+ }
2206
+
2207
+ ProgressBar* createProgressBar(TrayLocation trayLoc, const Ogre::String& name, const Ogre::DisplayString& caption,
2208
+ Ogre::Real width, Ogre::Real commentBoxWidth)
2209
+ {
2210
+ ProgressBar* pb = new ProgressBar(name, caption, width, commentBoxWidth);
2211
+ moveWidgetToTray(pb, trayLoc);
2212
+ return pb;
2213
+ }
2214
+
2215
+ /*-----------------------------------------------------------------------------
2216
+ | Shows frame statistics widget set in the specified location.
2217
+ -----------------------------------------------------------------------------*/
2218
+ void showFrameStats(TrayLocation trayLoc, int place = -1)
2219
+ {
2220
+ if (!areFrameStatsVisible())
2221
+ {
2222
+ Ogre::StringVector stats;
2223
+ stats.push_back("Average FPS");
2224
+ stats.push_back("Best FPS");
2225
+ stats.push_back("Worst FPS");
2226
+ stats.push_back("Triangles");
2227
+ stats.push_back("Batches");
2228
+
2229
+ mFpsLabel = createLabel(TL_NONE, mName + "/FpsLabel", "FPS:", 180);
2230
+ mFpsLabel->_assignListener(this);
2231
+ mStatsPanel = createParamsPanel(TL_NONE, mName + "/StatsPanel", 180, stats);
2232
+ }
2233
+
2234
+ moveWidgetToTray(mFpsLabel, trayLoc, place);
2235
+ moveWidgetToTray(mStatsPanel, trayLoc, locateWidgetInTray(mFpsLabel) + 1);
2236
+ }
2237
+
2238
+ /*-----------------------------------------------------------------------------
2239
+ | Hides frame statistics widget set.
2240
+ -----------------------------------------------------------------------------*/
2241
+ void hideFrameStats()
2242
+ {
2243
+ if (areFrameStatsVisible())
2244
+ {
2245
+ destroyWidget(mFpsLabel);
2246
+ destroyWidget(mStatsPanel);
2247
+ mFpsLabel = 0;
2248
+ mStatsPanel = 0;
2249
+ }
2250
+ }
2251
+
2252
+ bool areFrameStatsVisible()
2253
+ {
2254
+ return mFpsLabel != 0;
2255
+ }
2256
+
2257
+ /*-----------------------------------------------------------------------------
2258
+ | Toggles visibility of advanced statistics.
2259
+ -----------------------------------------------------------------------------*/
2260
+ void toggleAdvancedFrameStats()
2261
+ {
2262
+ if (mFpsLabel) labelHit(mFpsLabel);
2263
+ }
2264
+
2265
+ /*-----------------------------------------------------------------------------
2266
+ | Shows logo in the specified location.
2267
+ -----------------------------------------------------------------------------*/
2268
+ void showLogo(TrayLocation trayLoc, int place = -1)
2269
+ {
2270
+ if (!isLogoVisible()) mLogo = createDecorWidget(TL_NONE, mName + "/Logo", "SdkTrays/Logo");
2271
+ moveWidgetToTray(mLogo, trayLoc, place);
2272
+ }
2273
+
2274
+ void hideLogo()
2275
+ {
2276
+ if (isLogoVisible())
2277
+ {
2278
+ destroyWidget(mLogo);
2279
+ mLogo = 0;
2280
+ }
2281
+ }
2282
+
2283
+ bool isLogoVisible()
2284
+ {
2285
+ return mLogo != 0;
2286
+ }
2287
+
2288
+ /*-----------------------------------------------------------------------------
2289
+ | Shows loading bar. Also takes job settings: the number of resource groups
2290
+ | to be initialised, the number of resource groups to be loaded, and the
2291
+ | proportion of the job that will be taken up by initialisation. Usually,
2292
+ | script parsing takes up most time, so the default value is 0.7.
2293
+ -----------------------------------------------------------------------------*/
2294
+ void showLoadingBar(unsigned int numGroupsInit = 1, unsigned int numGroupsLoad = 1,
2295
+ Ogre::Real initProportion = 0.7)
2296
+ {
2297
+ if (mDialog) closeDialog();
2298
+ if (mLoadBar) hideLoadingBar();
2299
+
2300
+ mLoadBar = new ProgressBar(mName + "/LoadingBar", "Loading...", 400, 308);
2301
+ Ogre::OverlayElement* e = mLoadBar->getOverlayElement();
2302
+ mDialogShade->addChild(e);
2303
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2304
+ e->setLeft(-(e->getWidth() / 2));
2305
+ e->setTop(-(e->getHeight() / 2));
2306
+
2307
+ Ogre::ResourceGroupManager::getSingleton().addResourceGroupListener(this);
2308
+ mCursorWasVisible = isCursorVisible();
2309
+ hideCursor();
2310
+ mDialogShade->show();
2311
+
2312
+ // calculate the proportion of job required to init/load one group
2313
+
2314
+ if (numGroupsInit == 0 && numGroupsLoad != 0)
2315
+ {
2316
+ mGroupInitProportion = 0;
2317
+ mGroupLoadProportion = 1;
2318
+ }
2319
+ else if (numGroupsLoad == 0 && numGroupsInit != 0)
2320
+ {
2321
+ mGroupLoadProportion = 0;
2322
+ if (numGroupsInit != 0) mGroupInitProportion = 1;
2323
+ }
2324
+ else if (numGroupsInit == 0 && numGroupsLoad == 0)
2325
+ {
2326
+ mGroupInitProportion = 0;
2327
+ mGroupLoadProportion = 0;
2328
+ }
2329
+ else
2330
+ {
2331
+ mGroupInitProportion = initProportion / numGroupsInit;
2332
+ mGroupLoadProportion = (1 - initProportion) / numGroupsLoad;
2333
+ }
2334
+ }
2335
+
2336
+ void hideLoadingBar()
2337
+ {
2338
+ if (mLoadBar)
2339
+ {
2340
+ mLoadBar->cleanup();
2341
+ delete mLoadBar;
2342
+ mLoadBar = 0;
2343
+
2344
+ Ogre::ResourceGroupManager::getSingleton().removeResourceGroupListener(this);
2345
+ if (mCursorWasVisible) showCursor();
2346
+ mDialogShade->hide();
2347
+ }
2348
+ }
2349
+
2350
+ bool isLoadingBarVisible()
2351
+ {
2352
+ return mLoadBar != 0;
2353
+ }
2354
+
2355
+ /*-----------------------------------------------------------------------------
2356
+ | Pops up a message dialog with an OK button.
2357
+ -----------------------------------------------------------------------------*/
2358
+ void showOkDialog(const Ogre::DisplayString& caption, const Ogre::DisplayString& message)
2359
+ {
2360
+ if (mLoadBar) hideLoadingBar();
2361
+
2362
+ Ogre::OverlayElement* e;
2363
+
2364
+ if (mDialog)
2365
+ {
2366
+ mDialog->setCaption(caption);
2367
+ mDialog->setText(message);
2368
+
2369
+ if (mOk) return;
2370
+ else
2371
+ {
2372
+ mYes->cleanup();
2373
+ mNo->cleanup();
2374
+ delete mYes;
2375
+ delete mNo;
2376
+ mYes = 0;
2377
+ mNo = 0;
2378
+ }
2379
+ }
2380
+ else
2381
+ {
2382
+ // give widgets a chance to reset in case they're in the middle of something
2383
+ for (unsigned int i = 0; i < 10; i++)
2384
+ {
2385
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
2386
+ {
2387
+ mWidgets[i][j]->_focusLost();
2388
+ }
2389
+ }
2390
+
2391
+ mDialogShade->show();
2392
+
2393
+ mDialog = new TextBox(mName + "/DialogBox", caption, 300, 208);
2394
+ mDialog->setText(message);
2395
+ e = mDialog->getOverlayElement();
2396
+ mDialogShade->addChild(e);
2397
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2398
+ e->setLeft(-(e->getWidth() / 2));
2399
+ e->setTop(-(e->getHeight() / 2));
2400
+
2401
+ mCursorWasVisible = isCursorVisible();
2402
+ showCursor();
2403
+ }
2404
+
2405
+ mOk = new Button(mName + "/OkButton", "OK", 60);
2406
+ mOk->_assignListener(this);
2407
+ e = mOk->getOverlayElement();
2408
+ mDialogShade->addChild(e);
2409
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2410
+ e->setLeft(-(e->getWidth() / 2));
2411
+ e->setTop(mDialog->getOverlayElement()->getTop() + mDialog->getOverlayElement()->getHeight() + 5);
2412
+ }
2413
+
2414
+ /*-----------------------------------------------------------------------------
2415
+ | Pops up a question dialog with Yes and No buttons.
2416
+ -----------------------------------------------------------------------------*/
2417
+ void showYesNoDialog(const Ogre::DisplayString& caption, const Ogre::DisplayString& question)
2418
+ {
2419
+ if (mLoadBar) hideLoadingBar();
2420
+
2421
+ Ogre::OverlayElement* e;
2422
+
2423
+ if (mDialog)
2424
+ {
2425
+ mDialog->setCaption(caption);
2426
+ mDialog->setText(question);
2427
+
2428
+ if (mOk)
2429
+ {
2430
+ mOk->cleanup();
2431
+ delete mOk;
2432
+ mOk = 0;
2433
+ }
2434
+ else return;
2435
+ }
2436
+ else
2437
+ {
2438
+ // give widgets a chance to reset in case they're in the middle of something
2439
+ for (unsigned int i = 0; i < 10; i++)
2440
+ {
2441
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
2442
+ {
2443
+ mWidgets[i][j]->_focusLost();
2444
+ }
2445
+ }
2446
+
2447
+ mDialogShade->show();
2448
+
2449
+ mDialog = new TextBox(mName + "/DialogBox", caption, 300, 208);
2450
+ mDialog->setText(question);
2451
+ e = mDialog->getOverlayElement();
2452
+ mDialogShade->addChild(e);
2453
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2454
+ e->setLeft(-(e->getWidth() / 2));
2455
+ e->setTop(-(e->getHeight() / 2));
2456
+
2457
+ mCursorWasVisible = isCursorVisible();
2458
+ showCursor();
2459
+ }
2460
+
2461
+ mYes = new Button(mName + "/YesButton", "Yes", 58);
2462
+ mYes->_assignListener(this);
2463
+ e = mYes->getOverlayElement();
2464
+ mDialogShade->addChild(e);
2465
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2466
+ e->setLeft(-(e->getWidth() + 2));
2467
+ e->setTop(mDialog->getOverlayElement()->getTop() + mDialog->getOverlayElement()->getHeight() + 5);
2468
+
2469
+ mNo = new Button(mName + "/NoButton", "No", 50);
2470
+ mNo->_assignListener(this);
2471
+ e = mNo->getOverlayElement();
2472
+ mDialogShade->addChild(e);
2473
+ e->setVerticalAlignment(Ogre::GVA_CENTER);
2474
+ e->setLeft(3);
2475
+ e->setTop(mDialog->getOverlayElement()->getTop() + mDialog->getOverlayElement()->getHeight() + 5);
2476
+ }
2477
+
2478
+ /*-----------------------------------------------------------------------------
2479
+ | Hides whatever dialog is currently showing.
2480
+ -----------------------------------------------------------------------------*/
2481
+ void closeDialog()
2482
+ {
2483
+ if (mDialog)
2484
+ {
2485
+ if (mOk)
2486
+ {
2487
+ mOk->cleanup();
2488
+ delete mOk;
2489
+ mOk = 0;
2490
+ }
2491
+ else
2492
+ {
2493
+ mYes->cleanup();
2494
+ mNo->cleanup();
2495
+ delete mYes;
2496
+ delete mNo;
2497
+ mYes = 0;
2498
+ mNo = 0;
2499
+ }
2500
+
2501
+ mDialogShade->hide();
2502
+ mDialog->cleanup();
2503
+ delete mDialog;
2504
+ mDialog = 0;
2505
+
2506
+ if (!mCursorWasVisible) hideCursor();
2507
+ }
2508
+ }
2509
+
2510
+ /*-----------------------------------------------------------------------------
2511
+ | Determines if any dialog is currently visible.
2512
+ -----------------------------------------------------------------------------*/
2513
+ bool isDialogVisible()
2514
+ {
2515
+ return mDialog != 0;
2516
+ }
2517
+
2518
+ /*-----------------------------------------------------------------------------
2519
+ | Gets a widget from a tray by place.
2520
+ -----------------------------------------------------------------------------*/
2521
+ Widget* getWidget(TrayLocation trayLoc, unsigned int place)
2522
+ {
2523
+ if (place < mWidgets[trayLoc].size()) return mWidgets[trayLoc][place];
2524
+ return 0;
2525
+ }
2526
+
2527
+ /*-----------------------------------------------------------------------------
2528
+ | Gets a widget from a tray by name.
2529
+ -----------------------------------------------------------------------------*/
2530
+ Widget* getWidget(TrayLocation trayLoc, const Ogre::String& name)
2531
+ {
2532
+ for (unsigned int i = 0; i < mWidgets[trayLoc].size(); i++)
2533
+ {
2534
+ if (mWidgets[trayLoc][i]->getName() == name) return mWidgets[trayLoc][i];
2535
+ }
2536
+ return 0;
2537
+ }
2538
+
2539
+ /*-----------------------------------------------------------------------------
2540
+ | Gets a widget by name.
2541
+ -----------------------------------------------------------------------------*/
2542
+ Widget* getWidget(const Ogre::String& name)
2543
+ {
2544
+ for (unsigned int i = 0; i < 10; i++)
2545
+ {
2546
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
2547
+ {
2548
+ if (mWidgets[i][j]->getName() == name) return mWidgets[i][j];
2549
+ }
2550
+ }
2551
+ return 0;
2552
+ }
2553
+
2554
+ /*-----------------------------------------------------------------------------
2555
+ | Gets the number of widgets in total.
2556
+ -----------------------------------------------------------------------------*/
2557
+ unsigned int getNumWidgets()
2558
+ {
2559
+ unsigned int total = 0;
2560
+
2561
+ for (unsigned int i = 0; i < 10; i++)
2562
+ {
2563
+ total += mWidgets[i].size();
2564
+ }
2565
+
2566
+ return total;
2567
+ }
2568
+
2569
+ /*-----------------------------------------------------------------------------
2570
+ | Gets the number of widgets in a tray.
2571
+ -----------------------------------------------------------------------------*/
2572
+ unsigned int getNumWidgets(TrayLocation trayLoc)
2573
+ {
2574
+ return mWidgets[trayLoc].size();
2575
+ }
2576
+
2577
+ /*-----------------------------------------------------------------------------
2578
+ | Gets all the widgets of a specific tray.
2579
+ -----------------------------------------------------------------------------*/
2580
+ WidgetIterator getWidgetIterator(TrayLocation trayLoc)
2581
+ {
2582
+ return WidgetIterator(mWidgets[trayLoc].begin(), mWidgets[trayLoc].end());
2583
+ }
2584
+
2585
+ /*-----------------------------------------------------------------------------
2586
+ | Gets a widget's position in its tray.
2587
+ -----------------------------------------------------------------------------*/
2588
+ int locateWidgetInTray(Widget* widget)
2589
+ {
2590
+ for (unsigned int i = 0; i < mWidgets[widget->getTrayLocation()].size(); i++)
2591
+ {
2592
+ if (mWidgets[widget->getTrayLocation()][i] == widget) return i;
2593
+ }
2594
+ return -1;
2595
+ }
2596
+
2597
+ /*-----------------------------------------------------------------------------
2598
+ | Destroys a widget.
2599
+ -----------------------------------------------------------------------------*/
2600
+ void destroyWidget(Widget* widget)
2601
+ {
2602
+ if (!widget) OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, "Widget does not exist.", "TrayManager::destroyWidget");
2603
+
2604
+ // in case special widgets are destroyed manually, set them to 0
2605
+ if (widget == mLogo) mLogo = 0;
2606
+ else if (widget == mStatsPanel) mStatsPanel = 0;
2607
+ else if (widget == mFpsLabel) mFpsLabel = 0;
2608
+
2609
+ mTrays[widget->getTrayLocation()]->removeChild(widget->getName());
2610
+
2611
+ WidgetList& wList = mWidgets[widget->getTrayLocation()];
2612
+ wList.erase(std::find(wList.begin(), wList.end(), widget));
2613
+ if (widget == mExpandedMenu) setExpandedMenu(0);
2614
+
2615
+ widget->cleanup();
2616
+
2617
+ mWidgetDeathRow.push_back(widget);
2618
+
2619
+ adjustTrays();
2620
+ }
2621
+
2622
+ void destroyWidget(TrayLocation trayLoc, unsigned int place)
2623
+ {
2624
+ destroyWidget(getWidget(trayLoc, place));
2625
+ }
2626
+
2627
+ void destroyWidget(TrayLocation trayLoc, const Ogre::String& name)
2628
+ {
2629
+ destroyWidget(getWidget(trayLoc, name));
2630
+ }
2631
+
2632
+ void destroyWidget(const Ogre::String& name)
2633
+ {
2634
+ destroyWidget(getWidget(name));
2635
+ }
2636
+
2637
+ /*-----------------------------------------------------------------------------
2638
+ | Destroys all widgets in a tray.
2639
+ -----------------------------------------------------------------------------*/
2640
+ void destroyAllWidgetsInTray(TrayLocation trayLoc)
2641
+ {
2642
+ while (!mWidgets[trayLoc].empty()) destroyWidget(mWidgets[trayLoc][0]);
2643
+ }
2644
+
2645
+ /*-----------------------------------------------------------------------------
2646
+ | Destroys all widgets.
2647
+ -----------------------------------------------------------------------------*/
2648
+ void destroyAllWidgets()
2649
+ {
2650
+ for (unsigned int i = 0; i < 10; i++) // destroy every widget in every tray (including null tray)
2651
+ {
2652
+ destroyAllWidgetsInTray((TrayLocation)i);
2653
+ }
2654
+ }
2655
+
2656
+ /*-----------------------------------------------------------------------------
2657
+ | Adds a widget to a specified tray.
2658
+ -----------------------------------------------------------------------------*/
2659
+ void moveWidgetToTray(Widget* widget, TrayLocation trayLoc, int place = -1)
2660
+ {
2661
+ if (!widget) OGRE_EXCEPT(Ogre::Exception::ERR_ITEM_NOT_FOUND, "Widget does not exist.", "TrayManager::moveWidgetToTray");
2662
+
2663
+ // remove widget from old tray
2664
+ WidgetList& wList = mWidgets[widget->getTrayLocation()];
2665
+ WidgetList::iterator it = std::find(wList.begin(), wList.end(), widget);
2666
+ if (it != wList.end())
2667
+ {
2668
+ wList.erase(it);
2669
+ mTrays[widget->getTrayLocation()]->removeChild(widget->getName());
2670
+ }
2671
+
2672
+ // insert widget into new tray at given position, or at the end if unspecified or invalid
2673
+ if (place == -1 || place > (int)mWidgets[trayLoc].size()) place = mWidgets[trayLoc].size();
2674
+ mWidgets[trayLoc].insert(mWidgets[trayLoc].begin() + place, widget);
2675
+ mTrays[trayLoc]->addChild(widget->getOverlayElement());
2676
+
2677
+ widget->getOverlayElement()->setHorizontalAlignment(mTrayWidgetAlign[trayLoc]);
2678
+
2679
+ // adjust trays if necessary
2680
+ if (widget->getTrayLocation() != TL_NONE || trayLoc != TL_NONE) adjustTrays();
2681
+
2682
+ widget->_assignToTray(trayLoc);
2683
+ }
2684
+
2685
+ void moveWidgetToTray(const Ogre::String& name, TrayLocation trayLoc, unsigned int place = -1)
2686
+ {
2687
+ moveWidgetToTray(getWidget(name), trayLoc, place);
2688
+ }
2689
+
2690
+ void moveWidgetToTray(TrayLocation currentTrayLoc, const Ogre::String& name, TrayLocation targetTrayLoc,
2691
+ int place = -1)
2692
+ {
2693
+ moveWidgetToTray(getWidget(currentTrayLoc, name), targetTrayLoc, place);
2694
+ }
2695
+
2696
+ void moveWidgetToTray(TrayLocation currentTrayLoc, unsigned int currentPlace, TrayLocation targetTrayLoc,
2697
+ int targetPlace = -1)
2698
+ {
2699
+ moveWidgetToTray(getWidget(currentTrayLoc, currentPlace), targetTrayLoc, targetPlace);
2700
+ }
2701
+
2702
+ /*-----------------------------------------------------------------------------
2703
+ | Removes a widget from its tray. Same as moving it to the null tray.
2704
+ -----------------------------------------------------------------------------*/
2705
+ void removeWidgetFromTray(Widget* widget)
2706
+ {
2707
+ moveWidgetToTray(widget, TL_NONE);
2708
+ }
2709
+
2710
+ void removeWidgetFromTray(const Ogre::String& name)
2711
+ {
2712
+ removeWidgetFromTray(getWidget(name));
2713
+ }
2714
+
2715
+ void removeWidgetFromTray(TrayLocation trayLoc, const Ogre::String& name)
2716
+ {
2717
+ removeWidgetFromTray(getWidget(trayLoc, name));
2718
+ }
2719
+
2720
+ void removeWidgetFromTray(TrayLocation trayLoc, int place)
2721
+ {
2722
+ removeWidgetFromTray(getWidget(trayLoc, place));
2723
+ }
2724
+
2725
+ /*-----------------------------------------------------------------------------
2726
+ | Removes all widgets from a widget tray.
2727
+ -----------------------------------------------------------------------------*/
2728
+ void clearTray(TrayLocation trayLoc)
2729
+ {
2730
+ if (trayLoc == TL_NONE) return; // can't clear the null tray
2731
+
2732
+ while (!mWidgets[trayLoc].empty()) // remove every widget from given tray
2733
+ {
2734
+ removeWidgetFromTray(mWidgets[trayLoc][0]);
2735
+ }
2736
+ }
2737
+
2738
+ /*-----------------------------------------------------------------------------
2739
+ | Removes all widgets from all widget trays.
2740
+ -----------------------------------------------------------------------------*/
2741
+ void clearAllTrays()
2742
+ {
2743
+ for (unsigned int i = 0; i < 9; i++)
2744
+ {
2745
+ clearTray((TrayLocation)i);
2746
+ }
2747
+ }
2748
+
2749
+ /*-----------------------------------------------------------------------------
2750
+ | Process frame events. Updates frame statistics widget set and deletes
2751
+ | all widgets queued for destruction.
2752
+ -----------------------------------------------------------------------------*/
2753
+ bool frameRenderingQueued(const Ogre::FrameEvent& evt)
2754
+ {
2755
+ for (unsigned int i = 0; i < mWidgetDeathRow.size(); i++)
2756
+ {
2757
+ delete mWidgetDeathRow[i];
2758
+ }
2759
+ mWidgetDeathRow.clear();
2760
+
2761
+
2762
+ unsigned long currentTime = mTimer->getMilliseconds();
2763
+ if (areFrameStatsVisible() && currentTime - mLastStatUpdateTime > 250)
2764
+ {
2765
+ Ogre::RenderTarget::FrameStats stats = mWindow->getStatistics();
2766
+
2767
+ mLastStatUpdateTime = currentTime;
2768
+
2769
+ Ogre::String s("FPS: ");
2770
+ s += Ogre::StringConverter::toString((int)stats.lastFPS);
2771
+
2772
+ for (int i = s.length() - 5; i > 5; i -= 3) { s.insert(i, 1, ','); }
2773
+ mFpsLabel->setCaption(s);
2774
+
2775
+ if (mStatsPanel->getOverlayElement()->isVisible())
2776
+ {
2777
+ Ogre::StringVector values;
2778
+ std::ostringstream oss;
2779
+
2780
+ oss.str("");
2781
+ oss << std::fixed << std::setprecision(1) << stats.avgFPS;
2782
+ Ogre::String str = oss.str();
2783
+ for (int i = str.length() - 5; i > 0; i -= 3) { str.insert(i, 1, ','); }
2784
+ values.push_back(str);
2785
+
2786
+ oss.str("");
2787
+ oss << std::fixed << std::setprecision(1) << stats.bestFPS;
2788
+ str = oss.str();
2789
+ for (int i = str.length() - 5; i > 0; i -= 3) { str.insert(i, 1, ','); }
2790
+ values.push_back(str);
2791
+
2792
+ oss.str("");
2793
+ oss << std::fixed << std::setprecision(1) << stats.worstFPS;
2794
+ str = oss.str();
2795
+ for (int i = str.length() - 5; i > 0; i -= 3) { str.insert(i, 1, ','); }
2796
+ values.push_back(str);
2797
+
2798
+ str = Ogre::StringConverter::toString(stats.triangleCount);
2799
+ for (int i = str.length() - 3; i > 0; i -= 3) { str.insert(i, 1, ','); }
2800
+ values.push_back(str);
2801
+
2802
+ str = Ogre::StringConverter::toString(stats.batchCount);
2803
+ for (int i = str.length() - 3; i > 0; i -= 3) { str.insert(i, 1, ','); }
2804
+ values.push_back(str);
2805
+
2806
+ mStatsPanel->setAllParamValues(values);
2807
+ }
2808
+ }
2809
+
2810
+ return true;
2811
+ }
2812
+
2813
+ void windowUpdate()
2814
+ {
2815
+ #if OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS && OGRE_PLATFORM != OGRE_PLATFORM_NACL
2816
+ mWindow->update();
2817
+ #endif
2818
+ }
2819
+
2820
+ void resourceGroupScriptingStarted(const Ogre::String& groupName, size_t scriptCount)
2821
+ {
2822
+ mLoadInc = mGroupInitProportion / scriptCount;
2823
+ mLoadBar->setCaption("Parsing...");
2824
+ windowUpdate();
2825
+ }
2826
+
2827
+ void scriptParseStarted(const Ogre::String& scriptName, bool& skipThisScript)
2828
+ {
2829
+ mLoadBar->setComment(scriptName);
2830
+ windowUpdate();
2831
+ }
2832
+
2833
+ void scriptParseEnded(const Ogre::String& scriptName, bool skipped)
2834
+ {
2835
+ mLoadBar->setProgress(mLoadBar->getProgress() + mLoadInc);
2836
+ windowUpdate();
2837
+ }
2838
+
2839
+ void resourceGroupScriptingEnded(const Ogre::String& groupName) {}
2840
+
2841
+ void resourceGroupLoadStarted(const Ogre::String& groupName, size_t resourceCount)
2842
+ {
2843
+ mLoadInc = mGroupLoadProportion / resourceCount;
2844
+ mLoadBar->setCaption("Loading...");
2845
+ windowUpdate();
2846
+ }
2847
+
2848
+ void resourceLoadStarted(const Ogre::ResourcePtr& resource)
2849
+ {
2850
+ mLoadBar->setComment(resource->getName());
2851
+ windowUpdate();
2852
+ }
2853
+
2854
+ void resourceLoadEnded()
2855
+ {
2856
+ mLoadBar->setProgress(mLoadBar->getProgress() + mLoadInc);
2857
+ windowUpdate();
2858
+ }
2859
+
2860
+ void worldGeometryStageStarted(const Ogre::String& description)
2861
+ {
2862
+ mLoadBar->setComment(description);
2863
+ windowUpdate();
2864
+ }
2865
+
2866
+ void worldGeometryStageEnded()
2867
+ {
2868
+ mLoadBar->setProgress(mLoadBar->getProgress() + mLoadInc);
2869
+ windowUpdate();
2870
+ }
2871
+
2872
+ void resourceGroupLoadEnded(const Ogre::String& groupName) {}
2873
+
2874
+ /*-----------------------------------------------------------------------------
2875
+ | Toggles visibility of advanced statistics.
2876
+ -----------------------------------------------------------------------------*/
2877
+ void labelHit(Label* label)
2878
+ {
2879
+ if (mStatsPanel->getOverlayElement()->isVisible())
2880
+ {
2881
+ mStatsPanel->getOverlayElement()->hide();
2882
+ mFpsLabel->getOverlayElement()->setWidth(150);
2883
+ removeWidgetFromTray(mStatsPanel);
2884
+ }
2885
+ else
2886
+ {
2887
+ mStatsPanel->getOverlayElement()->show();
2888
+ mFpsLabel->getOverlayElement()->setWidth(180);
2889
+ moveWidgetToTray(mStatsPanel, mFpsLabel->getTrayLocation(), locateWidgetInTray(mFpsLabel) + 1);
2890
+ }
2891
+ }
2892
+
2893
+ /*-----------------------------------------------------------------------------
2894
+ | Destroys dialog widgets, notifies listener, and ends high priority session.
2895
+ -----------------------------------------------------------------------------*/
2896
+ void buttonHit(Button* button)
2897
+ {
2898
+ if (mListener)
2899
+ {
2900
+ if (button == mOk) mListener->okDialogClosed(mDialog->getText());
2901
+ else mListener->yesNoDialogClosed(mDialog->getText(), button == mYes);
2902
+ }
2903
+ closeDialog();
2904
+ }
2905
+
2906
+ /*-----------------------------------------------------------------------------
2907
+ | Processes mouse button down events. Returns true if the event was
2908
+ | consumed and should not be passed on to other handlers.
2909
+ -----------------------------------------------------------------------------*/
2910
+ #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS) || (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
2911
+ bool injectMouseDown(const OIS::MultiTouchEvent& evt)
2912
+ #else
2913
+ bool injectMouseDown(const OIS::MouseEvent& evt, OIS::MouseButtonID id)
2914
+ #endif
2915
+ {
2916
+ #if (OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS) && (OGRE_PLATFORM != OGRE_PLATFORM_ANDROID)
2917
+ // only process left button when stuff is visible
2918
+ if (!mCursorLayer->isVisible() || id != OIS::MB_Left) return false;
2919
+ #else
2920
+ // only process touches when stuff is visible
2921
+ if (!mCursorLayer->isVisible()) return false;
2922
+ #endif
2923
+ Ogre::Vector2 cursorPos(mCursor->getLeft(), mCursor->getTop());
2924
+
2925
+ mTrayDrag = false;
2926
+
2927
+ if (mExpandedMenu) // only check top priority widget until it passes on
2928
+ {
2929
+ mExpandedMenu->_cursorPressed(cursorPos);
2930
+ if (!mExpandedMenu->isExpanded()) setExpandedMenu(0);
2931
+ return true;
2932
+ }
2933
+
2934
+ if (mDialog) // only check top priority widget until it passes on
2935
+ {
2936
+ mDialog->_cursorPressed(cursorPos);
2937
+ if (mOk) mOk->_cursorPressed(cursorPos);
2938
+ else
2939
+ {
2940
+ mYes->_cursorPressed(cursorPos);
2941
+ mNo->_cursorPressed(cursorPos);
2942
+ }
2943
+ return true;
2944
+ }
2945
+
2946
+ for (unsigned int i = 0; i < 9; i++) // check if mouse is over a non-null tray
2947
+ {
2948
+ if (mTrays[i]->isVisible() && Widget::isCursorOver(mTrays[i], cursorPos, 2))
2949
+ {
2950
+ mTrayDrag = true; // initiate a drag that originates in a tray
2951
+ break;
2952
+ }
2953
+ }
2954
+
2955
+ for (unsigned int i = 0; i < mWidgets[9].size(); i++) // check if mouse is over a non-null tray's widgets
2956
+ {
2957
+ if (mWidgets[9][i]->getOverlayElement()->isVisible() &&
2958
+ Widget::isCursorOver(mWidgets[9][i]->getOverlayElement(), cursorPos))
2959
+ {
2960
+ mTrayDrag = true; // initiate a drag that originates in a tray
2961
+ break;
2962
+ }
2963
+ }
2964
+
2965
+ if (!mTrayDrag) return false; // don't process if mouse press is not in tray
2966
+
2967
+ for (unsigned int i = 0; i < 10; i++)
2968
+ {
2969
+ if (!mTrays[i]->isVisible()) continue;
2970
+
2971
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
2972
+ {
2973
+ Widget* w = mWidgets[i][j];
2974
+ if (!w->getOverlayElement()->isVisible()) continue;
2975
+ w->_cursorPressed(cursorPos); // send event to widget
2976
+
2977
+ SelectMenu* m = dynamic_cast<SelectMenu*>(w);
2978
+ if (m && m->isExpanded()) // a menu has begun a top priority session
2979
+ {
2980
+ setExpandedMenu(m);
2981
+ return true;
2982
+ }
2983
+ }
2984
+ }
2985
+
2986
+ return true; // a tray click is not to be handled by another party
2987
+ }
2988
+
2989
+ /*-----------------------------------------------------------------------------
2990
+ | Processes mouse button up events. Returns true if the event was
2991
+ | consumed and should not be passed on to other handlers.
2992
+ -----------------------------------------------------------------------------*/
2993
+ #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS) || (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
2994
+ bool injectMouseUp(const OIS::MultiTouchEvent& evt)
2995
+ #else
2996
+ bool injectMouseUp(const OIS::MouseEvent& evt, OIS::MouseButtonID id)
2997
+ #endif
2998
+ {
2999
+ #if (OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS) && (OGRE_PLATFORM != OGRE_PLATFORM_ANDROID)
3000
+ // only process left button when stuff is visible
3001
+ if (!mCursorLayer->isVisible() || id != OIS::MB_Left) return false;
3002
+ #else
3003
+ // only process touches when stuff is visible
3004
+ if (!mCursorLayer->isVisible()) return false;
3005
+ #endif
3006
+ Ogre::Vector2 cursorPos(mCursor->getLeft(), mCursor->getTop());
3007
+
3008
+ if (mExpandedMenu) // only check top priority widget until it passes on
3009
+ {
3010
+ mExpandedMenu->_cursorReleased(cursorPos);
3011
+ return true;
3012
+ }
3013
+
3014
+ if (mDialog) // only check top priority widget until it passes on
3015
+ {
3016
+ mDialog->_cursorReleased(cursorPos);
3017
+ if (mOk) mOk->_cursorReleased(cursorPos);
3018
+ else
3019
+ {
3020
+ mYes->_cursorReleased(cursorPos);
3021
+ // very important to check if second button still exists, because first button could've closed the popup
3022
+ if (mNo) mNo->_cursorReleased(cursorPos);
3023
+ }
3024
+ return true;
3025
+ }
3026
+
3027
+ if (!mTrayDrag) return false; // this click did not originate in a tray, so don't process
3028
+
3029
+ Widget* w;
3030
+
3031
+ for (unsigned int i = 0; i < 10; i++)
3032
+ {
3033
+ if (!mTrays[i]->isVisible()) continue;
3034
+
3035
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
3036
+ {
3037
+ w = mWidgets[i][j];
3038
+ if (!w->getOverlayElement()->isVisible()) continue;
3039
+ w->_cursorReleased(cursorPos); // send event to widget
3040
+ }
3041
+ }
3042
+
3043
+ mTrayDrag = false; // stop this drag
3044
+ return true; // this click did originate in this tray, so don't pass it on
3045
+ }
3046
+
3047
+ /*-----------------------------------------------------------------------------
3048
+ | Updates cursor position. Returns true if the event was
3049
+ | consumed and should not be passed on to other handlers.
3050
+ -----------------------------------------------------------------------------*/
3051
+ #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS) || (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
3052
+ bool injectMouseMove(const OIS::MultiTouchEvent& evt)
3053
+ #else
3054
+ bool injectMouseMove(const OIS::MouseEvent& evt)
3055
+ #endif
3056
+ {
3057
+ if (!mCursorLayer->isVisible()) return false; // don't process if cursor layer is invisible
3058
+
3059
+ Ogre::Vector2 cursorPos(evt.state.X.abs, evt.state.Y.abs);
3060
+ mCursor->setPosition(cursorPos.x, cursorPos.y);
3061
+
3062
+ if (mExpandedMenu) // only check top priority widget until it passes on
3063
+ {
3064
+ mExpandedMenu->_cursorMoved(cursorPos);
3065
+ return true;
3066
+ }
3067
+
3068
+ if (mDialog) // only check top priority widget until it passes on
3069
+ {
3070
+ mDialog->_cursorMoved(cursorPos);
3071
+ if (mOk) mOk->_cursorMoved(cursorPos);
3072
+ else
3073
+ {
3074
+ mYes->_cursorMoved(cursorPos);
3075
+ mNo->_cursorMoved(cursorPos);
3076
+ }
3077
+ return true;
3078
+ }
3079
+
3080
+ Widget* w;
3081
+
3082
+ for (unsigned int i = 0; i < 10; i++)
3083
+ {
3084
+ if (!mTrays[i]->isVisible()) continue;
3085
+
3086
+ for (unsigned int j = 0; j < mWidgets[i].size(); j++)
3087
+ {
3088
+ w = mWidgets[i][j];
3089
+ if (!w->getOverlayElement()->isVisible()) continue;
3090
+ w->_cursorMoved(cursorPos); // send event to widget
3091
+ }
3092
+ }
3093
+
3094
+ if (mTrayDrag) return true; // don't pass this event on if we're in the middle of a drag
3095
+ return false;
3096
+ }
3097
+
3098
+ protected:
3099
+
3100
+ /*-----------------------------------------------------------------------------
3101
+ | Internal method to prioritise / deprioritise expanded menus.
3102
+ -----------------------------------------------------------------------------*/
3103
+ void setExpandedMenu(SelectMenu* m)
3104
+ {
3105
+ if (!mExpandedMenu && m)
3106
+ {
3107
+ Ogre::OverlayContainer* c = (Ogre::OverlayContainer*)m->getOverlayElement();
3108
+ Ogre::OverlayContainer* eb = (Ogre::OverlayContainer*)c->getChild(m->getName() + "/MenuExpandedBox");
3109
+ eb->_update();
3110
+ eb->setPosition
3111
+ ((unsigned int)(eb->_getDerivedLeft() * Ogre::OverlayManager::getSingleton().getViewportWidth()),
3112
+ (unsigned int)(eb->_getDerivedTop() * Ogre::OverlayManager::getSingleton().getViewportHeight()));
3113
+ c->removeChild(eb->getName());
3114
+ mPriorityLayer->add2D(eb);
3115
+ }
3116
+ else if(mExpandedMenu && !m)
3117
+ {
3118
+ Ogre::OverlayContainer* eb = mPriorityLayer->getChild(mExpandedMenu->getName() + "/MenuExpandedBox");
3119
+ mPriorityLayer->remove2D(eb);
3120
+ ((Ogre::OverlayContainer*)mExpandedMenu->getOverlayElement())->addChild(eb);
3121
+ }
3122
+
3123
+ mExpandedMenu = m;
3124
+ }
3125
+
3126
+ Ogre::String mName; // name of this tray system
3127
+ Ogre::RenderWindow* mWindow; // render window
3128
+ #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS) || (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
3129
+ OIS::MultiTouch* mMouse; // multitouch device
3130
+ #else
3131
+ OIS::Mouse* mMouse; // mouse device
3132
+ #endif
3133
+ Ogre::Overlay* mBackdropLayer; // backdrop layer
3134
+ Ogre::Overlay* mTraysLayer; // widget layer
3135
+ Ogre::Overlay* mPriorityLayer; // top priority layer
3136
+ Ogre::Overlay* mCursorLayer; // cursor layer
3137
+ Ogre::OverlayContainer* mBackdrop; // backdrop
3138
+ Ogre::OverlayContainer* mTrays[10]; // widget trays
3139
+ WidgetList mWidgets[10]; // widgets
3140
+ WidgetList mWidgetDeathRow; // widget queue for deletion
3141
+ Ogre::OverlayContainer* mCursor; // cursor
3142
+ SdkTrayListener* mListener; // tray listener
3143
+ Ogre::Real mWidgetPadding; // widget padding
3144
+ Ogre::Real mWidgetSpacing; // widget spacing
3145
+ Ogre::Real mTrayPadding; // tray padding
3146
+ bool mTrayDrag; // a mouse press was initiated on a tray
3147
+ SelectMenu* mExpandedMenu; // top priority expanded menu widget
3148
+ TextBox* mDialog; // top priority dialog widget
3149
+ Ogre::OverlayContainer* mDialogShade; // top priority dialog shade
3150
+ Button* mOk; // top priority OK button
3151
+ Button* mYes; // top priority Yes button
3152
+ Button* mNo; // top priority No button
3153
+ bool mCursorWasVisible; // cursor state before showing dialog
3154
+ Label* mFpsLabel; // FPS label
3155
+ ParamsPanel* mStatsPanel; // frame stats panel
3156
+ DecorWidget* mLogo; // logo
3157
+ ProgressBar* mLoadBar; // loading bar
3158
+ Ogre::Real mGroupInitProportion; // proportion of load job assigned to initialising one resource group
3159
+ Ogre::Real mGroupLoadProportion; // proportion of load job assigned to loading one resource group
3160
+ Ogre::Real mLoadInc; // loading increment
3161
+ Ogre::GuiHorizontalAlignment mTrayWidgetAlign[10]; // tray widget alignments
3162
+ Ogre::Timer* mTimer; // Root::getSingleton().getTimer()
3163
+ unsigned long mLastStatUpdateTime; // The last time the stat text were updated
3164
+
3165
+ };
3166
+ }
3167
+
3168
+ #endif