This commit is contained in:
ManDude 2021-08-11 04:48:56 +01:00
parent b85ee3a3a5
commit c87b818d82
7 changed files with 23 additions and 6 deletions

View file

@ -83,6 +83,10 @@ void DirectRenderer::flush_pending(SharedRenderState* render_state) {
// glEnable(GL_DEPTH_TEST);
// glDepthFunc(GL_ALWAYS);
GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
// render!
// update buffers:
glBindBuffer(GL_ARRAY_BUFFER, m_ogl.vertex_buffer);
@ -130,8 +134,11 @@ void DirectRenderer::flush_pending(SharedRenderState* render_state) {
}
// assert(false);
glDrawArrays(GL_TRIANGLES, 0, m_prim_buffer.vert_count);
glBindVertexArray(0);
m_triangles += m_prim_buffer.vert_count / 3;
m_prim_buffer.vert_count = 0;
glDeleteVertexArrays(1, &vao);
}
void DirectRenderer::update_gl_prim(SharedRenderState* render_state) {
@ -775,4 +782,4 @@ void DirectRenderer::PrimitiveBuffer::push(const math::Vector<u8, 4>& rgba,
verts[vert_count] = vert;
sts[vert_count] = st;
vert_count++;
}
}

View file

@ -125,10 +125,13 @@ void OpenGLRenderer::draw_test_triangle() {
//////////
// create "buffer object names"
GLuint vertex_buffer, color_buffer;
GLuint vertex_buffer, color_buffer, vao;
glGenBuffers(1, &vertex_buffer);
glGenBuffers(1, &color_buffer);
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
// set vertex data
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
const float verts[9] = {0.0, 0.8, 0, -0.5, -0.5 * .866, 0, 0.5, -0.5 * .866, 0};
@ -161,6 +164,7 @@ void OpenGLRenderer::draw_test_triangle() {
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 0, (void*)0);
glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0);
////////////
// Clean Up
@ -168,4 +172,5 @@ void OpenGLRenderer::draw_test_triangle() {
// delete buffer
glDeleteBuffers(1, &color_buffer);
glDeleteBuffers(1, &vertex_buffer);
glDeleteVertexArrays(1, &vao);
}

View file

@ -77,9 +77,11 @@ static int gl_init() {
return 1;
}
// request OpenGL 3.0 (placeholder)
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
// request Debug OpenGL 3.3 Core
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // debug
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // core profile, not compat
return 0;
}

View file

@ -255,7 +255,7 @@ void dmac_runner(SystemThreadInterface& iface) {
while (!iface.get_want_exit() && !VM::vm_want_exit()) {
for (int i = 0; i < 10; ++i) {
if (VM::dmac_ch[i]->chcr.str) {
lg::info("DMA detected on channel {}, clearing", i);
// lg::info("DMA detected on channel {}, clearing", i);
VM::dmac_ch[i]->chcr.str = 0;
}
}

View file

@ -1,3 +1,4 @@
@echo off
cd ..\..
out\build\Release\bin\goalc -v -auto-lt
pause

View file

@ -1,3 +1,4 @@
@echo off
cd ..\..
out\build\Release\bin\gk -fakeiso -debug -v
pause

View file

@ -1,3 +1,4 @@
@echo off
cd ..\..
out\build\Release\bin\gk -fakeiso -debug -v -nodisplay
pause