summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Add missing algorithm includeDan Goodliffe16 hours
|
* Avoid UB in calculating member offsetDan Goodliffe16 hours
| | | | Bit hacky; local dummy var to base a fake pointer on.
* Remove unused bits from gameMainSelector.cppDan Goodliffe17 hours
|
* Expose Camera's aspect ratioDan Goodliffe17 hours
|
* Fix class/struct mix-up friending test caseDan Goodliffe18 hours
|
* Bump ctre to latestDan Goodliffe18 hours
|
* Don't pass null to Texture constructor pixel dataDan Goodliffe19 hours
| | | | | Pixel data variant now proxies to the simple version and then uploads the image data, instead of vice versa with nullptr pixels.
* Shared VAO for all 3 parts of RailVehicleClassDan Goodliffe4 days
| | | | | | Rearranges its LocationVertex to be 3 repeated Parts. Adds helpers to glvglVertexArray for useBuffer with various offsets. Render is then an iteration of the meshes and the location data at the nth offset.
* Reuse vertex array objects for common structures with DSADan Goodliffe4 days
| | | | Slashes the number of VAOs required and the amount of setup required.
* Add missing typename exporting base::value_type from InstanceVerticesDan Goodliffe4 days
|
* Sprinkling of glDebugScope in assets and render partsDan Goodliffe5 days
|
* Split addAttribsFor away from requiring a buffer to bindDan Goodliffe5 days
|
* Replace hacky m4 shader preprocessing with proper glslang versionDan Goodliffe5 days
|
* Refactor glMappedBufferWriter into a DSA wrapper for std::spanDan Goodliffe5 days
|
* Switch frame and render buffer to DSA helpersDan Goodliffe6 days
|
* Switch to floating point, camera relative position bufferDan Goodliffe6 days
|
* Specialise glTexture::savePositionDan Goodliffe6 days
| | | | | Normalises the range of position information into the range 0-255 so the resulting image is remotely useful.
* Remove identifier naming lint comments, gl* is fineDan Goodliffe7 days
|
* Move all low level texture operations to DSA helpers in glTextureDan Goodliffe7 days
|
* Replace gl_traits glTexParameter with glTexture::parameter DSA wrapperDan Goodliffe8 days
|
* Fix naming violations in MeshDan Goodliffe8 days
| | | | | They've existed and been annoying since the day I first created it from online examples.
* Add glVertexArray useBufferDan Goodliffe8 days
| | | | | | Wraps glVertexArrayVertexBuffer automatically getting the buffer name from the argument and deriving the stride from the container's value_type.
* Don't create and then replace shadow and billboard texturesDan Goodliffe8 days
|
* Merge branch 'glalloc'Dan Goodliffe8 days
|\
| * Replace glContainer with glAllocatorDan Goodliffe8 days
| | | | | | | | | | | | | | glContainer is no longer required, as we can use std::vector with a custom allocator which uses OpenGL buffers for storage. Minor irritation is that the mapped buffers aren't guaranteed to be flushed in the tests, so sometimes we're missing bits in a test render.
| * Remove VertexArrayObject and supporting non-DSA gl_traits helpersDan Goodliffe9 days
| |
| * Replace use of VertexArrayObject with glVertexArray/glBuffer DSA versionsDan Goodliffe9 days
| |
| * Extend glVertexArray with VertexArrayConfiguratorDan Goodliffe9 days
| | | | | | | | DSA version of VertexArrayObject.
| * Replace generic glBuffer type alias with a full implementationDan Goodliffe9 days
| | | | | | | | Adds wrappers for DSA storage and data uploads.
| * Define SequentialCollection in terms of contiguous_rangeDan Goodliffe9 days
| |
| * Add vertexAttribFormatFunc to gl_traits for DSA vertex configurationDan Goodliffe9 days
| |
| * Include a stacktrace in Boost test context reported for OpenGL errorsDan Goodliffe9 days
| |
| * Replace basic glVertexArray with a specific class ready for helpersDan Goodliffe11 days
|/
* Update stencils and billboards less oftenDan Goodliffe12 days
| | | | | | | No need to update these every frame when little of nothing has changed. Instead, track the angle previously rendered and updated only when the new angle has diverged sufficiently from this. Larger updates update more frequently.
* Calculate an appropriate billboardSize and useMeshClipDistDan Goodliffe13 days
| | | | Removes hard coded arbitrary numbers for 256px sq and 140m.
* Wrap up some low level texture operations in glTexture classDan Goodliffe13 days
| | | | Fixes previously hard coded billboard texture size.
* Refactor glArrays to better expose underlying typesDan Goodliffe2026-02-28
| | | | | Current they're all glNamed, but this can be sub-classed for specific things, e.g. glTexture.
* Billboard foliageDan Goodliffe2026-02-28
| | | | | | Partition the instances by within/without the view frustum, then by proximity to the view point and within/without the sunlight shadow frustum. Use billboards for far away/out of view instances.
* Add BillboardProgram to SceneShaderDan Goodliffe2026-02-28
| | | | | The implementation is overly simple/incomplete, I'm not even convince what is there is right, but it's a decent start.
* Use RelativeDistance in Camera near/fear and expose member variablesDan Goodliffe2026-02-28
|
* Allow specifying all three partition functions independentlyDan Goodliffe2026-02-28
| | | | | Two predicate version behaviour is unchanged, the second predicate is just the inverse of the third.
* Support for the BillboardPainterDan Goodliffe2026-02-28
| | | | | Based on the ShadowStenciller, creates flattened images of a model for simplified mass use in a scene.
* Tidy the preFrame logic into a single function in SceneRendererDan Goodliffe2026-02-23
| | | | | Clients now just call that one helper and SceneProvider passes in all the renderables.
* Simplified FrustumDan Goodliffe2026-02-21
| | | | | | | | | | | Don't need to differentiate between shadedBy by contains. The 5 plane/face variant is actually fine in both cases. For a perspective projection, the near plane is essentially at the origin and is handled by the left/right/top/bottom planes meeting. For the directional light case (orthographic projection) the near plane is omitted as objects in front of the clip space still cast shadows into it. Also includes a fix the distance calculation to not add .w, don't know where I got the idea this was right.
* Reduce shader includes, doesn't use materialInterface, just DetailDan Goodliffe2026-02-20
|
* Simplified and tidied ShadowMapperDan Goodliffe2026-02-20
| | | | | No arbitrary 10m extra extents. No runtime vectors. Simpler code. Consts. etc.
* Correctly scale frustum plane vectorsDan Goodliffe2026-02-20
| | | | Fixes comparison with real world (sphere) size parameter.
* Fix up the preFrame process to use both frustumsDan Goodliffe2026-02-18
| | | | | | (camera and directional light frustums) This has made the whole preFrame process far more fiddly and repetitive than I'd like, but it does work. Maybe we can tidy it up later.
* Add Renderable::preFrame for doing non-const frame prep workDan Goodliffe2026-02-16
| | | | | In theory, this phase should be parallelisable before being pushed out by the render loop.
* Support for testing if a point/sphere is within a FrustumDan Goodliffe2026-02-15
| | | | Use case is the sphere approximating a scenery item such as a tree.