Play with upscaling filters

This commit is contained in:
2025-11-29 09:44:12 +00:00
parent c5c494522c
commit 974f3e96c9
10 changed files with 456 additions and 115 deletions
+1
View File
@@ -28,6 +28,7 @@ data RenderData = RenderData
, _shapeEBO :: UintBO
, _silhouetteEBO :: UintBO
, _pictureShaders :: MV.MVector (PrimState IO) (GLuint,VBO)
, _fboFullscreen :: (FBO,TO)
, _fboHalf1 :: (FBO, TO)
, _fboHalf2 :: (FBO, TO)
, _fboBase :: (FBO, (TO, TO, TO))
+2
View File
@@ -44,6 +44,7 @@ doTestDrawing _ _ = do
doDrawing' :: SDL.Window -> RenderData -> Universe -> IO ()
doDrawing' win pdata u = do
--sTicks <- SDL.ticks
-- SDL.glSwapWindow win
let w = _uvWorld u
cfig = _uvConfig u
(windowPoints, wallSPics, wallsToPoke) = wallsToDraw w
@@ -370,6 +371,7 @@ doDrawing' win pdata u = do
glBindFramebuffer GL_FRAMEBUFFER 0
if (cfig ^. gr_upscale_filter) then do
glUseProgram (pdata ^. textureAntiaShader)
glGenerateTextureMipmap (pdata ^. fboBase . _2 . _1 . unTO)
glUniform2f 0 (windowXFloat cfig) (windowYFloat cfig)
else glUseProgram (pdata ^. fullscreenShader)
--glDrawArrays GL_TRIANGLES 0 6
+6
View File
@@ -48,6 +48,12 @@ tutAnoTree = do
foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, tutHub
, tutLight
, tutDrop
+9
View File
@@ -44,6 +44,15 @@ sizeFBOs cfig rdata =
GL_RGBA16F
GL_RGBA16F
)
>>= fboFullscreen
( resizeFBOTO'
(getWindowSize (const FullRes) cfig)
1
GL_NEAREST
GL_NEAREST
GL_RGBA16F
-- [fboBloom] -- fboPos probably doesn't need the alpha channel
)
>>= foldUpdateFBOTO
_gr_world_res
GL_NEAREST
+2
View File
@@ -178,6 +178,7 @@ preloadRender = do
fboPosName <- setupFramebufferGivenStencil rboBaseBloomName
fboLightingName <- setupFramebufferGivenStencil rboBaseBloomName
fbofullscreen <- newTextureFramebuffer
fboHalf1Name <- newTextureFramebuffer
fboHalf2Name <- newTextureFramebuffer
@@ -206,6 +207,7 @@ preloadRender = do
, _bloomBlurShader = bloomBlurShad
, _barrelShader = (barrelShad,distvbo)
-- , _fbo2 = framebuf2
, _fboFullscreen = fbofullscreen
, _fboHalf1 = fboHalf1Name
, _fboHalf2 = fboHalf2Name
, _fboLighting = fboLightingName