mirror of
https://github.com/DramaticShape/DramaticShapeVoxelMod.git
synced 2026-08-12 09:50:50 +02:00
fix(ios): pin voxel render target scale
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
local V = ...
|
||||||
|
|
||||||
|
local PixelCanvas = {}
|
||||||
|
|
||||||
|
function PixelCanvas.new(w, h)
|
||||||
|
return pcall(love.graphics.newCanvas, w, h, { dpiscale = 1 })
|
||||||
|
end
|
||||||
|
|
||||||
|
return PixelCanvas
|
||||||
+1
-1
@@ -186,7 +186,7 @@ end
|
|||||||
local function getCanvas(res)
|
local function getCanvas(res)
|
||||||
if canvas == false then return nil end
|
if canvas == false then return nil end
|
||||||
if canvas and canvasRes == res then return canvas end
|
if canvas and canvasRes == res then return canvas end
|
||||||
local ok, c = pcall(love.graphics.newCanvas, res, res)
|
local ok, c = V.require("PixelCanvas").new(res, res)
|
||||||
if not (ok and c) then
|
if not (ok and c) then
|
||||||
canvas = false
|
canvas = false
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
+4
-2
@@ -25,6 +25,7 @@
|
|||||||
-- failure -- headless, no shader support) apply() hands the canvas back
|
-- failure -- headless, no shader support) apply() hands the canvas back
|
||||||
-- untouched, so every other path is byte-for-byte what it always was.
|
-- untouched, so every other path is byte-for-byte what it always was.
|
||||||
|
|
||||||
|
local V = ...
|
||||||
local TiltShift = {}
|
local TiltShift = {}
|
||||||
|
|
||||||
TiltShift.level = 0
|
TiltShift.level = 0
|
||||||
@@ -85,9 +86,10 @@ end
|
|||||||
|
|
||||||
local function getCanvases(w, h)
|
local function getCanvases(w, h)
|
||||||
if not ping or cw ~= w or ch ~= h then
|
if not ping or cw ~= w or ch ~= h then
|
||||||
local ok, a = pcall(love.graphics.newCanvas, w, h)
|
local PixelCanvas = V.require("PixelCanvas")
|
||||||
|
local ok, a = PixelCanvas.new(w, h)
|
||||||
if not ok then return nil end
|
if not ok then return nil end
|
||||||
local okB, b = pcall(love.graphics.newCanvas, w, h)
|
local okB, b = PixelCanvas.new(w, h)
|
||||||
if not okB then return nil end
|
if not okB then return nil end
|
||||||
-- the gaussian's fractional tap offsets need linear filtering
|
-- the gaussian's fractional tap offsets need linear filtering
|
||||||
a:setFilter("linear", "linear")
|
a:setFilter("linear", "linear")
|
||||||
|
|||||||
+2
-1
@@ -33,6 +33,7 @@ local WorldCurve = V.require("WorldCurve")
|
|||||||
local Sky = V.require("Sky")
|
local Sky = V.require("Sky")
|
||||||
local DayNight = V.require("DayNight")
|
local DayNight = V.require("DayNight")
|
||||||
local GlassMask = V.require("GlassMask")
|
local GlassMask = V.require("GlassMask")
|
||||||
|
local PixelCanvas = V.require("PixelCanvas")
|
||||||
|
|
||||||
local Voxel3D = {}
|
local Voxel3D = {}
|
||||||
|
|
||||||
@@ -640,7 +641,7 @@ function Voxel3D.beginScene(w, h, cx, cy, vw, vh, sky, slot)
|
|||||||
local name = slot or "world"
|
local name = slot or "world"
|
||||||
local slotHeld = slots[name]
|
local slotHeld = slots[name]
|
||||||
if not (slotHeld and slotHeld.w == w and slotHeld.h == h) then
|
if not (slotHeld and slotHeld.w == w and slotHeld.h == h) then
|
||||||
local ok, c = pcall(love.graphics.newCanvas, w, h)
|
local ok, c = PixelCanvas.new(w, h)
|
||||||
if not ok then return false end
|
if not ok then return false end
|
||||||
c:setFilter("nearest", "nearest")
|
c:setFilter("nearest", "nearest")
|
||||||
if slotHeld then releaseSlot(slotHeld) end
|
if slotHeld then releaseSlot(slotHeld) end
|
||||||
|
|||||||
Reference in New Issue
Block a user