Subversion Repository Public Repository

Divide-Framework

This repository has no backups
This repository's network speed is throttled to 100KB/sec

Changeset 709

Committed by IonutCava on Thu 19 May, 2016 16:21:46 +0000

Commit Message:

[IonutCava]
- Massive rewrite of the resource system:
— ResourceCache now uses a map of weak pointers and passes shared pointers to the call point of CreateResource
— RemoveResource is no longer needed, but resource based smart pointers use a custom deleter that calls unload()
— Keep a shared_ptr of the resource in the entity that needs it and pass shared_ptr references from getter methods
-— All of this removed the need for calls to RemoveResource, REGISTER_TRACKED_DEPENDENCY and UNREGISTER_TRACKED_DEPENDENCY reducing the number of mutex locks and atomic exchanges
- Singleton cleanup:
— Removed ShaderManager singleton and merged it’s data and responsibilities in static methods in both ShaderProgram and Shader classes.
Explanation: Due to the complex interdependency chains in the system, copying, updating, tracking the cache in a thread safe way became a lot more slower than a straight forward smart pointer based implementation. (e.g. scene graph nodes have 3d objects and material instances, 3d objects have materials, materials have textures and shaders, etc)

Changes

Removed /trunk/Source Code/Platform/Video/Shaders/Headers/ShaderManager.h

Removed /trunk/Source Code/Platform/Video/Shaders/ShaderManager.cpp

Modified /trunk/Source Code/AI/PathFinding/NavMeshes/Headers/NavMesh.h Diff

Modified /trunk/Source Code/AI/PathFinding/NavMeshes/NavMeshLoader.cpp Diff

Modified /trunk/Source Code/AI/Sensors/Headers/VisualSensor.h Diff

Modified /trunk/Source Code/Core/Headers/Kernel.h Diff

Modified /trunk/Source Code/Core/Kernel.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/AudioDescriptorLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/Box3DLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/ImpostorLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/LightLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/MaterialLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/MeshLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/ParticleEmitterLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/Quad3DLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/ShaderProgramLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/SkyLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/Sphere3DLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/SubMeshLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/TerrainLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/Text3DLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/TextureLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/TriggerLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/ConcreteLoaders/WaterPlaneLoaderImpl.cpp Diff

Modified /trunk/Source Code/Core/Resources/Headers/Resource.h Diff

Modified /trunk/Source Code/Core/Resources/Headers/ResourceCache.h Diff

Modified /trunk/Source Code/Core/Resources/Headers/ResourceLoader.h Diff

Modified /trunk/Source Code/Core/Resources/Resource.cpp Diff

Modified /trunk/Source Code/Core/Resources/ResourceCache.cpp Diff

Modified /trunk/Source Code/Dynamics/Entities/Headers/Impostor.h Diff

Modified /trunk/Source Code/Dynamics/Entities/Particles/Headers/ParticleEmitter.h Diff

Modified /trunk/Source Code/Dynamics/Entities/Particles/ParticleEmitter.cpp Diff

Modified /trunk/Source Code/Dynamics/Entities/Triggers/Headers/Trigger.h Diff

Modified /trunk/Source Code/Dynamics/Entities/Triggers/Trigger.cpp Diff

Modified /trunk/Source Code/Dynamics/Entities/Units/Headers/Unit.h Diff

Modified /trunk/Source Code/Environment/Sky/Headers/Sky.h Diff

Modified /trunk/Source Code/Environment/Sky/Sky.cpp Diff

Modified /trunk/Source Code/Environment/Terrain/Headers/Terrain.h Diff

Modified /trunk/Source Code/Environment/Terrain/Headers/TerrainLoader.h Diff

Modified /trunk/Source Code/Environment/Terrain/Terrain.cpp Diff

Modified /trunk/Source Code/Environment/Terrain/TerrainLoader.cpp Diff

Modified /trunk/Source Code/Environment/Vegetation/Headers/Vegetation.h Diff

Modified /trunk/Source Code/Environment/Vegetation/Vegetation.cpp Diff

Modified /trunk/Source Code/Environment/Water/Headers/Water.h Diff

Modified /trunk/Source Code/Environment/Water/Water.cpp Diff

Modified /trunk/Source Code/GUI/GUI.cpp Diff

Modified /trunk/Source Code/GUI/GUIConsoleCommandParser.cpp Diff

Modified /trunk/Source Code/GUI/GUIEditor/Headers/GUIEditor.h Diff

Modified /trunk/Source Code/GUI/GUISplash.cpp Diff

