diff --git a/data/texture/charMapVertBig.png b/data/texture/charMapVertBig.png index 4fb820394..948001ed1 100644 Binary files a/data/texture/charMapVertBig.png and b/data/texture/charMapVertBig.png differ diff --git a/src/Data/Preload.hs b/src/Data/Preload.hs index 1847ffe84..35433a5c0 100644 --- a/src/Data/Preload.hs +++ b/src/Data/Preload.hs @@ -1,17 +1,16 @@ {-# LANGUAGE TemplateHaskell #-} -module Data.Preload - where -import Data.Preload.Render -import Sound.Data -import Music + +module Data.Preload where import Control.Lens +import Data.Preload.Render +import Music +import Sound.Data data PreloadData = PreloadData - { _renderData :: RenderData - , _soundData :: SoundData - , _musicData :: MusicData + { _renderData :: RenderData + , _soundData :: SoundData + , _musicData :: MusicData } - | DummyPdata makeLenses ''PreloadData diff --git a/src/Dodge/Config/Update.hs b/src/Dodge/Config/Update.hs index e322660eb..ba6a46732 100644 --- a/src/Dodge/Config/Update.hs +++ b/src/Dodge/Config/Update.hs @@ -48,4 +48,4 @@ applyWorldConfig :: IO PreloadData applyWorldConfig cfig pdata = do setVol cfig - renderData (pdataResizeUpdate cfig) pdata + renderData (renderDataResizeUpdate cfig) pdata diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 69a369431..4141f1fef 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -6,6 +6,7 @@ module Dodge.Render ( --import qualified Data.Vector as V +import Dodge.WindowSize import Control.Lens import Control.Monad import qualified Control.Monad.Parallel as MP @@ -374,10 +375,5 @@ getDistortions cfig w setViewportSize :: Int -> Int -> IO () setViewportSize x y = glViewport 0 0 (fromIntegral x) (fromIntegral y) -getWindowSize :: Integral a => (Configuration -> ResFactor) -> Configuration -> (a,a) -getWindowSize f cfig = (g _windowX,g _windowY) - where - g h = fromIntegral $ round (h cfig) `div` resFactorNum (f cfig) - setViewportType :: (Configuration -> ResFactor) -> Configuration -> IO () setViewportType f = uncurry (glViewport 0 0) . getWindowSize f diff --git a/src/Dodge/WindowSize.hs b/src/Dodge/WindowSize.hs index b0584a7a9..643a4b6fa 100644 --- a/src/Dodge/WindowSize.hs +++ b/src/Dodge/WindowSize.hs @@ -2,9 +2,7 @@ module Dodge.WindowSize where import Dodge.Data.Config -getWindowSize :: Configuration -> (Int, Int) -getWindowSize cfig = (x `div` divRes,y `div` divRes) +getWindowSize :: Integral a => (Configuration -> ResFactor) -> Configuration -> (a,a) +getWindowSize f cfig = (g _windowX,g _windowY) where - x = round $ _windowX cfig - y = round $ _windowY cfig - divRes = resFactorNum $ _graphics_world_resolution cfig + g h = fromIntegral $ round (h cfig) `div` resFactorNum (f cfig) diff --git a/src/Preload/Update.hs b/src/Preload/Update.hs index b253e0f1a..3c43709f1 100644 --- a/src/Preload/Update.hs +++ b/src/Preload/Update.hs @@ -2,9 +2,10 @@ module Preload.Update ( updatePreload, - pdataResizeUpdate, + renderDataResizeUpdate, ) where +import Dodge.WindowSize import Dodge.Data.Universe import Control.Lens import qualified Data.ByteString as BS @@ -14,16 +15,13 @@ import Framebuffer.Update import Shader.Compile import Shader.Data +-- i don't like this being here pulling in the dodge universe dependency, but +-- splitting it out would be overkill updatePreload :: Universe -> IO Universe updatePreload u = do - pdata <- pdataResizeUpdate (u ^. uvConfig) (u ^?! preloadData . renderData) + pdata <- renderDataResizeUpdate (u ^. uvConfig) (u ^. preloadData . renderData) return $ u & preloadData . renderData .~ pdata -pdataResizeUpdate :: Configuration -> RenderData -> IO RenderData -pdataResizeUpdate cfig pdata = do - rd <- renderDataResizeUpdate cfig pdata - return rd - renderDataResizeUpdate :: Configuration -> RenderData -> @@ -36,7 +34,6 @@ renderDataResizeUpdate cfig rdata = do (bh, bmid) = BS.breakSubstring "(" bbFrag (_, btt) = BS.breakSubstring ")" bmid bbFrag' = BS.append bh $ BS.append (BSC.pack $ '(' : show xsize ++ "," ++ show ysize) btt - --BSC.putStrLn bbFrag' bbShad <- makeByteStringShaderUsingVAO "bloomBlur" @@ -44,8 +41,3 @@ renderDataResizeUpdate cfig rdata = do pmTriangleStrip (rdata ^. screenTextureVAO) return (rdata'{_bloomBlurShader = bbShad}) - -getWindowSize :: Integral a => (Configuration -> ResFactor) -> Configuration -> (a,a) -getWindowSize f cfig = (g _windowX,g _windowY) - where - g h = fromIntegral $ round (h cfig) `div` resFactorNum (f cfig) diff --git a/src/Render.hs b/src/Render.hs index 9779054c2..e4d6bbda6 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -240,7 +240,7 @@ instanceLightMap :: IO () instanceLightMap cfig nWalls nSils nCaps toPos tanormals lightPoints pdata = do let lcapShad = _shadowCapShader pdata - (xsize, ysize) = getWindowSize cfig + (xsize, ysize) = getWindowSize _graphics_world_resolution cfig withArray (lightsToArray lightPoints) $ \ptr -> glNamedBufferSubData (pdata ^. lightsUBO) 0 620 ptr forM_ [0 .. 19] $ \i -> @@ -257,8 +257,8 @@ instanceLightMap cfig nWalls nSils nCaps toPos tanormals lightPoints pdata = do 0 0 i - (fromIntegral xsize) - (fromIntegral ysize) + xsize + ysize 1 glBindFramebuffer GL_FRAMEBUFFER $ pdata ^. fboShadow . _1 . unFBO glDepthMask GL_FALSE