Extract ScalarRasterLayer base (refc + cape) [skip release]#18
Merged
Conversation
…m name
refcRasterLayer and capeRasterLayer were ~95% identical. Extract a
ScalarRasterLayer base owning the mesh, texture lifecycle, and draw; refc and
cape become a few lines of config (name, colormap, threshold, bounds). Wind
stays its own 2-channel layer.
The base derives the UBO block name as `${name}Uniforms` from the single `name`
field, so the module-name/block-name mismatch that silently blanked these
layers (and shipped that way in prod) is now unrepresentable.
Verified: cape + precip-forecast still render (headless, real GPU), no luma
binding warnings.
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
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.
From the audit (architecture / gpu-shaders lanes). Internal refactor — cape and precip render identically — hence [skip release].
refcRasterLayerandcapeRasterLayerwere ~95% identical. Extract aScalarRasterLayerbase owning the mesh, texture lifecycle, and draw; refc and cape become a few lines of config (name, colormap, threshold, bounds). Wind stays its own 2-channel layer.The base derives the UBO block name as
${name}Uniformsfrom the singlenamefield, so the module-name/block-name mismatch that silently blanked these layers (and shipped that way in prod, fixed in #13) is now unrepresentable — there's one source for module name, block name, sampler, and setProps key.Verified: cape + precip-forecast still render (headless on a real GPU), zero luma binding warnings. tsc, biome, build all pass.
Docs & attribution