Browse Source

implement sampler

Nicolas Cannasse 11 months ago
parent
commit
a5c73dd864
1 changed files with 18 additions and 1 deletions
  1. 18 1
      h3d/impl/WebGpuDriver.hx

+ 18 - 1
h3d/impl/WebGpuDriver.hx

@@ -471,7 +471,24 @@ class WebGpuDriver extends h3d.impl.Driver {
 	}
 	}
 
 
 	function createSampler( t : h3d.mat.Texture ) {
 	function createSampler( t : h3d.mat.Texture ) {
-		return device.createSampler();
+		var mode : GPUAddressMode = switch( t.wrap ) {
+		case Clamp: Clamp_to_edge;
+		case Repeat: Repeat;
+		}
+		var filter : GPUFilterMode = switch( t.filter ) {
+		case Nearest: Nearest;
+		case Linear: Linear;
+		};
+		// no lod bias support !
+		return device.createSampler({
+			addressModeU : mode,
+			addressModeV : mode,
+			addressModeW : mode,
+			magFilter : filter,
+			minFilter : filter,
+			mipmapFilter: t.mipLevels > 1 && t.mipMap == Linear ? Linear : Nearest,
+			lodMinClamp: t.startingMip,
+		});
 	}
 	}
 
 
 	function _uploadShaderBuffers(buffers:h3d.shader.Buffers.ShaderBuffers, which:h3d.shader.Buffers.BufferKind, sh:WebGpuSubShader) {
 	function _uploadShaderBuffers(buffers:h3d.shader.Buffers.ShaderBuffers, which:h3d.shader.Buffers.BufferKind, sh:WebGpuSubShader) {