Commit Graph

662 Commits

Author SHA1 Message Date
Luke Street da224d492a CCubeRenderer: Implement ActivateLightsForModel & PrepareDynamicLights 2022-03-13 15:14:11 -04:00
Luke Street 3be470b7b8 Compile fixes & cleanup 2022-03-12 13:59:30 -05:00
Phillip Stephens 3b5d5e1473
Update zeus 2022-03-12 09:03:55 -08:00
Luke Street a3d0da44e2 Implement CGX & migrate usages to CGX/GX 2022-03-12 10:47:20 -05:00
Luke Street d7dbec5be0 Implement CVertexMorphEffect & CSkinnedModelWithAvgNormals (prev. CMorphableSkinnedModel) 2022-03-10 18:56:50 -05:00
Luke Street 8096ffc29a CCubeMaterial: Fix kcolor set in HandleTransparency 2022-03-10 03:27:50 -05:00
Luke Street cd963c4a5c Reimplement CSkinRules/CSkinnedModel; skinning kinda works! 2022-03-10 01:33:17 -05:00
Luke Street d62336b813 CModel destructor & frame list fixes 2022-03-09 02:23:56 -05:00
Luke Street c7f05d0a59 Windows fixes & memory fixes 2022-03-08 18:36:39 -05:00
Luke Street 3fd0b1f23a Fixes & CArtifactDoll/CSamusDoll updates 2022-03-08 17:21:15 -05:00
Luke Street e88f831950 Implement HandleTransparency, lighting & fix texture load 2022-03-08 17:19:02 -05:00
Luke Street e0a7236ad6 Various model rendering fixes 2022-03-08 02:44:57 -05:00
Phillip Stephens eb17b8061d
CTevCombiners: I overlooked a possible buffer overrun, fix it by using `maxTevStages` instead of `ERglTevStage::MAX` 2022-03-07 22:19:07 -08:00
Phillip Stephens 791b1fa598
CTevCombiners: Add KColorSel and KAlphaSel configuration to CTevPass::Execute 2022-03-07 22:13:25 -08:00
Phillip Stephens cb2440d79c
CTevCombiners: Remove hack in CTevPass::Execute 2022-03-07 22:08:48 -08:00
Luke Street 14a82a678a Some hacks for TEV stage handling 2022-03-08 00:28:31 -05:00
Luke Street 71342ed75e More aurora::gx refactoring 2022-03-07 18:53:42 -05:00
Phillip Stephens 35674c27e5
CCubeRenderer: More rendering imps 2022-03-06 19:07:00 -08:00
Phillip Stephens aea7ac597a
CCubeRenderer: more model darw imps 2022-03-06 13:01:25 -08:00
Luke Street 7d07892198 Extract GX shader/pipeline generation into shared API 2022-03-06 15:58:06 -05:00
Luke Street cd86dbd6ee More CCubeMaterial, more CGraphics, more aurora::gx 2022-03-06 02:46:42 -05:00
Phillip Stephens 7a61b6cf30
CCubeModel: Fix typo 2022-03-05 20:52:14 -08:00
Phillip Stephens 2bdfe96134
CCubeRenderer: Start getting world rendering implemented 2022-03-05 20:50:54 -08:00
Luke Street 6c3e74b93e CGuiFrame & Model fixes; CModel::Draw impl; Document CModelFlags bits 2022-03-05 19:26:52 -05:00
Luke Street 84b6fcfb44 Remove forRenderer from CGraphics PerspectiveProjectionMatrix 2022-03-05 18:30:43 -05:00
Phillip Stephens 6b1948176a
Remove redundant `GX` specifieron IndTexScale 2022-03-05 13:48:46 -08:00
Phillip Stephens 24a602c10f
Cleanup and more migration to Stream 2022-03-05 13:46:53 -08:00
Luke Street 33d0d14fda Initial working CGraphics Stream API 2022-03-04 22:37:07 -05:00
Luke Street 740114af9e Begin transitioning to new CTexture; start Stream API 2022-03-04 02:47:21 -05:00
Phillip Stephens 00fd243f62
CCubeRenderer: Don't fill up the buckets uncontrolled 2022-03-03 00:33:24 -08:00
Phillip Stephens 487dcc4bde
CSkinRules: Fix ReadCount not incrementing offset properly 2022-03-03 00:24:46 -08:00
Phillip Stephens 7010c36056
DolphinCTexture: Near complete RE, usable as-is! 2022-03-02 23:51:11 -08:00
Phillip Stephens b0a711d5e2
Initial proper CTexture RE, fix configuration corruption 2022-03-02 00:26:24 -08:00
Phillip Stephens 44f9d6648a
CGraphics: Viewport fixes 2022-02-27 14:46:15 -08:00
Luke Street fb69d3fdba aurora: Add more GX state functions & cleanup 2022-02-27 16:58:27 -05:00
Phillip Stephens 004d78100f
More CCubeRenderer imps 2022-02-27 13:17:44 -08:00
Phillip Stephens 805065b6f2
CCubeRenderer: Add Drawable logic implemented 2022-02-27 12:12:02 -08:00
Luke Street 1583248896 Fix missing CMoviePlayer::Initialize call 2022-02-27 12:08:24 -05:00
Phillip Stephens b02ec12049
Initial CFont implementation, proper CTexture/CGraphicsPalette structures 2022-02-26 18:18:58 -08:00
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