Commit Graph

600 Commits

Author SHA1 Message Date
Lioncash 9d6b9142bb CParticleSwoosh: Make use of std::array where applicable
Same behavior, no implicit array to pointer decay.
2020-04-11 20:20:47 -04:00
Jack Andersen 5b4441ac36 Update fmtlib 2020-04-11 12:51:39 -10:00
Luke Street 7055b6983f
Merge pull request #306 from lioncash/random
CRandom16: Make constructor explicit
2020-04-11 16:36:51 -04:00
Lioncash 4bdcc5efdb CModel: Make CModelFlags constexpr constructible.
Allows initializers to be elided where applicable.

While we're at it, we can make the conditional flag tests more explicit
and eliminate implicit truncation in the case of the second flag test.
2020-04-11 16:16:19 -04:00
Lioncash 75d8988ee8 CRandom16: Make constructor explicit
Same behavior, minus the implicit conversions upon construction.
2020-04-11 16:15:05 -04:00
Luke Street 232823ae69 Runtime/Graphics: Replace bitfield unions with constructor initializers 2020-04-10 15:03:31 -04:00
Lioncash 124356b4e7 CSimpleShadow: Remove mutable specifier on m_filter
This is no longer necessary now that we can remove the const qualifier
on Render().
2020-04-09 21:44:49 -04:00
Lioncash cd0a3780c0 CRainSplashGenerator: Remove mutable specifier from m_renderer
We can just drop the const specifiers on relevant member functions to
get rid of the need for this.
2020-04-09 21:40:48 -04:00
Lioncash b89069e1b8 CBooRenderer: Remove usages of const_cast
We can just remove the const qualifier on model here.
2020-04-09 20:22:50 -04:00
Lioncash bfd17e4513 CActor: Make Render() a non-const function
A few implementations of Render() contain const-casts nested within its
their call hierarchy to get around the fact that this function is marked
const. We can just make the member function non-const to allow removal
of these casts in follow up changes.
2020-04-09 14:32:20 -04:00
Lioncash fe32cea8fc CRainSplashGenerator: Always initialize x24_generateInterval
Provides a deterministic consistent initial state.
2020-04-07 13:02:02 -04:00
Lioncash 1279be5e56 CGraphics: Mark internal file-scope matrices as constexpr
Same behavior, but allows omission of runtime initializers.
2020-04-05 05:48:54 -04:00
Lioncash 95199848d3 CGraphics: Make use of std::array where applicable 2020-04-05 05:46:07 -04:00
Lioncash da75543c76 CRainSplashGenerator: Dehardcode line vector size in constructor
We can query the capacity instead.
2020-04-01 00:27:56 -04:00
Lioncash 254a96313a CSkinnedModel: Convert typedef into using alias
Same behavior, nicer to read.
2020-04-01 00:06:52 -04:00
Lioncash 1415265ef2 Runtime: Default destructors where applicable
Same behavior, but allows the destructors to be trivial, etc.
2020-03-31 04:50:26 -04:00
Lioncash 67f6666ea1 Runtime: Add more usages of explicit
Prevents error-prone implicit conversions where applicable.

This targets the regular RuntimeCommon target this time around.
2020-03-31 03:53:49 -04:00
Lioncash 6ae935924b IRenderer/CBooRenderer: Add parameter names to function prototypes
Makes the interface more self-documenting and allows IDEs to perform
better parameter introspection
2020-03-30 00:34:38 -04:00
Lioncash 111f0c3d3a IRenderer: Convert typedef to using alias
Same behavior, but nicer to read.
2020-03-30 00:18:38 -04:00
Lioncash 51afa94e8c Add missing includes where applicable
Resolves a few required dependencies
2020-03-26 01:10:55 -04:00
Lioncash 40fc3f9dd8 CModelBoo: Remove usages of const_cast
Many functions are modifying internals of CBooModel and const-casting
is performed in order to work around functions being const when they
really shouldn't be.

This amends the function signatures in order to allow these functions to
exist without const_cast, making code much nicer to read.
2020-03-25 02:01:46 -04:00
Luke Street dcc7affb8f
Merge pull request #243 from lioncash/light
CLight: Minor cleanup
2020-03-18 01:03:04 -04:00
Luke Street 18ef68df2a
Merge pull request #239 from lioncash/line
CLineRenderer: Minor changes
2020-03-18 00:58:46 -04:00
Lioncash ec7bca8c20 CLight: Collapse std::max calls into one
We can use the overload that takes an initializer list to make it easier
to read.
2020-03-17 20:54:56 -04:00
Lioncash e821f736de CLight: Mark caching member variables as mutable
Member variables acting as caches is one of the areas where marking
variables as mutable makes sense.

