Commit before removing geometry shader from ellipses

This commit is contained in:
2025-11-20 16:30:41 +00:00
parent bbb682242d
commit cb64be4eeb
7 changed files with 117 additions and 101 deletions
-1
View File
@@ -21,7 +21,6 @@ data RenderData = RenderData
, _windowPullShader :: GLuint
, _pullWallShader :: GLuint
, _fullscreenShader :: GLuint
-- , _transparencyCompShader :: GLuint
, _bloomBlurShader :: GLuint
, _barrelShader :: (GLuint,VBO)
, _shapeShader :: GLuint
+4 -6
View File
@@ -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
View File
@@ -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
+2 -3
View File
@@ -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
View File
@@ -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