From bad3e2a089bc6dae9c33426a5370c225d8b6139d Mon Sep 17 00:00:00 2001 From: cflip Date: Mon, 14 Nov 2022 17:02:53 -0700 Subject: [PATCH] LibGL: Add some tests for the buffer API --- Tests/LibGL/TestAPI.cpp | 8 +++++ Tests/LibGL/TestRender.cpp | 30 ++++++++++++++++++ .../0010_test_store_data_in_buffer.qoi | Bin 0 -> 184 bytes 3 files changed, 38 insertions(+) create mode 100644 Tests/LibGL/reference-images/0010_test_store_data_in_buffer.qoi diff --git a/Tests/LibGL/TestAPI.cpp b/Tests/LibGL/TestAPI.cpp index b539c5db883..d5ec47631cd 100644 --- a/Tests/LibGL/TestAPI.cpp +++ b/Tests/LibGL/TestAPI.cpp @@ -53,3 +53,11 @@ TEST_CASE(0002_gl_cull_face_does_not_accept_left_and_right) glCullFace(GL_RIGHT); EXPECT_EQ(glGetError(), static_cast(GL_INVALID_ENUM)); } + +TEST_CASE(0003_gl_bind_buffer_names_must_be_allocated) +{ + auto context = create_testing_context(); + + glBindBuffer(GL_ARRAY_BUFFER, 123); + EXPECT_EQ(glGetError(), static_cast(GL_INVALID_VALUE)); +} diff --git a/Tests/LibGL/TestRender.cpp b/Tests/LibGL/TestRender.cpp index b4a80c3ea1a..8300eab515e 100644 --- a/Tests/LibGL/TestRender.cpp +++ b/Tests/LibGL/TestRender.cpp @@ -269,3 +269,33 @@ TEST_CASE(0009_test_draw_elements_in_display_list) context->present(); expect_bitmap_equals_reference(context->frontbuffer(), "0009_test_draw_elements_in_display_list"sv); } + +TEST_CASE(0010_test_store_data_in_buffer) +{ + auto context = create_testing_context(64, 64); + + glColor3f(1.f, 0.f, 0.f); + glEnableClientState(GL_VERTEX_ARRAY); + + float vertices[] = { 0.f, .5f, -.5f, -.5f, .5f, -.5f }; + u8 indices[] = { 0, 1, 2 }; + + GLuint buffers[2]; + glGenBuffers(2, buffers); + + glBindBuffer(GL_ARRAY_BUFFER, buffers[0]); + glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float), vertices, GL_STATIC_DRAW); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers[1]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3, indices, GL_STATIC_DRAW); + + glVertexPointer(2, GL_FLOAT, 0, 0); + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_BYTE, 0); + + glDeleteBuffers(2, buffers); + + EXPECT_EQ(glGetError(), 0u); + + context->present(); + expect_bitmap_equals_reference(context->frontbuffer(), "0010_test_store_data_in_buffer"sv); +} diff --git a/Tests/LibGL/reference-images/0010_test_store_data_in_buffer.qoi b/Tests/LibGL/reference-images/0010_test_store_data_in_buffer.qoi new file mode 100644 index 0000000000000000000000000000000000000000..2acb27277f3557a0eb259362be2e0233f518abb0 GIT binary patch literal 184 zcmZY3$qIr17)9Y<=!q`eeNPj#ir!EpB0?e}LL!>WM$@!;yl(5jw?EZNxnyR=T)|#{ zdGC*z%O_ku;PEau)OeK(>O9K{4Q7&}$)hCj8Os4JMzTknJK3VcjjYk-N<#Fwlm!CL VWrjYdGQogj8DYrZpGcp1&KH&=Xqo^3 literal 0 HcmV?d00001