createSampler method
GpuSampler
createSampler({
- GpuFilterMode magFilter = GpuFilterMode.linear,
- GpuFilterMode minFilter = GpuFilterMode.linear,
- GpuFilterMode mipmapFilter = GpuFilterMode.nearest,
- GpuAddressMode addressMode = GpuAddressMode.clampToEdge,
- GpuAddressMode? addressModeU,
- GpuAddressMode? addressModeV,
- GpuAddressMode? addressModeW,
- GpuCompareFunction? compare,
- double lodMinClamp = 0.0,
- double lodMaxClamp = 32.0,
- int maxAnisotropy = 1,
- String label = '',
compare makes this a comparison sampler (WGSL sampler_comparison
— bind with GpuSamplerBindingType.comparison). maxAnisotropy > 1
needs all filters linear.
Implementation
GpuSampler createSampler({
GpuFilterMode magFilter = GpuFilterMode.linear,
GpuFilterMode minFilter = GpuFilterMode.linear,
GpuFilterMode mipmapFilter = GpuFilterMode.nearest,
GpuAddressMode addressMode = GpuAddressMode.clampToEdge,
GpuAddressMode? addressModeU,
GpuAddressMode? addressModeV,
GpuAddressMode? addressModeW,
GpuCompareFunction? compare,
double lodMinClamp = 0.0,
double lodMaxClamp = 32.0,
int maxAnisotropy = 1,
String label = '',
}) {
_checkAlive();
final address = NitroWebgpu.instance.deviceCreateSampler(
_address,
GpuSamplerDescriptor(
label: label,
magFilter: magFilter.raw,
minFilter: minFilter.raw,
mipmapFilter: mipmapFilter.raw,
addressModeU: (addressModeU ?? addressMode).raw,
addressModeV: (addressModeV ?? addressMode).raw,
addressModeW: (addressModeW ?? addressMode).raw,
compare: compare?.raw ?? 0,
lodMinClamp: lodMinClamp,
lodMaxClamp: lodMaxClamp,
maxAnisotropy: maxAnisotropy,
),
);
return GpuSampler._(address);
}