Fix draw correct.

This commit is contained in:
treeform 2021-10-04 12:16:10 -07:00
parent e486c25d7d
commit af77530a17

View file

@ -588,21 +588,28 @@ proc drawCorrect(
var var
matInv = mat.inverse() matInv = mat.inverse()
# Compute movement vectors
p = matInv * vec2(0 + h, 0 + h)
dx = matInv * vec2(1 + h, 0 + h) - p
dy = matInv * vec2(0 + h, 1 + h) - p
filterBy2 = max(dx.length, dy.length)
b = b b = b
block: # Shrink by 2 as needed while filterBy2 >= 2.0:
var b = b.minifyBy2()
p = matInv * vec2(0 + h, 0 + h) p /= 2
dx = matInv * vec2(1 + h, 0 + h) - p dx /= 2
dy = matInv * vec2(0 + h, 1 + h) - p dy /= 2
minFilterBy2 = max(dx.length, dy.length) filterBy2 /= 2
matInv = scale(vec2(1/2, 1/2)) * matInv
while minFilterBy2 >= 2: while filterBy2 <= 0.5:
b = b.minifyBy2() b = b.magnifyBy2()
dx /= 2 p *= 2
dy /= 2 dx *= 2
minFilterBy2 /= 2 dy *= 2
matInv = matInv * scale(vec2(0.5, 0.5)) filterBy2 *= 2
matInv = scale(vec2(2, 2)) * matInv
for y in 0 ..< a.height: for y in 0 ..< a.height:
for x in 0 ..< a.width: for x in 0 ..< a.width: