瀏覽代碼

implement sampler

Nicolas Cannasse 11 月之前
父節點
當前提交
a5c73dd864
共有 1 個文件被更改,包括 18 次插入1 次删除
  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 ) {
-		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) {