diff --git a/src/graphics.ts b/src/graphics.ts index 9758d38a..521357e5 100644 --- a/src/graphics.ts +++ b/src/graphics.ts @@ -19,10 +19,8 @@ export function spr( h: number, sx: number, sy: number, - sw: number | undefined = undefined, - sh: number | undefined = undefined + sw: number, + sh: number ) { - sw = sw || 1.0; - sh = sh || 1.0; core.spr(x, y, w, h, sx, sy, sw, sh); } diff --git a/src/main.ts b/src/main.ts index 0a372f56..22331375 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,5 +8,5 @@ export function update() {} export function draw() { cls(0.1, 0.2, 0.3); - spr(0, 0, 320, 240, 0, 0); + spr(0, 0, 320, 240, 0, 0, 256, 256); } diff --git a/src/shader.wgsl b/src/shader.wgsl index 331b4543..06cfa782 100644 --- a/src/shader.wgsl +++ b/src/shader.wgsl @@ -54,5 +54,7 @@ const RES = vec2f(320.0, 240.0); // The logical resolution of the screen. @group(0) @binding(1) var s_diffuse : sampler; @fragment fn fs_main(in : VertexOutput)->@location(0) vec4 { - return textureSample(t_diffuse, s_diffuse, in.tex_coords); + let dims = vec2f(textureDimensions(t_diffuse)); + + return textureSample(t_diffuse, s_diffuse, in.tex_coords / dims); }