0ad/source/renderer
Ykkrosh 0ef6c7555e Optimise VBO updates.
Some drivers (at least the Intel drivers on Windows) are slow at
incrementally updating a VBO with hundreds of calls to glBufferSubData
every frame. Performance is significantly better if you use
glBufferData(NULL) to tell it to discard all the previous contents, and
then re-upload all the data at once.

Update CVertexBuffer so that GL_DYNAMIC_DRAW/GL_STREAM_DRAW buffers are
handled with the new mechanism. This requires the caller to hold onto
the backing store so it can be re-uploaded when necessary, and needs a
bit more signalling to indicate exactly what needs uploading.

I see an improvement from roughly 60 to 75 fps on Intel HD Graphics
3000, Windows, 1024x768, Siwa Oasis.

This was SVN commit r16241.
2015-01-28 00:48:00 +00:00
..
scripting Change the water texture to a new, bigger one, created in Blender (thanks to Enrique). Change settings so that they are more logical, yet allow reverting back to an even lower quality setting. Add a WIP high setting (with foam) which isn't finished yet. 2014-07-01 16:05:05 +00:00
AlphaMapCalculator.cpp Simplify the overly-complex CppDoc-breaking file headers 2009-04-18 17:51:05 +00:00
AlphaMapCalculator.h Simplify the overly-complex CppDoc-breaking file headers 2009-04-18 17:51:05 +00:00
BlendShapes.h fix relics of GPL comment insertion (removing empty description comments and in some cases adding new file descriptions) 2009-05-03 11:47:38 +00:00
DecalRData.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
DecalRData.h Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount. 2014-07-02 22:36:45 +00:00
HWLightingModelRenderer.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
HWLightingModelRenderer.h Update renderer design to be more flexible and data-driven based on material and shader definitions. 2012-04-03 18:44:46 +00:00
InstancingModelRenderer.cpp Add a list of statically-constructed CStrIntern strings 2013-09-29 13:19:52 +00:00
InstancingModelRenderer.h ao/parallax/normal/specular/emissive mapping; windy trees; time manager; render queries; conditional defines 2012-08-06 19:10:47 +00:00
MikktspaceWrap.cpp GPU-skinned tangent-space effects for non-instanced units, plus a bit of cleanup. 2012-10-29 13:20:21 +00:00
MikktspaceWrap.h Disable "assignment operator could not be generated" warning globally on Windows, since it's never useful. 2015-01-22 21:09:33 +00:00
ModelRenderer.cpp Switch to std::shared_ptr and std::weak_ptr. 2015-01-25 03:10:58 +00:00
ModelRenderer.h Switch to std::shared_ptr and std::weak_ptr. 2015-01-25 03:10:58 +00:00
ModelVertexRenderer.h Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount. 2014-07-02 22:36:45 +00:00
OverlayRenderer.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
OverlayRenderer.h Add BoundingSphere, SOverlaySphere. 2014-06-01 18:05:46 +00:00
ParticleRenderer.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
ParticleRenderer.h Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount. 2014-07-02 22:36:45 +00:00
PatchRData.cpp Automatically convert all CLogger format strings from wchar_t* to char*. 2015-01-22 20:31:30 +00:00
PatchRData.h Pad vertex data to power-of-two sizes. 2015-01-25 15:38:51 +00:00
PostprocManager.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
PostprocManager.h Fixes init of post processing effects, so they can be cleanly enabled/disabled at runtime. Fixes #2890, refs #2672, #2893. 2014-10-27 00:53:31 +00:00
Renderer.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
Renderer.h Moves some includes out of Renderer.h to slightly optimize compilation 2014-10-28 03:57:22 +00:00
RenderModifiers.cpp Add a list of statically-constructed CStrIntern strings 2013-09-29 13:19:52 +00:00
RenderModifiers.h Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount. 2014-07-02 22:36:45 +00:00
Scene.cpp # Initial version of new particle system. 2011-04-03 19:15:15 +00:00
Scene.h Add BoundingSphere, SOverlaySphere. 2014-06-01 18:05:46 +00:00
ShadowMap.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
ShadowMap.h Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
SilhouetteRenderer.cpp Moves some includes out of Renderer.h to slightly optimize compilation 2014-10-28 03:57:22 +00:00
SilhouetteRenderer.h Optimise silhouette rendering. 2014-07-03 01:00:25 +00:00
SkyManager.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
SkyManager.h Fixes build warning and cleans up a few things 2012-11-26 02:28:35 +00:00
TerrainOverlay.cpp Fix terrain overlay rendering after water. 2014-08-12 15:58:03 +00:00
TerrainOverlay.h Forgot to make a variable unused. 2014-08-13 14:52:38 +00:00
TerrainRenderer.cpp Automatically convert all CLogger format strings from wchar_t* to char*. 2015-01-22 20:31:30 +00:00
TerrainRenderer.h Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
TexturedLineRData.cpp Set svn:eol-style=native, fix some inconsistent line endings 2013-12-06 00:42:50 +00:00
TexturedLineRData.h Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount. 2014-07-02 22:36:45 +00:00
TimeManager.cpp added licensing headers to some of the new files 2012-08-06 21:34:41 +00:00
TimeManager.h added licensing headers to some of the new files 2012-08-06 21:34:41 +00:00
VertexArray.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
VertexArray.h Optimise VBO updates. 2015-01-28 00:48:00 +00:00
VertexBuffer.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
VertexBuffer.h Optimise VBO updates. 2015-01-28 00:48:00 +00:00
VertexBufferManager.cpp Optimise VBO updates. 2015-01-28 00:48:00 +00:00
VertexBufferManager.h Optimise VBO updates. 2015-01-28 00:48:00 +00:00
WaterManager.cpp Pad vertex data to power-of-two sizes. 2015-01-25 15:38:51 +00:00
WaterManager.h Fixes incorrect reuse of a member variable in WaterManager, caused a crash when starting a new map in Atlas after loading a water map. Fixes #2784. 2014-09-07 23:49:24 +00:00