Implement ClampToBorder (fixes #521)#581
Open
lisyarus wants to merge 4 commits intogfx-rs:trunkfrom
Open
Conversation
cwfitzgerald
approved these changes
Apr 29, 2026
Member
cwfitzgerald
left a comment
There was a problem hiding this comment.
Got a question, and this needs rebasing but looks good.
Comment on lines
-41
to
-49
| map_enum_with_undefined!( | ||
| map_address_mode, | ||
| WGPUAddressMode, | ||
| wgt::AddressMode, | ||
| "Unknown address mode", | ||
| ClampToEdge, | ||
| Repeat, | ||
| MirrorRepeat | ||
| ); |
Member
There was a problem hiding this comment.
Question: why did this need to be converted to an explicit function?
Contributor
Author
There was a problem hiding this comment.
If I understand it correctly, map_enum_with_undefined appends the native enum name (to get WGPUAddressMode_Repeat and the like), but now it has to mix enum values from two different enums (WGPUAddressMode and WGPUNativeAddressMode).
c8a1a4e to
d5cee1c
Compare
Contributor
Author
|
Rebased to fresh trunk. |
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.
Checklist
cargo clippyreports no issuescargo docreports no issuescargo denyissues have been fixed or added todeny.tomlAdded new functionality. @githubnameDescription
Uncommencted the
ClampToBorderandClampToZerofeatures. Since these aren't present inwebgpu.h, I had to add a few things towgpu.hAPI:WGPUNativeAddressModeenum withWGPUNativeAddressMode_ClampToBordervalue, which is supposed to be used in places whereWGPUAddressModeis expectedWGPUSamplerBorderColorenum that mimicks the corresponding wgpu enumWGPUSamplerDescriptorExtrasstruct to be chained inWGPUSamplerDescriptor, which provides theWGPUSamplerBorderColorvalue.I had to rewrite the
map_address_modefunction inconv.rs: preciously it was generated using themap_enum_with_undefinedmacro, but since now it mixes values from two native enums, I had to rewrite it by hand.Currently, if
WGPUNativeAddressMode_ClampToBorderis used but theWGPUSamplerDescriptorExtrasisn't provided, it sets theborderColorinSamplerDescriptortoNone, and the wgpu itself is supposed to handle this case. We could alternatively check that explicitly inwgpuDeviceCreateSampler, I'm not sure what the correct thing to do would be here.Related Issues
This PR fixes #521