Implement texture atlas, details on why it works unclear
This commit is contained in:
@@ -25,6 +25,7 @@ data RenderType
|
||||
| Render22 {_unRender22 :: (Point2,Point2)}
|
||||
| Render22x4 {_unRender22x4 :: ((Point2,Point2),Point4)}
|
||||
| Render3x2 {_unRender3x2 :: (Point3,Point2)}
|
||||
| Render3x3 {_unRender3x3 :: (Point3,Point3)}
|
||||
|
||||
type RGBA = (Float,Float,Float,Float)
|
||||
type Color = (Float,Float,Float,Float)
|
||||
|
||||
+10
-2
@@ -198,7 +198,7 @@ renderBackground pdata rot camZoom (tranx,trany) (winx,winy) = do
|
||||
--blendFuncSeparate $= ((SrcAlphaSaturate, OneMinusSrcAlpha), (Zero,One))
|
||||
-- draw background
|
||||
--bindArrayBuffers 1 $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata
|
||||
bindArrayBuffers' 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
|
||||
bindArrayBuffers 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
|
||||
currentProgram $= Just (_shaderProgram $ _backgroundShader pdata)
|
||||
bindVertexArrayObject $= Just (_vao $ _shaderVAO $ _backgroundShader pdata)
|
||||
let backPtr = _vboPointer $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
|
||||
@@ -219,6 +219,7 @@ setCommonUniforms pdata rot camZoom (tranx,trany) (winx,winy) = do
|
||||
: extractProgAndUnis (_lightingOccludeShader pdata)
|
||||
: extractProgAndUnis (_lightingWallShader pdata)
|
||||
: extractProgAndUnis (_backgroundShader pdata)
|
||||
: extractProgAndUnis (_textureShader pdata)
|
||||
: map extractProgAndUnis (_pictureShaders pdata)
|
||||
)
|
||||
|
||||
@@ -233,7 +234,8 @@ setIsoMatrixUniforms pdata rot camZoom (tranx,trany) (winx,winy) = do
|
||||
setShaderUniforms rot camZoom (tranx,trany) (winx,winy)
|
||||
( extractProgAndUnis (_lightingFloorShader pdata)
|
||||
: extractProgAndUnis (_backgroundShader pdata)
|
||||
-- : extractProgAndUnis (_textureShader pdata)
|
||||
: extractProgAndUnis (_textureShader pdata)
|
||||
: extractProgAndUnis (_textureArrayShader pdata)
|
||||
: map extractProgAndUnis (_pictureShaders pdata)
|
||||
)
|
||||
|
||||
@@ -250,6 +252,12 @@ renderShader shad dat = do
|
||||
eticks <- SDL.ticks
|
||||
return $ eticks - sticks
|
||||
|
||||
--renderPictureLayer
|
||||
-- :: PictureShaderData
|
||||
-- -> Picture
|
||||
-- -> IO Word32
|
||||
--renderPictureLayer
|
||||
|
||||
renderFoldable
|
||||
:: Foldable f
|
||||
=> RenderData
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
module Picture.Texture
|
||||
where
|
||||
import Geometry.Data
|
||||
import Picture.Data
|
||||
|
||||
tileToRender :: [Point3] -> [Point3] -> [RenderType]
|
||||
tileToRender [a,b,c,d] [x,y,z,w] =
|
||||
[ Render3x3 (x,a)
|
||||
, Render3x3 (y,b)
|
||||
, Render3x3 (z,c)
|
||||
, Render3x3 (x,a)
|
||||
, Render3x3 (z,c)
|
||||
, Render3x3 (w,d)
|
||||
]
|
||||
tileToRender _ _ = undefined
|
||||
+1
-1
@@ -14,7 +14,7 @@ import Data.Maybe (isNothing)
|
||||
-- consider generalising to alternative rather than using LTree
|
||||
-- | Transform a picture into a tree of renderable objects
|
||||
picToLTree
|
||||
:: Maybe Int -- ^ Layer filter. Draw if 'Nothing' or when value is the same as at the leaf.
|
||||
:: Maybe Int -- ^ Layer filter. Draw 'Nothing' when value is the same as at the leaf.
|
||||
-> Picture
|
||||
-> LTree RenderType
|
||||
{-# INLINE picToLTree #-}
|
||||
|
||||
Reference in New Issue
Block a user