Modified /trunk/Source Code/GUI/Headers/GUI.h Diff

Modified /trunk/Source Code/GUI/Headers/GUIConsoleCommandParser.h Diff

Modified /trunk/Source Code/GUI/Headers/GUISplash.h Diff

Modified /trunk/Source Code/Geometry/Importer/Headers/MeshImporter.h Diff

Modified /trunk/Source Code/Geometry/Importer/MeshImporter.cpp Diff

Modified /trunk/Source Code/Geometry/Material/Headers/Material.h Diff

Modified /trunk/Source Code/Geometry/Material/Material.cpp Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Mesh.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Object3D.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Predefined/Box3D.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Predefined/Quad3D.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Predefined/Sphere3D.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/Predefined/Text3D.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/SkinnedSubMesh.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Headers/SubMesh.h Diff

Modified /trunk/Source Code/Geometry/Shapes/Mesh.cpp Diff

Modified /trunk/Source Code/Graphs/Components/AnimationComponent.cpp Diff

Modified /trunk/Source Code/Graphs/Components/Headers/RenderingComponent.h Diff

Modified /trunk/Source Code/Graphs/Components/PhysicsComponent.cpp Diff

Modified /trunk/Source Code/Graphs/Components/RenderingComponent.cpp Diff

Modified /trunk/Source Code/Graphs/Headers/IntersectionRecord.h Diff

Modified /trunk/Source Code/Graphs/Headers/SceneGraph.h Diff

Modified /trunk/Source Code/Graphs/Headers/SceneGraphNode.h Diff

Modified /trunk/Source Code/Graphs/Headers/SceneNode.h Diff

Modified /trunk/Source Code/Graphs/SceneGraph.cpp Diff

Modified /trunk/Source Code/Graphs/SceneGraphNode.cpp Diff

Modified /trunk/Source Code/Graphs/SceneNode.cpp Diff

Modified /trunk/Source Code/Managers/Headers/SceneManager.h Diff

Modified /trunk/Source Code/Managers/SceneManager.cpp Diff

Modified /trunk/Source Code/Physics/Headers/PhysicsAPIWrapper.h Diff

Modified /trunk/Source Code/Physics/PhysX/PhysXSceneInterface.cpp Diff

Modified /trunk/Source Code/Platform/Audio/Headers/AudioAPIWrapper.h Diff

Modified /trunk/Source Code/Platform/Audio/Headers/AudioDescriptor.h Diff

Modified /trunk/Source Code/Platform/Audio/Headers/SFXDevice.h Diff

Modified /trunk/Source Code/Platform/Audio/SFXDevice.cpp Diff

Modified /trunk/Source Code/Platform/Audio/fmod/Headers/FmodWrapper.h Diff

Modified /trunk/Source Code/Platform/Audio/openAl/ALWrapper.cpp Diff

Modified /trunk/Source Code/Platform/Audio/openAl/Headers/ALWrapper.h Diff

Modified /trunk/Source Code/Platform/Audio/sdl_mixer/Headers/SDLWrapper.h Diff

Modified /trunk/Source Code/Platform/Audio/sdl_mixer/SDLWrapper.cpp Diff

Modified /trunk/Source Code/Platform/Headers/PlatformDefines.h Diff

Modified /trunk/Source Code/Platform/Video/Buffers/Framebuffer/Framebuffer.cpp Diff

Modified /trunk/Source Code/Platform/Video/Buffers/Framebuffer/Headers/Framebuffer.h Diff

Modified /trunk/Source Code/Platform/Video/GFXDevice.cpp Diff

Modified /trunk/Source Code/Platform/Video/GFXDeviceDebug.cpp Diff

Modified /trunk/Source Code/Platform/Video/GFXDeviceDraw.cpp Diff

Modified /trunk/Source Code/Platform/Video/GFXDeviceState.cpp Diff

Modified /trunk/Source Code/Platform/Video/Headers/GFXDevice.h Diff

Modified /trunk/Source Code/Platform/Video/Headers/RenderAPIWrapper.h Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/Buffers/Framebuffer/Headers/glFramebuffer.h Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/Buffers/Framebuffer/glFramebuffer.cpp Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/Buffers/VertexBuffer/glVertexArray.cpp Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/GLStates.cpp Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/Shaders/glShader.cpp Diff

Modified /trunk/Source Code/Platform/Video/OpenGL/Shaders/glShaderProgram.cpp Diff

Modified /trunk/Source Code/Platform/Video/Shaders/Headers/Shader.h Diff

Modified /trunk/Source Code/Platform/Video/Shaders/Headers/ShaderProgram.h Diff

