{"push_id":1249500203,"size":1,"distinct_size":0,"ref":"refs/heads/7658_OgreTerrain_OgreTerrainQuadTreeNode_OgreSCENE_STATIC","head":"5c9fa53cafa44ad33f709cae349d3ee752a5d04a","before":"bba9b6b47b52000dc15a4af4c9cf8f38ff51628a","commits":[{"sha":"5c9fa53cafa44ad33f709cae349d3ee752a5d04a","author":{"name":"Steve Streeting","email":"5eb4f8ae09d1b5661f1add989b1c3fabe443bd83@stevestreeting.com"},"message":"Some significant refactoring of HardwareBufferManager and usage to allow multiple sources of hardware buffers to exist in parallel. Previously, because of the HardwareBufferManager Singleton, you could only create one instance at once and you couldn't really have 'default' software buffers and GPU-based hardware buffers co-existing, which made it tricky to create temporary 'staging' structures of vertex and index data (in software) in the background without creating new parallel structures to hold the information, which was fragile and duplicative.\nSo now you can have multiple sources of HardwareBuffer at once (although only one is primary, the one associated with the RenderSystem). When you clone VertexData or buffers, you have to option of specifying which HardwareBufferManager to use, allowing you (for example) to construct buffers and declarations in a non-render thread as non-GPU resources, then clone them into GPU resources in the render thread later. Also, the classes now don't reference HardwareBufferManager::getSingleton(), they always use the manager that they were created with, or the one that is passed in.\nIn order to maintain the previous interfaces, the refactoring introduced a new base class called HardwareBuferManagerBase, which is *not* a Singleton. Rendersystem specialisations derive from this instead of HardwareBufferManager, which is now just a Singleton wrapper. for convenience, the rendersystem should also createa basic wrapper subclass of HardwareBufferManager to provide the wrapped Singleton implementation. People that want to create software buffers in parallel can do so by instantiating DefaultHardwareBufferManagerBase and using that directly. In theory, this also allows you to create (say) D3D and GL buffers simultaneously, although that's not what it's designed for. This mostly allows you to build rich software vertex / index structures in parallel that are easily ported to hardware later.","distinct":false,"url":"https://api.github.com/repos/digimatic/ogre/commits/5c9fa53cafa44ad33f709cae349d3ee752a5d04a"}]}
{"actor":{"display_login":"digimatic"}}