From 239e1782260a4fd725d2bdd4ec081447b2a08e99 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Mon, 3 Sep 2018 15:05:37 +0200 Subject: [PATCH] Simplify framebuffer drawing and fix OSD --- core/rend/gles/gldraw.cpp | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/core/rend/gles/gldraw.cpp b/core/rend/gles/gldraw.cpp index 2c879b3ff..fe085b6b2 100644 --- a/core/rend/gles/gldraw.cpp +++ b/core/rend/gles/gldraw.cpp @@ -1110,35 +1110,15 @@ void DrawFramebuffer(float w, float h) glActiveTexture(GL_TEXTURE0); glcache.BindTexture(GL_TEXTURE_2D, fbTextureId); -#ifndef GLES - glBindVertexArray(gl.vbo.vao); -#endif - - // FIXME This make glDrawElements fails on OSX - //glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gl.vbo.idxs); + SetupMainVBO(); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STREAM_DRAW); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STREAM_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, gl.vbo.geometry); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STREAM_DRAW); - - //setup vertex buffers attrib pointers - glEnableVertexAttribArray(VERTEX_POS_ARRAY); - glVertexAttribPointer(VERTEX_POS_ARRAY, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offsetof(Vertex, x)); - - glEnableVertexAttribArray(VERTEX_COL_BASE_ARRAY); - glVertexAttribPointer(VERTEX_COL_BASE_ARRAY, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), (void*)offsetof(Vertex, col)); - - glEnableVertexAttribArray(VERTEX_COL_OFFS_ARRAY); - glVertexAttribPointer(VERTEX_COL_OFFS_ARRAY, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), (void*)offsetof(Vertex, spc)); - - glEnableVertexAttribArray(VERTEX_UV_ARRAY); - glVertexAttribPointer(VERTEX_UV_ARRAY, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offsetof(Vertex, u)); - - // FIXME This fails on OSX -// glDrawElements(GL_TRIANGLE_STRIP, 5, GL_UNSIGNED_SHORT, indices); glDrawElements(GL_TRIANGLE_STRIP, 5, GL_UNSIGNED_SHORT, (void *)0); glcache.DeleteTextures(1, &fbTextureId); fbTextureId = 0; + + glBufferData(GL_ARRAY_BUFFER, pvrrc.verts.bytes(), pvrrc.verts.head(), GL_STREAM_DRAW); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, pvrrc.idx.bytes(), pvrrc.idx.head(), GL_STREAM_DRAW); }