Modified /trunk/Source Code/Platform/Video/Shaders/Shader.cpp Diff

Modified /trunk/Source Code/Platform/Video/Shaders/ShaderProgram.cpp Diff

Modified /trunk/Source Code/Platform/Video/Textures/Headers/Texture.h Diff

Modified /trunk/Source Code/Rendering/Camera/Headers/Camera.h Diff

Modified /trunk/Source Code/Rendering/Camera/Headers/OrbitCamera.h Diff

Modified /trunk/Source Code/Rendering/DeferredShadingRenderer.cpp Diff

Modified /trunk/Source Code/Rendering/ForwardPlusRenderer.cpp Diff

Modified /trunk/Source Code/Rendering/Headers/DeferredShadingRenderer.h Diff

Modified /trunk/Source Code/Rendering/Headers/ForwardPlusRenderer.h Diff

Modified /trunk/Source Code/Rendering/Lighting/Headers/Light.h Diff

Modified /trunk/Source Code/Rendering/Lighting/Headers/LightPool.h Diff

Modified /trunk/Source Code/Rendering/Lighting/Light.cpp Diff

Modified /trunk/Source Code/Rendering/Lighting/LightPool.cpp Diff

Modified /trunk/Source Code/Rendering/Lighting/ShadowMapping/CascadedShadowMaps.cpp Diff

Modified /trunk/Source Code/Rendering/Lighting/ShadowMapping/Headers/CascadedShadowMaps.h Diff

Modified /trunk/Source Code/Rendering/Lighting/ShadowMapping/Headers/CubeShadowMap.h Diff

Modified /trunk/Source Code/Rendering/Lighting/ShadowMapping/Headers/SingleShadowMap.h Diff

Modified /trunk/Source Code/Rendering/Lighting/ShadowMapping/SingleShadowMap.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/BloomPreRenderOperator.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/DoFPreRenderOperator.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/Headers/BloomPreRenderOperator.h Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/Headers/DoFPreRenderOperator.h Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/Headers/PostAAPreRenderOperator.h Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/Headers/SSAOPreRenderOperator.h Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/PostAAPreRenderOperator.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/CustomOperators/SSAOPreRenderOperator.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/Headers/PostFX.h Diff

Modified /trunk/Source Code/Rendering/PostFX/Headers/PreRenderBatch.h Diff

Modified /trunk/Source Code/Rendering/PostFX/PostFX.cpp Diff

Modified /trunk/Source Code/Rendering/PostFX/PreRenderBatch.cpp Diff

Modified /trunk/Source Code/Rendering/RenderPass/Headers/RenderPassCuller.h Diff

Modified /trunk/Source Code/Rendering/RenderPass/Headers/RenderQueue.h Diff

Modified /trunk/Source Code/Rendering/RenderPass/RenderBin.cpp Diff

Modified /trunk/Source Code/Rendering/RenderPass/RenderPass.cpp Diff

Modified /trunk/Source Code/Rendering/RenderPass/RenderQueue.cpp Diff

Modified /trunk/Source Code/Scenes/CubeScene/CubeScene.cpp Diff

Modified /trunk/Source Code/Scenes/Headers/SceneState.h Diff

Modified /trunk/Source Code/Scenes/MainScene/Headers/MainScene.h Diff

Modified /trunk/Source Code/Scenes/MainScene/MainScene.cpp Diff

Modified /trunk/Source Code/Scenes/PingPongScene/Headers/PingPongScene.h Diff

Modified /trunk/Source Code/Scenes/PingPongScene/PingPongScene.cpp Diff

Modified /trunk/Source Code/Scenes/Scene.cpp Diff

Modified /trunk/Source Code/Scenes/TenisScene/Headers/TenisScene.h Diff

Modified /trunk/Source Code/Scenes/TenisScene/TenisScene.cpp Diff

Modified /trunk/Source Code/Scenes/WarScene/WarScene.cpp Diff

Modified /trunk/Source Code/Scenes/WarScene/WarSceneAI.cpp Diff

Modified /trunk/Source Code/Utility/Headers/MemoryTracker.h Diff

Modified /trunk/Source Code/Utility/Headers/XMLParser.h Diff

Modified /trunk/Source Code/Utility/XMLParser.cpp Diff

Modified /trunk/VCData/VisualStudioProjects/Divide-Platform.vcxproj Diff

Modified /trunk/VCData/VisualStudioProjects/Divide-Platform.vcxproj.filters Diff

Modified /trunk/localisation/enGB.ini Diff