|
@@ -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);
|
|
|
+}
|