Commit Graph

623 Commits

Author SHA1 Message Date
Phillip Stephens 7a59585c70
Use RE'd CStopwatch adapted for std::chrono, get metaforce linking again 2022-02-26 08:42:42 -08:00
Luke Street 586268c66f More CCubeModel/CCubeMaterial 2022-02-26 02:05:59 -05:00
Luke Street 832eb180bd Begin transitioning to new CModel/CCubeModel & friends 2022-02-25 02:45:25 -05:00
Luke Street c3c9f9d601 Remove shader warmup 2022-02-23 03:20:29 -05:00
Luke Street c33674b9ab Lots of Windows fixes; add D3D12; more boo decoupling 2022-02-22 00:53:57 -05:00
Luke Street 57d96dbb17
Fully decouple hecl from Metaforce
- Added CStringExtras Convert functions
  (and UTF-compatible versions)
- GX header copied into Runtime
- SFX headers copied into Runtime/Audio
2022-02-21 08:01:06 -08:00
Phillip Stephens 6c92f03664
Move CVar* into Metaforce to begin removal of hecl's Dataspec 2022-02-21 08:01:06 -08:00
Phillip Stephens ad272f7468
More refactoring, decouple tweaks from hecl 2022-02-21 08:01:05 -08:00
Phillip Stephens dad7249927
RE COutput/InputStream and friends and migrate over
This branch is probably still horribly broken, but it's a good first step to migrating away from having hecl embedded in the runtime
2022-02-21 08:01:05 -08:00
Luke Street c64f9eb2d1 aurora: Reimplement textures 2022-02-17 19:38:31 -05:00
Luke Street 7b9f893a49 aurora: the boring C++ version 2022-02-16 00:21:24 -05:00
Phillip Stephens acd861754c
TexturedQuad fixes, Better controller input handling (needs custom mapping) 2022-02-08 11:18:12 -08:00
Luke Street b871cc965a memmove -> memcpy 2022-02-08 01:59:09 -05:00
Luke Street 921d6bf10a Working movie player 2022-02-08 01:54:05 -05:00
Luke Street a1482b4743 SDL controller input 2022-02-07 20:48:08 -05:00
Phillip Stephens c53ee12578
Add ability to check if DXT1/BC1 is supported, create a fake texture for the time being for hardware that doesn't support it 2022-02-06 05:13:19 -08:00
Phillip Stephens 06a1c6e8ac
Minor fixes, get PRESS START rendering 2022-02-05 07:22:30 -08:00
Phillip Stephens 8d01afc632
Finish CModel constructors 2022-02-04 00:10:09 -08:00
Phillip Stephens dca8af4d96
Fix division on packed normals 2022-02-03 07:26:33 -08:00
Phillip Stephens 9461fe0563
More CModel RE, removed the separated normal types hack 2022-02-03 07:24:41 -08:00
Phillip Stephens aca91b9361
More CModel re-reverse engineering 2022-02-01 23:18:03 -08:00
Phillip Stephens 05f841a5ce
More CModel RE 2022-02-01 01:18:42 -08:00
Phillip Stephens 3ba2c4bfff
Minor fixes, more CModel RE 2022-02-01 00:14:49 -08:00
Luke Street e48435f11e Start wiring up wgpu+winit 2022-01-31 19:06:54 -05:00
Luke Street a2cc6cd204 Merge remote-tracking branch 'darkszero/feature/lazy-commit-resources'
# Conflicts:
#	extern/boo
2021-10-25 23:07:56 -04:00
Luke Street 32e115f4aa Merge remote-tracking branch 'origin/main' into utf8
# Conflicts:
#	DataSpec/DNAMP1/FRME.cpp
#	DataSpec/DNAMP1/MLVL.cpp
#	Runtime/CMain.cpp
#	hecl/lib/Blender/Connection.cpp
2021-10-25 19:03:01 -04:00
Phillip Stephens 3bb05c0ee5
Always initialize all pipelines in CElementGenShaders, this prevents an edge case in Quarantine Access B 2021-08-06 20:19:29 -07:00
Henrique Gemignani Passos Lima d2ae2b3818 Support lazy CGraphics::CommitResources 2021-07-04 02:53:04 +03:00
Luke Street 9ca1a38171 Use UTF-8 exclusively internally
This removes SystemString, SystemChar, etc.
All filepaths and log strings are assumed to be UTF-8,
with conversions to UTF-16 for Windows APIs as appropriate.

