mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Use glDrawRangeElements
This commit is contained in:
parent
958758b37a
commit
2fc1b5f462
|
@ -177,7 +177,7 @@ PFNGLCREATETEXTURESPROC g_glCreateTextures;
|
|||
PFNGLCREATEBUFFERSPROC g_glCreateBuffers;
|
||||
PFNGLCREATEFRAMEBUFFERSPROC g_glCreateFramebuffers;
|
||||
PFNGLNAMEDFRAMEBUFFERTEXTUREPROC g_glNamedFramebufferTexture;
|
||||
PFNGLDRAWELEMENTSBASEVERTEXPROC g_glDrawElementsBaseVertex;
|
||||
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC g_glDrawRangeElementsBaseVertex;
|
||||
PFNGLFLUSHMAPPEDBUFFERRANGEPROC g_glFlushMappedBufferRange;
|
||||
|
||||
void initGLFunctions()
|
||||
|
@ -315,6 +315,6 @@ void initGLFunctions()
|
|||
GL_GET_PROC_ADR(PFNGLCREATEBUFFERSPROC, glCreateBuffers);
|
||||
GL_GET_PROC_ADR(PFNGLCREATEFRAMEBUFFERSPROC, glCreateFramebuffers);
|
||||
GL_GET_PROC_ADR(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTexture);
|
||||
GL_GET_PROC_ADR(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex);
|
||||
GL_GET_PROC_ADR(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex);
|
||||
GL_GET_PROC_ADR(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange);
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ extern PFNGLBLENDCOLORPROC g_glBlendColor;
|
|||
#define glCreateBuffers(...) CHECKED_GL_FUNCTION(g_glCreateBuffers, __VA_ARGS__)
|
||||
#define glCreateFramebuffers(...) CHECKED_GL_FUNCTION(g_glCreateFramebuffers, __VA_ARGS__)
|
||||
#define glNamedFramebufferTexture(...) CHECKED_GL_FUNCTION(g_glNamedFramebufferTexture, __VA_ARGS__)
|
||||
#define glDrawElementsBaseVertex(...) CHECKED_GL_FUNCTION(g_glDrawElementsBaseVertex, __VA_ARGS__)
|
||||
#define glDrawRangeElementsBaseVertex(...) CHECKED_GL_FUNCTION(g_glDrawRangeElementsBaseVertex, __VA_ARGS__)
|
||||
#define glFlushMappedBufferRange(...) CHECKED_GL_FUNCTION(g_glFlushMappedBufferRange, __VA_ARGS__)
|
||||
|
||||
extern PFNGLCREATESHADERPROC g_glCreateShader;
|
||||
|
@ -295,7 +295,7 @@ extern PFNGLCREATETEXTURESPROC g_glCreateTextures;
|
|||
extern PFNGLCREATEBUFFERSPROC g_glCreateBuffers;
|
||||
extern PFNGLCREATEFRAMEBUFFERSPROC g_glCreateFramebuffers;
|
||||
extern PFNGLNAMEDFRAMEBUFFERTEXTUREPROC g_glNamedFramebufferTexture;
|
||||
extern PFNGLDRAWELEMENTSBASEVERTEXPROC g_glDrawElementsBaseVertex;
|
||||
extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC g_glDrawRangeElementsBaseVertex;
|
||||
extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC g_glFlushMappedBufferRange;
|
||||
|
||||
void initGLFunctions();
|
||||
|
|
|
@ -204,7 +204,7 @@ void BufferedDrawer::drawTriangles(const graphics::Context::DrawTriangleParamete
|
|||
}
|
||||
|
||||
if (config.frameBufferEmulation.N64DepthCompare == 0) {
|
||||
glDrawElementsBaseVertex(GLenum(_params.mode), _params.elementsCount, GL_UNSIGNED_SHORT,
|
||||
glDrawRangeElementsBaseVertex(GLenum(_params.mode), 0, _params.verticesCount - 1, _params.elementsCount, GL_UNSIGNED_SHORT,
|
||||
(u16*)nullptr + m_trisBuffers.ebo.pos - _params.elementsCount, m_trisBuffers.vbo.pos - _params.verticesCount);
|
||||
return;
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ void BufferedDrawer::drawTriangles(const graphics::Context::DrawTriangleParamete
|
|||
const GLint vboStartPos = m_trisBuffers.vbo.pos - _params.verticesCount;
|
||||
for (GLuint i = 0; i < _params.elementsCount; i += 3) {
|
||||
glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
|
||||
glDrawElementsBaseVertex(GLenum(_params.mode), 3, GL_UNSIGNED_SHORT,
|
||||
glDrawRangeElementsBaseVertex(GLenum(_params.mode), 0, _params.verticesCount - 1, 3, GL_UNSIGNED_SHORT,
|
||||
(u16*)nullptr + eboStartPos + i, vboStartPos);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user