-
Notifications
You must be signed in to change notification settings - Fork 14
Port rendering to Metal and add comprehensive test suite #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
slarson
wants to merge
48
commits into
master
Choose a base branch
from
ios16.7.11
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…etal Use Metal for rendering -- first cut
…-documentation Fix search mapping bug and clarify build setup
…r-metal-compatibility Port leftover OpenGL types to Metal-safe equivalents
…etal Clean up OpenGL leftovers
…dencies-and-implement-picking Implement Metal picking and simd vectors
Update setup instructions
…ling in the view controller Replaced hardcoded tag values with the new enum throughout button setup and action handling Improved entity lookup logic in OWResource to avoid the inefficient search path and removed the warning comment Updated the README to document that Doxygen is now used for generating the docset
…atibility Fix Metal camera transformations and depth
…nt-names-and-method-conflict-in-ow Fix vector component names and count cast
…ndeclared-identifiers Fix compile issues
…nd-duplicate-symbols Fix duplicate symbol by removing unused uniform array
…warnings Fix iOS deprecation warnings
…d-linker-error Fix WKWebView link error and warnings
…rd-error-in-xcode-build Fix LaunchScreen storyboard
…or-in-xcode-build
…rd-error-in-xcode-build Fix LaunchScreen storyboard type
…r-in-xcode-build Fix compile storyboard error
- Fix Metal rendering pipeline (missing setFragmentBuffer for fragment shader) - Implement staged opacity for layer peeling (cuticle→organs→muscles→neurons) - Fix initial camera zoom to properly fill screen - Add fallback colors for missing materials - Add fallback OWDraw creation when bounding boxes missing Test coverage (107 tests): - OWVectorTests: 13 tests for math/vector operations - OWInterpolantTests: 20 tests for animation tweening - OWNavigateTests: 33 tests for camera/navigation - OWResourceTests: 41 tests for mesh/metadata loading
The setter was calling self.paused = paused which invokes the setter again, causing stack overflow. Changed to use backing ivar _paused.
- Change background from dark blue-gray to kWormGreen (0.6, 0.8, 0.2) - Fix layer index constants to match enum in OWDefines.h - Add proper index mapping for horizontal slider mode
Allow zoom gestures to work during cameraStateReturning state, not just cameraStateFree and cameraStatePill states.
- Fix per-material colors not rendering distinctly Use setFragmentBytes instead of shared uniformBuffer to pass uniforms per draw call. Metal's deferred command encoding caused all draws to see the last color written to a shared buffer. - Fix slider at bottom showing blank screen Keep neurons at full opacity (1.0) when slider is at bottom position. The innermost layer should stay visible, not fade to nothing. - Minor cleanup of debug logging in OWNavigate
Changed render order in horizontal slider mode from array order to explicit back-to-front order (neurons → muscles → organs → cuticle) matching the original GL implementation. This ensures layers below become visible when outer layers are faded using the individual slider controls.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Test Coverage (107 tests)
Test Plan