We can do this to allow for the elimination of const_cast in some member
functions.
2020-03-17 20:47:12 -04:00
Lioncash 9483b64c91 CLight: Mark kDefaultPosition and kDefaultDirection as constexpr
Same behavior, but allows runtime constructors to be elided.
2020-03-17 20:44:22 -04:00
Lioncash 17a1f90a89 CLight: Prevent implicit double->float truncations
We can just mark these literals as floats to keep the arithmetic
operating on floats instead of doubles.
2020-03-17 20:42:39 -04:00
Lioncash 1dd1542106 CLight: Remove unnecessary initializer list initializers
These are already initialized within the class definition, so they don't
need to be respecified here.
2020-03-17 20:39:29 -04:00
Lioncash e5e4a6482c CLineRenderer: Make use of std::array where applicable
Same behavior, but without the potential for unintentional array to
pointer decay.
2020-03-17 19:07:27 -04:00
Lioncash 858162e0c1 CLineRenderer: Remove unnecessary casts to bool
These constructs function identically without the need for casting.
2020-03-17 19:04:01 -04:00
Lioncash b1e5bf72b6 CFogVolumeFilter: Make use of std::array where applicable
Makes data strongly typed and also allows for the removal of some
hardcoded array sizes.
2020-03-17 18:52:47 -04:00
Lioncash bb075d51ed CPhazonSuitFilter: Convert define into local variable
Same behavior, but with a more localized scope.
2020-03-16 15:57:21 -04:00
Phillip Stephens 6567ae8d42
Merge pull request #218 from lioncash/emplace
Runtime: Collapse emplace_back() calls where applicable
2020-03-13 15:30:43 -07:00
Lioncash 097d4a4422 Runtime: Collapse emplace_back() calls where applicable
Same behavior, but with less code.
2020-03-13 17:14:44 -04:00
Lioncash c37b3df27b CLineRenderer: Silence -Wmaybe-uninitialized warning
We can just initialize maxTriVerts to zero to prevent warnings from
occurring.
2020-03-12 19:15:51 -04:00
Lioncash 9db07b037a CElementGen: Make use of std::array where applicable 2020-03-09 12:53:28 -04:00
Lioncash 8d42eb4287 CPVSVisOctree: Initialize in-class member variables where applicable
Provides a deterministic initial state for the default constructor.
2020-03-07 05:01:29 -05:00
Lioncash 4034e3b31f CPVSVisOctree: Make use of std::array where applicable
Makes the arrays strongly typed.
2020-03-07 04:50:19 -05:00
Lioncash 969bcdba35 CPVSVisOctree: Use static qualifying name for ReadBoundingBoxBig()
It looks very odd using the name of the object being initialized to call
through to a static member function. We can disambiguate this by making
use of the qualifying name directly.
2020-03-07 04:46:19 -05:00
Phillip Stephens 4daa8ac374
CModelBoo: Fix missing cast 2020-03-06 16:27:33 -08:00
Phillip Stephens 24baafb996
Merge pull request #190 from lioncash/render
CBooRenderer: Minor cleanup
2020-03-06 16:14:47 -08:00
Phillip Stephens ae25392d19
Merge pull request #189 from lioncash/model
CModelBoo: Make static data constexpr where applicable
2020-03-06 16:14:05 -08:00
Lioncash b1426867bf CBooRenderer: Make use of std::array where applicable
Makes the data strongly typed and allows eliminating some hardcoded
sizes.
2020-03-06 02:25:40 -05:00
Lioncash 4f7f5cf09a CBooRenderer: Make Buckets class mostly internal
This is only ever functionally used within this translation unit, so we
can hide the class internally.
2020-03-06 01:16:02 -05:00
Lioncash 3c4e25062d CModelBoo: Make static data constexpr where applicable
Gets rid of potential runtime-initializers.
2020-03-06 00:46:30 -05:00
Lioncash d9664d165f CModelShaders: Make EExtendedShader an enum class
Prevents pollution of the urde namespace with general names like Flat,
etc.
2020-03-06 00:16:31 -05:00
Phillip Stephens 9f5f0abab4
More CThardus imps, add reference CTevPass imps 2020-02-29 17:11:41 -08:00
Luke S 1d9224f55c
Merge pull request #156 from lioncash/moving
CSkinnedModel: std::move constructor arguments where applicable
2020-02-24 03:00:59 -05:00
Lioncash 6c6df4d4ee CSkinnedModel: std::move constructor arguments where applicable
Fairly straightforward change. We can move the elements here to make use
of the move constructor over the copy constructor.
2020-02-24 02:36:44 -05:00
Lioncash 35ae2c2981 CGraphics: Silence missing initializer warning
Makes the initializer field for the aspect member explicit along with
the rest of the supplied values.
2020-02-24 02:28:27 -05:00
Lioncash 1aa24bd287 CRainSplashGenerator: Amend lower bound constant for speed in SSplashLine::Update()
Game code actually uses a constant of 4.0f as the lower bound for speed, not
0.015625f.
2020-01-30 22:20:49 -05:00
Lioncash 1cb289f243 RuntimeCommon: Normalize cpp inclusions
Normalizes the headers for the cpp files in the RuntimeCommon target.
Now all headers and source files within the RuntimeCommon/RuntimeCommonB
targets are normalized and consistent with one another.
2020-01-15 09:15:47 -05:00
Phillip Stephens 70747e23d5
Fix font rendering and world teleporter in MPT and PAL 2019-12-11 10:55:19 -08:00
Phillip Stephens b507799478
Add texture info lookup 2019-12-11 00:37:30 -08:00
Phillip Stephens 1a13f7e4ee
Update submodules, initial CTextureCache 2019-12-10 20:51:33 -08:00
Phillip Stephens 697a100bca
Implement CScriptSpecialFunction::ThinkAreaDamage, and more CThardus 2019-11-24 07:32:45 -08:00
Phillip Stephens 8b6dff70b4
Properly cleanup Xorg in visigen, various fixes and cleanups in URDE, more CRidley imps 2019-11-19 15:06:25 -08:00
Phillip Stephens 3b101267f8
Merge pull request #88 from lioncash/radar
Graphics/Shaders: Minor changes
2019-11-10 08:03:42 -08:00
Lioncash 136a229a1a Graphics/Shaders: Use std::array where applicable
Makes the arrays strongly typed and impervious to array->pointer decay.
This also allows simplifying some operations (such as being able to call
fill() instead of needing to use std::fill, etc).
2019-11-09 20:22:16 -05:00
Lioncash 417506572c Graphics/Shaders/CCameraBlurFilter: Move Vert definition into cpp file
This is private and not used anywhere in the exposed interface, so this
can be moved into the cpp file to make it an implementation detail and
allow moving a zeus header into the cpp file.
2019-11-09 20:22:16 -05:00
Lioncash 902f4fb5c5 Graphics/Shaders: Use forward declarations where applicable
Now, with all of the headers normalized, we can safely convert some
headers into forward declarations without needing to worry about
potentially breaking code in other headers or source files.
2019-11-09 20:22:09 -05:00
Phillip Stephens 6c1f682e0f
Initial CRidley implementation 2019-11-09 15:48:46 -08:00
Lioncash 8f28786048 CModel: Implement CModelFlags' operator!= in terms of operator==
Same behavior, less code.
2019-10-26 14:58:38 -04:00
Lioncash a633b8e8fd General: Normalize RuntimeCommon include paths
Performs the same normalizing done to the RuntimeCommonB target, now all
of the runtime headers have normalized include paths.
2019-09-28 04:14:29 -04:00
Lioncash 178e0e2cbc CBooRenderer: Use emplace_back() where applicable
Given the appended types consist of trivial types, it's more efficient
in this context to construct the data in place over using push_back,
which will cause a redundant copy (move semantics on trivial types are a
copy).
2019-09-24 22:51:38 -04:00
Phillip Stephens a41bd828e7 Update submodules 2019-08-18 18:49:54 -07:00
Lioncash d3d629d405 RuntimeCommon: Use const on member functions where applicable
Adds missing const qualifiers on class member functions that don't
modify instance state.
2019-08-14 09:25:39 -04:00
Lioncash 9312eef905 RuntimeCommon: Use override where applicable
Continues the override modernization by applying it to the main
RuntimeCommon target. Resolves around 1100+ cases where override can be
used.
2019-08-09 17:39:42 -04:00
Phillip Stephens d648f156b8 Revert original dolphin hash idea completely 2019-08-03 17:05:40 -07:00
Phillip Stephens ff83dbc676 Minor fixes and cleanup 2019-08-03 17:02:53 -07:00
Jack Andersen 0ab08daae7 Windows build fixes 2019-07-27 15:21:31 -10:00
Jack Andersen 5acf9ecbcf Graphics debug groups and bug fixes 2019-07-20 22:42:52 -10:00
Jack Andersen 7a3da1f7a6 Massive fmtlib refactor 2019-07-19 18:27:21 -10:00
Jack Andersen 77af3f0ebd CPuddleToadGamma and animation system fixes 2019-06-20 20:02:56 -10:00
Jack Andersen 87023b432e Fixes in ANIM cooking 2019-06-15 16:22:23 -10:00
Jack Andersen e218b8aeb5 CActorContraption fixes, better CMake dependency handling 2019-06-11 16:05:17 -10:00
Jack Andersen b7aa3e06d2 Per-stage shader hashing 2019-06-05 14:07:50 -10:00
Jack Andersen 4a4cf58b6f HLSL cubemaps 2019-05-31 23:28:12 -10:00
Jack Andersen 410d7896f7 Support for rendering dynamic cubemaps 2019-05-31 17:41:01 -10:00
Jack Andersen 5f4ebcb2f5 Windows fixes 2019-05-09 18:09:01 -10:00
Jack Andersen 233d13ceb9 Refactor for blender 2.8 and new shader model 2019-05-07 17:50:21 -10:00
Jack Andersen a63a61fef8 Implement CWallCrawlerSwarm 2019-03-23 22:06:59 -10:00
Jack Andersen 99b1a8ef49 Lots of bug fixes 2019-03-12 17:46:20 -10:00
Jack Andersen 52b36795ac Proper handling for persistently resident resources 2019-03-09 23:37:36 -10:00
Jack Andersen f40bf707f6 DCLN OBB transform fix 2019-03-07 18:16:42 -10:00
Jack Andersen ed4ebf0af1 Metal fixes 2019-03-03 18:45:22 -10:00
Jack Andersen 54f0724de5 D3D fixes 2019-03-03 13:04:18 -10:00
Jack Andersen 8b9f073635 Various rendering fixes 2019-03-02 20:19:42 -10:00
Jack Andersen 4cb26976bd More thermal visor fixes; face reflection fix 2019-02-26 18:52:01 -10:00
Jack Andersen 67b9882dbe Thermal visor fixes 2019-02-24 22:14:59 -10:00
Jack Andersen 8df0a4913c zeus constexpr refactor and thermal visor fixes 2019-02-23 21:15:54 -10:00
Jack Andersen 48eaa2545b Working CScriptGunTurret 2019-02-17 19:47:46 -10:00
Jack Andersen 88591f48f0 More bug fixes 2019-02-07 21:56:54 -10:00
Jack Andersen a353c7ddcf Metal shader fixes 2019-02-03 14:01:44 -10:00
Jack Andersen c8765bc1b9 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-01-29 10:14:49 -10:00
Jack Andersen 89906be162 Consistent lighting clamping 2019-01-29 10:14:34 -10:00
Jack Andersen ad2681f857 Windows fixes 2019-01-28 22:28:35 -10:00
Jack Andersen 137968ecc7 Bug fixes and CAutoMapper mouse events 2019-01-22 21:52:19 -10:00
Jack Andersen f9b0614327 Various bug fixes 2019-01-04 22:34:09 -10:00
Jack Andersen 5b55320e9b Implement CPlasmaProjectile 2019-01-02 17:47:28 -10:00
Phillip Stephens 4f3c8daf27 Initial CBabygoth imps 2018-12-31 00:37:52 -08:00
Jack Andersen f184291461 ANCS PAS I/O fix 2018-12-15 20:32:07 -10:00
Jack Andersen dac8fc3eb5 Space pirate bug fixes 2018-12-14 20:29:41 -10:00
Jack Andersen 636c82a568 New code style refactor 2018-12-07 19:30:43 -10:00
Jack Andersen 7c7da6671a SIMD refactor 2018-12-07 15:49:15 -10:00
Jack Andersen e1fa938127 Work on CSpacePirate 2018-11-25 16:15:44 -10:00
Jack Andersen 57c1196599 Various bug fixes 2018-11-17 18:01:29 -10:00
Jack Andersen b099be63dd Bug fixes 2018-11-17 14:10:26 -10:00
Jack Andersen bf3636a16e Lots of CParasite implementations 2018-11-11 18:21:36 -10:00
Jack Andersen 1aab0528f3 Various bug fixes 2018-11-07 14:53:38 -10:00
Jack Andersen 3ef7386978 Proper interleaved rendering of indirect-textured particle instances 2018-11-04 21:25:28 -10:00
Jack Andersen d6051f8808 Implement CKnockBackController 2018-11-04 20:12:53 -10:00
Jack Andersen 4c306e7e40 Implement CHUDBillboardEffect, bug fixes 2018-11-03 15:08:44 -10:00
Jack Andersen d140f35886 All CEnvFxManager effects working 2018-11-02 22:46:12 -10:00
Jack Andersen 98c7525176 Initially working CEnvFxManager 2018-11-01 22:16:16 -10:00
Jack Andersen 3147b49b3d EVNT extraction fix 2018-10-27 15:22:55 -10:00
Jack Andersen 29dad50cca Particle, map and line renderer fixes 2018-10-25 18:37:22 -10:00
Jack Andersen a2da358fd3 More D3D fixes 2018-10-22 15:31:00 -10:00
Jack Andersen b76ee77ecf Fix CMoviePlayer from rendering upside down on Vulkan 2018-10-20 19:39:16 -10:00
Jack Andersen 8fb77eac2c Various bug fixes 2018-10-20 18:14:00 -10:00
Jack Andersen 27ca93178a Upside-down OpenGL reflection fix 2018-10-18 13:55:59 -10:00
Jack Andersen 93ff138ba9 16-bit fog volume LUT; fog is now 256x sexier 2018-10-17 22:28:57 -10:00
Jack Andersen f433821320 Implement --warp command-line arguments 2018-10-17 18:51:59 -10:00
Jack Andersen 3f4aeffb17 Merge branch 'shader-refactor' 2018-10-15 17:17:37 -10:00
Jack Andersen 919140c06f macOS API sync 2018-10-15 17:17:02 -10:00
Jack Andersen 1851308021 Windows fixes 2018-10-14 10:16:21 -10:00
Phillip Stephens bbfe61efbf Various loader implementations 2018-10-11 15:57:05 -07:00
Jack Andersen 1559163f98 Shader refactor bug fixes and attachment model extract/cook 2018-10-11 10:50:05 -10:00
Jack Andersen c91e5df986 Convert to pragma once 2018-10-06 17:42:33 -10:00
Jack Andersen 9461e98512 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde into shader-refactor 2018-10-06 16:59:32 -10:00
Jack Andersen c307e354ca Huge shader refactor 2018-10-06 16:59:17 -10:00
Phillip Stephens 8b25548482 Various bug fixes, implement `CMain::WarpTo` 2018-09-20 20:41:57 -07:00
Phillip Stephens 489470feda Implement CBomb 2018-09-08 18:13:56 -07:00
Phillip Stephens ee97ede3fe Initial CPatterned imps 2018-09-07 16:51:07 -07:00
Phillip Stephens 1a372d2589 Add support for InvDstMultiply blending for shadows, initial CAi implementation 2018-09-06 20:37:39 -07:00
Jack Andersen 67197621a1 Fix fixed position camera hint 2018-07-09 08:08:44 -10:00
Jack Andersen 3a9e7b2f9b PVS and DCLN bug fixes 2018-06-27 20:47:34 -10:00
Jack Andersen 4ddec7e10c Make CLineRenderer supply verts in clip-space 2018-06-23 15:01:29 -10:00
Jack Andersen cfe384b5c2 Better octree generation density 2018-06-23 13:09:16 -10:00
Jack Andersen f4b01e9c3f Fix AMD crash with instanced particle shaders 2018-06-21 17:08:47 -10:00
Jack Andersen 718d2cb29e Water rendering order fix, morphball visor fixes 2018-06-21 11:04:16 -10:00
Jack Andersen 64dd7b1643 Update fixNES 2018-06-18 21:03:00 -10:00
Jack Andersen 079c343557 ANIM cook fix; OBB generation crash fix 2018-06-15 16:26:58 -10:00
Jack Andersen 1e36329ed4 Implement Metal fluid plane tessellation shader 2018-06-11 15:16:27 -10:00
Jack Andersen 8f9d7da3ee Implement tessellation shader for HLSL 2018-06-07 15:15:46 -10:00
Jack Andersen 1456026875 Fix GLSL switch statement 2018-06-06 18:51:23 -10:00
Jack Andersen 5fb95d69d3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-06-06 18:44:11 -10:00
Jack Andersen ac424ff9eb Implement CFluidPlaneGPU for GPU-computed water ripples 2018-06-06 18:43:26 -10:00
Phillip Stephens cb2b9fa8bd Initial CScriptGunTurret Implementation 2018-06-04 12:15:35 -07:00
Jack Andersen e63102e180 Implement water rippling and fix CFluidPlane memory access errors 2018-06-03 15:56:21 -10:00