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); // glEnable(GL_DEPTH_TEST);
// glDepthFunc(GL_ALWAYS); // glDepthFunc(GL_ALWAYS);
GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
// render! // render!
// update buffers: // update buffers:
glBindBuffer(GL_ARRAY_BUFFER, m_ogl.vertex_buffer); glBindBuffer(GL_ARRAY_BUFFER, m_ogl.vertex_buffer);
@ -130,8 +134,11 @@ void DirectRenderer::flush_pending(SharedRenderState* render_state) {
} }
// assert(false); // assert(false);
glDrawArrays(GL_TRIANGLES, 0, m_prim_buffer.vert_count); glDrawArrays(GL_TRIANGLES, 0, m_prim_buffer.vert_count);
glBindVertexArray(0);
m_triangles += m_prim_buffer.vert_count / 3; m_triangles += m_prim_buffer.vert_count / 3;
m_prim_buffer.vert_count = 0; m_prim_buffer.vert_count = 0;
glDeleteVertexArrays(1, &vao);
} }
void DirectRenderer::update_gl_prim(SharedRenderState* render_state) { 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; verts[vert_count] = vert;
sts[vert_count] = st; sts[vert_count] = st;
vert_count++; vert_count++;
} }

View file

@ -125,10 +125,13 @@ void OpenGLRenderer::draw_test_triangle() {
////////// //////////
// create "buffer object names" // create "buffer object names"
GLuint vertex_buffer, color_buffer; GLuint vertex_buffer, color_buffer, vao;
glGenBuffers(1, &vertex_buffer); glGenBuffers(1, &vertex_buffer);
glGenBuffers(1, &color_buffer); glGenBuffers(1, &color_buffer);
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
// set vertex data // set vertex data
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); 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}; 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); glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 0, (void*)0);
glDrawArrays(GL_TRIANGLES, 0, 3); glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0);
//////////// ////////////
// Clean Up // Clean Up
@ -168,4 +172,5 @@ void OpenGLRenderer::draw_test_triangle() {
// delete buffer // delete buffer
glDeleteBuffers(1, &color_buffer); glDeleteBuffers(1, &color_buffer);
glDeleteBuffers(1, &vertex_buffer); glDeleteBuffers(1, &vertex_buffer);
glDeleteVertexArrays(1, &vao);
} }

View file

@ -77,9 +77,11 @@ static int gl_init() {
return 1; return 1;
} }
// request OpenGL 3.0 (placeholder) // request Debug OpenGL 3.3 Core
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); 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; return 0;
} }

View file

@ -255,7 +255,7 @@ void dmac_runner(SystemThreadInterface& iface) {
while (!iface.get_want_exit() && !VM::vm_want_exit()) { while (!iface.get_want_exit() && !VM::vm_want_exit()) {
for (int i = 0; i < 10; ++i) { for (int i = 0; i < 10; ++i) {
if (VM::dmac_ch[i]->chcr.str) { 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; VM::dmac_ch[i]->chcr.str = 0;
} }
} }

View file

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

View file

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

View file

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