summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Reformat with new clang-formatDan Goodliffe2023-11-07
|
* Don't request a specific OpenGL version, just check we get something ↵Dan Goodliffe2023-11-07
| | | | sufficient from gladLoadGL
* Merge branch 'glad'Dan Goodliffe2023-05-28
|\
| * Swap GLEW for more modern gladDan Goodliffe2023-05-28
| |
| * Add glad submodule and build a glad libraryDan Goodliffe2023-05-27
|/ | | | | Slightly messy regarding file paths to get files generated by the glad generator into a place where b2 will happily find them later... but it works.
* Mark main rule as always, so we can always launch itDan Goodliffe2023-05-24
|
* Make Mesh into a template to support any vertex typeDan Goodliffe2023-05-10
| | | | Customisation point VertexArrayObject to define the layout for the type
* Support for tessellation shadersDan Goodliffe2023-05-09
|
* Merge branch 'containers'Dan Goodliffe2023-05-07
|\
| * Templated BufferedLocation and single buffer storage for RVC locationsDan Goodliffe2023-05-06
| |
| * Refactor InstanceVertices in terms of glContainerDan Goodliffe2023-05-01
| |
| * Don't explictly call destructor of contained elementDan Goodliffe2023-05-01
| |
| * Add the pack containerDan Goodliffe2023-05-01
| | | | | | | | Keeps its elements densely packed together without any interest in order
| * Add method to get GL buffer name of glContainerDan Goodliffe2023-05-01
| |
| * Add missing test over iterator comparisonDan Goodliffe2023-05-01
| |
| * glContainer should at least double in capacity as requiredDan Goodliffe2023-05-01
| |
| * Extend glContainer with most of the interface expected of an STL containerDan Goodliffe2023-05-01
| |
| * Initial commit of glContainerDan Goodliffe2023-04-30
|/ | | | A std::vector like container backed by an OpenGL buffer.
* Rename strings.h to something that won't conflict with a system headerDan Goodliffe2023-04-30
|
* Reformat with new clang-format 16Dan Goodliffe2023-04-29
|
* Drop .hpp for header only thingsDan Goodliffe2023-04-29
| | | | Half of them acquired a .cpp part anyway
* Dunno how, but some DOS new lines got in here!Dan Goodliffe2023-04-29
|
* Lookup material details once in the vertex shaderDan Goodliffe2023-04-27
| | | | ... instead of per texel in the fragment shader
* Merge branch 'instancing-pt2'Dan Goodliffe2023-04-27
|\
| * Revert "Export mesh size and primitive type"Dan Goodliffe2023-04-26
| | | | | | | | This reverts commit f3343e1cc8a56f039888d4d375a6d5a088a68494.
| * Draw rail vehicle classes and foliage with new mesh instance helperDan Goodliffe2023-04-26
| |
| * Add Mesh helper for drawing instancesDan Goodliffe2023-04-26
| | | | | | | | Assumes the supplied VAO was created and configured for the mesh it's passed back to.
| * Point shaders (shadows) can all share the same implementation now in a ↵Dan Goodliffe2023-04-26
| | | | | | | | | | | | single place They all just get `model` from a different place
| * Point shaders can all share the same implementation now in a single placeDan Goodliffe2023-04-26
| | | | | | | | They all just get `model` from a different place
| * Fudge RV bogey position the same as we do the body in test-renderDan Goodliffe2023-04-26
| |
| * Pop and complete instanced shadow supportDan Goodliffe2023-04-26
| |
| * Handle rendering of RailVehicles through RailVehicleClass instancingDan Goodliffe2023-04-23
| | | | | | | | | | | | | | Trains no longer need rendering as their parts are all RVC assets and that just works now. This commit creates some irritating duplication in RVC wrt body/2 bogies all of which are stored separately, but function in exactly the same way. This breaks RV shadows as we have no instancing shadow shaders yet.
| * Add BufferedLocationDan Goodliffe2023-04-23
| | | | | | | | | | Wraps Location, storing a pre-computed mat4 transformation of the position/rotation in a VBO handled by InstanceVertices.
| * Use Location::getTransform in Plant instead of duplicatingDan Goodliffe2023-04-23
| |
| * Add getTransform to Location; wraps the standard mat4 calculationsDan Goodliffe2023-04-23
| |
| * Clear world objects explicitlyDan Goodliffe2023-04-23
| | | | | | | | Otherwise the fail to remove themselves from the VBO after the GL context is destroyed.
| * Assert the buffer is actually mappedDan Goodliffe2023-04-23
| | | | | | | | Will fail if the context is deleted. We shouldn't trigger that, but we do right now.
* | Merge remote-tracking branch 'origin/assimp-normals'Dan Goodliffe2023-04-25
|\ \
| * | Clear world objects explicitlyDan Goodliffe2023-04-25
| | | | | | | | | | | | Otherwise the fail to remove themselves from the VBO after the GL context is destroyed.
| * | Set vertex normals from AssImp data if availableDan Goodliffe2023-04-25
| | |
| * | Don't update face/vertex normals if normals were provided, simply use them as isDan Goodliffe2023-04-25
| | |
| * | Allow setting a flag to say (vertex) normals have been providedDan Goodliffe2023-04-25
|/ /
* / Remove duplicate Tree-01-1 definitionDan Goodliffe2023-04-25
|/
* Merge branch 'instancing'Dan Goodliffe2023-04-22
|\
| * Keep the instance unused vector sorted and binary search itDan Goodliffe2023-04-22
| |
| * Don't fill the instances unused vector unnecessarilyDan Goodliffe2023-04-22
| |
| * Test instancing automatic unmap when count is called, add some nodiscardDan Goodliffe2023-04-22
| |
| * Streamline the instancing maintenanceDan Goodliffe2023-04-22
| |
| * Fix the instancing maintenanceDan Goodliffe2023-04-22
| |
| * Instances buffer data needs to be unmapped before useDan Goodliffe2023-04-21
| | | | | | | | | | Here we change quite a bit to support mapping and unmapping the buffer as required. The instance/free referencing is still broken though. We add several instances of tree in the render.