Updates amuse, athena, boo, kabufua and nod
2021-06-30 14:20:45 -04:00
Phillip Stephens a9bcb7a9ce
Reformat pass 2021-06-07 12:29:18 -07:00
Phillip Stephens 0b4f15341b
Use EntityList instead of `rstl::resverved_vector<TUniqueId, 1024>' directly 2021-06-06 17:07:45 -07:00
Phillip Stephens 5f1aed51cb
De-hardcode max entity count 2021-06-06 16:53:41 -07:00
Luke Street 94f10bb002 Remove Editor & specter 2021-05-29 18:45:07 -04:00
Phillip Stephens 847211f81f Remove unnecessary switch from CLight constructor 2021-05-06 10:52:35 -07:00
Phillip Stephens 5e0604f101 Correct Light radius calculation 2021-05-06 10:51:54 -07:00
Phillip Stephens f795332d89
Merge pull request #388 from henriquegemignani/feature/optick
Using optick, linked from boo
2021-04-18 17:31:29 -07:00
Luke Street fb9ea9092a Merge branch 'massive-rename' 2021-04-10 09:38:42 -04:00
Henrique Gemignani Passos Lima d6f19d26e7 Using optick, linked from boo 2021-04-10 09:21:34 -04:00
Henrique Gemignani Passos Lima e3896bdee9 Combine CommitResources for CBooRenderer::UpdateAreaUniforms.
This shares the IGraphicsDataFactory::Context over many functions, to avoid
the overhead of calling CGraphics::CommitResources multiple times.
2021-04-10 09:18:45 -04:00
Phillip Stephens 9bae2f943e
Rename everything 2021-04-10 01:42:06 -07:00
SirMangler 7fb4c45046 FPS Counter and debug overlay CVAR 2021-01-10 16:10:55 +00:00
Luke Street 168eb6ac39 CModelShaders: Split Thermal into ThermalModel, ThermalStatic extended shaders
This semi-hacky approach will be replaced with future hsh work
2020-12-18 06:08:25 -05:00
Luke Street 9e5f28ba80 CModelShaders: Check noZWrite for thermal depth test
Adds back LightingAlphaWrite extended shader
2020-09-27 12:59:56 -04:00
Luke Street 6ff305da06 CModelShaders: Disable Z-test for LightingAlphaWrite
Permits static thermal hot objects to render properly
2020-09-27 12:23:54 -04:00
Luke Street 2361916614 CBooRenderer: Don't smash the stack 2020-09-16 13:07:53 -04:00
Luke Street bc8135e896 CBooRenderer: Fix light count in ActivateLightsForModel 2020-09-16 13:01:06 -04:00
Lioncash a32e21df14 General: Resolve -Wcast-qual warnings
We can just avoid casting away const in order to resolve these warnings.
2020-08-23 15:54:54 -04:00
Lioncash c9f5483c59 CLineRendererShaders: Make use of static inline variables
Same behavior, less code.
2020-08-02 03:02:08 -04:00
Lioncash 83c2023bbb CElementGenShaders: Make use of static inline variables
Same behavior, less code
2020-08-02 02:57:02 -04:00
Lioncash 4e1ff26f56 CDecalShaders: Make use of static inline variables
Same behavior, less code.
2020-08-02 02:53:15 -04:00
Lioncash 25c017e0cc CModelBoo: Make use of static inline variables
Same behavior, but allows all the initializers to be in one place,
rather than throughout the cpp file.
2020-08-01 23:33:50 -04:00
Lioncash 391e97fbd1 CBooRenderer: Eliminate mixed signedness bitwise ANDing
Prevents sign mismatch warnings.
2020-08-01 04:42:06 -04:00
Luke Street d44eccc386 Runtime: constexpr fixes for gcc 2020-05-27 13:02:20 -04:00
Luke Street c1f7358d96 CWideScreenFilter: Implement DrawFilter 2020-05-14 19:23:43 -04:00
Lioncash f2d0939a15 CParticleSwooshShaders: Remove unused file-scope variable
Same behavior, one less runtime static constructor.
2020-05-12 20:50:35 -04:00
Lioncash 4e718a805f CFluidPlaneShader: Replace explicit operator bool calls with the analogous named function
Same behavior, more informative to the reader about what is being
checked for.
2020-05-12 20:45:32 -04:00
Lioncash 4b5074b298 RuntimeCommon: Const qualify auto references where source is const
Marks references that would be deduced as const automatically with const
to be explicit to the reader.
2020-05-12 20:32:51 -04:00
Lioncash 8e77d6175c CTextureBoo: Make use of std::array where applicable
Allows dehardcoding some array sizes.
2020-05-12 20:23:27 -04:00
Lioncash e0a44bdf45 CTextureBoo: Prevent signed conversion warnings from occurring in Convert* helper functions 2020-05-12 20:03:58 -04:00
Lioncash fee8d91dca CTextureBoo: Make use of anonymous namespace
Makes some helper functions have internal linkage, silencing some
-Wmissing-declarations warnings, and also allows preventing ODR
violations from ever occurring with the RGBA8 and DXT1Block structs.
2020-05-12 20:01:58 -04:00
Lioncash df3aed75fe CGameArea: Eliminate implicit sign conversions in Validate() 2020-04-23 02:53:24 -04:00
Lioncash fe642bde8b CCameraBlurFilter: Make use of std::array where applicable
Same behavior, less hardcoded sizes.
2020-04-22 00:13:43 -04:00
Lioncash fa3e639a9d RuntimeCommon: Make use of bitfield initializers where applicable
Continues and finishes the migration towards initializing all bitfield
members where applicable
2020-04-21 17:16:19 -04:00
Luke Street 32c44cbf05 Merge branch 'master' into omegapirate
# Conflicts:
#	Runtime/GuiSys/CAuiImagePane.cpp
2020-04-19 22:12:18 -04:00
Luke Street 24acb585f8 MSVC & zeus fixes; update hecl-gui 2020-04-19 21:09:30 -04:00
Luke Street 4e88f503ac COmegaPirate: Implement CFlash 2020-04-19 02:47:25 -04:00
Phillip Stephens df75c00203
Fix WideScreenFilter crash 2020-04-17 15:32:26 -07:00
Phillip Stephens 6838515d3d
Fix ALPH default value 2020-04-13 00:48:00 -07:00
Lioncash aee2259972 CTexturedQuadFilter: Mark DefaultRect as constexpr
Same behavior, minus runtime initializers.
2020-04-12 10:40:36 -04:00
Lioncash 3efc8486a4 CColoredQuadFilter: Mark DefaultRect as constexpr
Same behavior, minus runtime initializers.
2020-04-12 10:39:02 -04:00
Lioncash e0c187c607 CModelBoo: Make use of std::array where applicable
Allows decoding some array sizes.
2020-04-12 10:35:56 -04:00
Lioncash c203a0de7c CGraphics: Mark skCubeBasisMats as constexpr
Same behavior, minus potential runtime initializers.
2020-04-12 10:31:07 -04:00
Luke Street 56cebfbacd
Merge pull request #308 from AxioDL/fmtlib-update
Update fmtlib
2020-04-12 03:06:46 -04:00
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