Commit before removing geometry shader from ellipses
This commit is contained in:
@@ -21,7 +21,6 @@ data RenderData = RenderData
|
||||
, _windowPullShader :: GLuint
|
||||
, _pullWallShader :: GLuint
|
||||
, _fullscreenShader :: GLuint
|
||||
-- , _transparencyCompShader :: GLuint
|
||||
, _bloomBlurShader :: GLuint
|
||||
, _barrelShader :: (GLuint,VBO)
|
||||
, _shapeShader :: GLuint
|
||||
|
||||
@@ -104,12 +104,10 @@ preloadRender = do
|
||||
ceilingstencilshader <- makeSourcedShader "ceiling/stencil" [vert]
|
||||
|
||||
putStrLn "Setup 2D shaders"
|
||||
bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) pmTriangles
|
||||
aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [3, 4, 3]) pmTriangles
|
||||
eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [3, 4]) pmTriangles
|
||||
cslist <-
|
||||
--makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 4]) pmTriangles
|
||||
makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 3]) pmTriangles
|
||||
bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4])
|
||||
aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [3, 4, 3])
|
||||
eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [3, 4])
|
||||
cslist <- makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 3])
|
||||
shadV <- MV.new 4
|
||||
zipWithM_
|
||||
(MV.write shadV)
|
||||
|
||||
+8
-2
@@ -14,6 +14,12 @@ drawShaderLay l countsVector shadIn fs = do
|
||||
glUseProgram (_shaderUINT $ fst fs)
|
||||
glBindVertexArray $ fs ^. _1 . shaderVAO . unVAO
|
||||
glDrawArrays
|
||||
(_unPrimitiveMode $ _shaderPrimitive $ fst fs)
|
||||
GL_TRIANGLES
|
||||
(fromIntegral $ l * numSubElements)
|
||||
(fromIntegral i)
|
||||
(drawCountMod shadIn i)
|
||||
--(fromIntegral i)
|
||||
|
||||
drawCountMod :: Int -> Int -> GLsizei
|
||||
drawCountMod i n
|
||||
| i == 3 = fromIntegral n -- modifies ellipse draw count
|
||||
| otherwise = fromIntegral n
|
||||
|
||||
@@ -28,16 +28,15 @@ makeShaderVBO ::
|
||||
[GLenum] ->
|
||||
-- | The input vertex sizes
|
||||
[VertexAttribute] ->
|
||||
PrimitiveMode ->
|
||||
IO (Shader, VBO)
|
||||
makeShaderVBO s shaderlist sizes pm = do
|
||||
makeShaderVBO s shaderlist sizes = do
|
||||
prog <- makeSourcedShader s shaderlist
|
||||
(vao, vbo) <- setupVBOVAO sizes
|
||||
return
|
||||
( Shader
|
||||
{ _shaderUINT = prog
|
||||
, _shaderVAO = vao
|
||||
, _shaderPrimitive = pm
|
||||
-- , _shaderPrimitive = pm
|
||||
}
|
||||
, vbo
|
||||
)
|
||||
|
||||
+14
-14
@@ -50,7 +50,7 @@ import Graphics.GL.Core45
|
||||
-- | Datatype containing the necessary information for a single shader.
|
||||
data Shader = Shader
|
||||
{ _shaderUINT :: GLuint -- should be shaderID
|
||||
, _shaderPrimitive :: PrimitiveMode
|
||||
-- , _shaderPrimitive :: PrimitiveMode
|
||||
, _shaderVAO :: VAO
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ newtype ShaderTexture = ShaderTexture
|
||||
-- , _textureTarget :: GLenum
|
||||
}
|
||||
|
||||
newtype PrimitiveMode = PrimitiveMode {_unPrimitiveMode :: GLenum}
|
||||
--newtype PrimitiveMode = PrimitiveMode {_unPrimitiveMode :: GLenum}
|
||||
|
||||
-- | Short synonyms for shader types
|
||||
vert, geom, frag :: GLenum
|
||||
@@ -112,17 +112,17 @@ vert = GL_VERTEX_SHADER
|
||||
geom = GL_GEOMETRY_SHADER
|
||||
frag = GL_FRAGMENT_SHADER
|
||||
|
||||
pmPoints, pmLines, pmLinesAdjacency, pmLineLoop, pmLineStrip, pmTriangles, pmTriangleStrip, pmTriangleFan, pmQuads, pmPatches :: PrimitiveMode
|
||||
pmPoints = PrimitiveMode GL_POINTS
|
||||
pmLines = PrimitiveMode GL_LINES
|
||||
pmLinesAdjacency = PrimitiveMode GL_LINES_ADJACENCY
|
||||
pmLineLoop = PrimitiveMode GL_LINE_LOOP
|
||||
pmLineStrip = PrimitiveMode GL_LINE_STRIP
|
||||
pmTriangles = PrimitiveMode GL_TRIANGLES
|
||||
pmTriangleStrip = PrimitiveMode GL_TRIANGLE_STRIP
|
||||
pmTriangleFan = PrimitiveMode GL_TRIANGLE_FAN
|
||||
pmQuads = PrimitiveMode GL_QUADS
|
||||
pmPatches = PrimitiveMode GL_PATCHES
|
||||
--pmPoints, pmLines, pmLinesAdjacency, pmLineLoop, pmLineStrip, pmTriangles, pmTriangleStrip, pmTriangleFan, pmQuads, pmPatches :: PrimitiveMode
|
||||
--pmPoints = PrimitiveMode GL_POINTS
|
||||
--pmLines = PrimitiveMode GL_LINES
|
||||
--pmLinesAdjacency = PrimitiveMode GL_LINES_ADJACENCY
|
||||
--pmLineLoop = PrimitiveMode GL_LINE_LOOP
|
||||
--pmLineStrip = PrimitiveMode GL_LINE_STRIP
|
||||
--pmTriangles = PrimitiveMode GL_TRIANGLES
|
||||
--pmTriangleStrip = PrimitiveMode GL_TRIANGLE_STRIP
|
||||
--pmTriangleFan = PrimitiveMode GL_TRIANGLE_FAN
|
||||
--pmQuads = PrimitiveMode GL_QUADS
|
||||
--pmPatches = PrimitiveMode GL_PATCHES
|
||||
|
||||
makeLenses ''VAO
|
||||
makeLenses ''VBO
|
||||
@@ -132,5 +132,5 @@ makeLenses ''ShaderTexture
|
||||
makeLenses ''Shader
|
||||
makeLenses ''FBO
|
||||
makeLenses ''TO
|
||||
makeLenses ''PrimitiveMode
|
||||
--makeLenses ''PrimitiveMode
|
||||
makeLenses ''VertexAttribute
|
||||
|
||||
Reference in New Issue
Block a user