diff --git a/res/shaders/vert.shader b/res/shaders/vert.shader index e045d19..ce230db 100644 --- a/res/shaders/vert.shader +++ b/res/shaders/vert.shader @@ -7,6 +7,6 @@ out vec2 v_texCoord; void main() { - gl_Position = position; - v_texCoord = texCoord; + gl_Position = vec4(position, 1); + v_texCoord = vec2(texCoord.x, 1.0 - texCoord.y); } diff --git a/src/Main.hs b/src/Main.hs index 87ff210..21ce711 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -170,16 +170,28 @@ main = do -- <*> pure 1 -- GL.clearColor $= clearcol + -- clear buffers before drawing + -- GL.clear [GL.ColorBuffer] + + -- -- rebind everything neccessary for draw call + -- bind vao + -- -- (note the missing bindings to the vertex buffer and the attrib pointer) + -- bind ibo + -- bind sp + + -- throw away previous errors + -- void $ get GL.errors + incrementValue <- takeMVar increment redValue <- takeMVar red let newRed = redValue + incrementValue -- write data to the uniform - bind sp setUniform sp "u_color" (GL.Color4 newRed 0.5 0 1 :: GL.Color4 GL.GLfloat) -- the actual drawing happens here draw vao ibo sp + -- GL.drawElements GL.Triangles 6 GL.UnsignedInt nullPtr err <- get GL.errors when (not $ null err) (print $ "loop errors: " <> show err) @@ -192,6 +204,8 @@ main = do else putMVar increment incrementValue + -- make GL finish things up + -- GL.flush -- draw context on screen SDL.glSwapWindow window