summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Use std::chrono for worldTimeHEADmainDan Goodliffe2 days
| | | | | | Defines a world time type alias, a game time scale factor (the rate at which world time progresses compare to real time) and display the world time on the status bar.
* Add wrapper for ImGui::TextEx for any contiguous char rangeDan Goodliffe3 days
|
* Improve calculations of the amount and colour of ambient and directional sun ↵Dan Goodliffe3 days
| | | | light
* Improve light approximations in LightDirectionDan Goodliffe3 days
| | | | | | | | | Twilight replaces astronomical twilight to give a longer fade. Astronomical twilight is only the darkest part of twilight, which we had skipped right to. Fixes directional light amount to only be affected by the sun's passing below th horizon, not it's whole height above it. Adds a rough approximation of the amount of atmosphere scattering of directional light (I made this calculation up)
* Fix warnings in Environment:getSunPosDan Goodliffe3 days
| | | | Mostly naming and bracketing.
* Fix warnings in glAllocator.hDan Goodliffe3 days
| | | | Missing #pragma once in particular.
* glAllocator revampDan Goodliffe2026-03-15
| | | | | | | Remove the map of buffers, now a fat pointer containing the buffer's name. This is accessible via the container's begin/end iterator. Move the bulk of the logic out of the template, it's mostly void * from the mapping anyway. Add allocate_at_least support.
* Add missing algorithm includeDan Goodliffe2026-03-15
|
* Avoid UB in calculating member offsetDan Goodliffe2026-03-15
| | | | Bit hacky; local dummy var to base a fake pointer on.
* Remove unused bits from gameMainSelector.cppDan Goodliffe2026-03-15
|
* Expose Camera's aspect ratioDan Goodliffe2026-03-15
|
* Fix class/struct mix-up friending test caseDan Goodliffe2026-03-15
|
* Bump ctre to latestDan Goodliffe2026-03-15
|
* Don't pass null to Texture constructor pixel dataDan Goodliffe2026-03-14
| | | | | 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 Goodliffe2026-03-12
| | | | | | 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 Goodliffe2026-03-11
| | | | Slashes the number of VAOs required and the amount of setup required.
* Add missing typename exporting base::value_type from InstanceVerticesDan Goodliffe2026-03-11
|
* Sprinkling of glDebugScope in assets and render partsDan Goodliffe2026-03-11
|
* Split addAttribsFor away from requiring a buffer to bindDan Goodliffe2026-03-11
|
* Replace hacky m4 shader preprocessing with proper glslang versionDan Goodliffe2026-03-10
|
* Refactor glMappedBufferWriter into a DSA wrapper for std::spanDan Goodliffe2026-03-10
|
* Switch frame and render buffer to DSA helpersDan Goodliffe2026-03-10
|
* Switch to floating point, camera relative position bufferDan Goodliffe2026-03-10
|
* Specialise glTexture::savePositionDan Goodliffe2026-03-09
| | | | | 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 Goodliffe2026-03-08
|
* Move all low level texture operations to DSA helpers in glTextureDan Goodliffe2026-03-08
|
* Replace gl_traits glTexParameter with glTexture::parameter DSA wrapperDan Goodliffe2026-03-07
|
* Fix naming violations in MeshDan Goodliffe2026-03-07
| | | | | They've existed and been annoying since the day I first created it from online examples.
* Add glVertexArray useBufferDan Goodliffe2026-03-07
| | | | | | 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 Goodliffe2026-03-07
|
* Merge branch 'glalloc'Dan Goodliffe2026-03-07
|\
| * Replace glContainer with glAllocatorDan Goodliffe2026-03-07
| | | | | | | | | | | | | | 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 Goodliffe2026-03-06
| |
| * Replace use of VertexArrayObject with glVertexArray/glBuffer DSA versionsDan Goodliffe2026-03-06
| |
| * Extend glVertexArray with VertexArrayConfiguratorDan Goodliffe2026-03-06
| | | | | | | | DSA version of VertexArrayObject.
| * Replace generic glBuffer type alias with a full implementationDan Goodliffe2026-03-06
| | | | | | | | Adds wrappers for DSA storage and data uploads.
| * Define SequentialCollection in terms of contiguous_rangeDan Goodliffe2026-03-06
| |
| * Add vertexAttribFormatFunc to gl_traits for DSA vertex configurationDan Goodliffe2026-03-06
| |
| * Include a stacktrace in Boost test context reported for OpenGL errorsDan Goodliffe2026-03-06
| |
| * Replace basic glVertexArray with a specific class ready for helpersDan Goodliffe2026-03-04
|/
* Update stencils and billboards less oftenDan Goodliffe2026-03-04
| | | | | | | 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 Goodliffe2026-03-02
| | | | Removes hard coded arbitrary numbers for 256px sq and 140m.
* Wrap up some low level texture operations in glTexture classDan Goodliffe2026-03-02
| | | | 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.