Draw circles without using a geometry shader, layer offset broken
This commit is contained in:
+11
-3
@@ -3,7 +3,7 @@
|
||||
module Preload.Render (preloadRender) where
|
||||
|
||||
import Control.Concurrent
|
||||
--import Control.Lens
|
||||
import Control.Lens
|
||||
import Control.Monad
|
||||
import Data.Preload.Render
|
||||
import qualified Data.Vector.Mutable as MV
|
||||
@@ -105,9 +105,9 @@ preloadRender = do
|
||||
|
||||
putStrLn "Setup 2D shaders"
|
||||
bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [4, 4])
|
||||
aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [4, 4, 4])
|
||||
eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [4, 4])
|
||||
cslist <- makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [4, 4, 4])
|
||||
aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [4, 4, 4])
|
||||
eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, frag] (toFloatVAs [4, 4])
|
||||
shadV <- MV.new 4
|
||||
zipWithM_
|
||||
(MV.write shadV)
|
||||
@@ -117,6 +117,14 @@ preloadRender = do
|
||||
, aslist
|
||||
, eslist
|
||||
]
|
||||
zipWithM_
|
||||
(\i vbo -> glBindBufferBase GL_SHADER_STORAGE_BUFFER i (vbo ^. _2 . vboName))
|
||||
[10 .. 13]
|
||||
[ bslist -- note the ordering is very important
|
||||
, cslist
|
||||
, aslist
|
||||
, eslist
|
||||
]
|
||||
-- GL_NEAREST_MIPMAP_LINEAR GL_LINEAR ?
|
||||
initTexture2DArray 50 "data/charMaps/cMap16x32.Custom.png" 2 16 32 256 GL_NEAREST GL_NEAREST
|
||||
putStrLn "Setup full screen shaders"
|
||||
|
||||
+4
-1
@@ -13,13 +13,16 @@ drawShaderLay l countsVector shadIn fs = do
|
||||
i <- UMV.read countsVector shadIn
|
||||
glUseProgram (_shaderUINT $ fst fs)
|
||||
glBindVertexArray $ fs ^. _1 . shaderVAO . unVAO
|
||||
glUniform1i 0 . fromIntegral $ (l * numSubElements)
|
||||
glDrawArrays
|
||||
GL_TRIANGLES
|
||||
(fromIntegral $ l * numSubElements)
|
||||
--(drawCountMod shadIn i)
|
||||
(drawCountMod shadIn i)
|
||||
--(fromIntegral i)
|
||||
|
||||
drawCountMod :: Int -> Int -> GLsizei
|
||||
drawCountMod i n
|
||||
| i == 3 = fromIntegral n -- modifies ellipse draw count
|
||||
-- | i == 3 = fromIntegral $ 2 * n -- modifies ellipse draw count
|
||||
| i == 3 = fromIntegral $ 2 * n -- modifies ellipse draw count
|
||||
| otherwise = fromIntegral n
|
||||
|
||||
Reference in New Issue
Block a user