Conversation
…This is not complete and not all of these match, but it's a good start on the process.
|
All projections must be in the same header/cpp file. |
ThePixelGamer
left a comment
There was a problem hiding this comment.
Looks mostly good but abood mentioned the projection headers and sources are supposed to be condensed into one file ie. seadProjection.(h/cpp)
| bool _202; | ||
| }; | ||
| static_assert(sizeof(GraphicsNvn) == 0x208); | ||
| // static_assert(sizeof(GraphicsNvn) == 0x208); |
There was a problem hiding this comment.
is there a reason why this was commented out?
| } // namespace sead | ||
|
|
||
| #endif // SEAD_GRAPHICS_CONTEXT_H_ | ||
| #ifndef SEAD_GRAPHICS_CONTEXT_H_ |
There was a problem hiding this comment.
extra copy and paste?
| @@ -0,0 +1,550 @@ | |||
| #ifndef SEAD_GRAPHICS_CONTEXT_H_ | |||
| @@ -1,31 +1,35 @@ | |||
| #pragma once | |||
| #ifndef SEAD_VIEWPORT_H_ | |||
| explicit Viewport(const BoundBox2f& parent); | ||
| explicit Viewport(const LogicalFrameBuffer& buffer); | ||
| Viewport(f32 left, f32 top, f32 sizeX, f32 sizeY); | ||
| // explicit Viewport(const BoundBox2f& box); |
There was a problem hiding this comment.
reason behind commenting this out?
| return 4; | ||
| } | ||
|
|
||
| void DirectResource::doCreate_(u8*, u32, Heap*) {} |
There was a problem hiding this comment.
this change seems unrelated to the PR
|
Progress on this pull request? It's almost going to be 2 years now since then. |
|
I find it unlikely that the original author will return to this PR, so if we want it merged, someone else needs to take it over and fix the stuff that was commented on |
|
I haven't touched it because there was an overarching discussion that I was trying to ask about regarding some of the organization and other things going on. Additional followup on the Discord at the time got very little traction, and made it difficult to care about making any changes. To summarize (as best I can remember):
I'm not fundamentally opposed to making changes to this PR (ThePixelGamer has some suggestions that should be incorporated), but the above combo of things made it feel like it wasn't worth my time. |
|
Sorry for having it get stuck here - I'll try my best to help get this PR back on track, if you're still interested.
We haven't discovered too fundamental differences between games yet to have a proper workflow. A discussion has recently been opened in #162 - so far, this repo is mostly targeted to BotW, while some contributions come from SMO, but are also always checked again with BotW to avoid introducing conflicts.
The documentation on the process here is ... nonexistant. First up, we can determine file boundaries and sometimes names based on inline optimizations (if it is inlined, it must be the same TU => same file) and linking order (alphabetically). As far as I know, we only have information about |
|
As of #167, I believe this is moot. |
|
Yours still has additional implementations of various |
|
I redid the PR as #213. |
This PR attempts to implement many of the Projection libraries and tries to update their dependencies where needed and from @aboood40091's repo.
Goals
Projectionlibraries, including what appear to be the Perspective, Ortho, Frustum, and Direct projections.Addresses
0xB1D898-0xB1F2B0are the bulk of the Projection functions in BotW.0xB1FFF0-0xB20718are thesead::ViewportfunctionsWaiting on dependencies
Projection::unproject(Ray<>, ...)Non-Matching Functions
Projection::doScreenPosToCameraPosTo(sead::Vector3<float>*, sead::Vector3<float> const&) constProjection::project(sead::Vector2<float>*, sead::Vector3<float> const&, sead::Viewport const&) constProjection::unproject(sead::Vector3<float>*, sead::Vector3<float> const&, sead::Camera const&) constProjection::doUpdateDeviceMatrix(sead::Matrix44<float>*, sead::Matrix44<float> const&, sead::Graphics::DevicePosture) constPerspectiveProjection::PerspectiveProjection()PerspectiveProjection::PerspectiveProjection(float, float, float, float)OrthoProjection::OrthoProjection()OrthoProjection::OrthoProjection(float, float, float, float, float, float)OrthoProjection::OrthoProjection(float, float, sead::Viewport const&)OrthoProjection::setByViewport(sead::Viewport const&)OrthoProjection::doUpdateMatrix(sead::Matrix44<float>*) constFrustumProjection::FrustumProjection(float, float, float, float, float, float)DirectProjection::DirectProjection()DirectProjection::DirectProjection(sead::Matrix44<float> const*, sead::Graphics::DevicePosture)DirectProjection::setDirectProjectionMatrix(sead::Matrix44<float> const*, sead::Graphics::DevicePosture)DirectProjection::updateAttributesForDirectProjection()DirectProjection::doUpdateMatrix(sead::Matrix44<float>*) constDirectProjection::doScreenPosToCameraPosTo(sead::Vector3<float>*, sead::Vector3<float> const&) constNext Steps
I'm looking for feedback on the non-matching functions, and which of the library files that have been modified that need to be updated here.
This change is