28TEST(DeviceBufferGLESTest, FlushDuringUploadIsNotDiscarded) {
29 auto mock_gles_impl = std::make_unique<MockGLESImpl>();
33 EXPECT_CALL(*mock_gles_impl, BufferSubData(_, _, _, _))
35 .WillRepeatedly([&](GLenum
target, GLintptr offset, GLsizeiptr
size,
38 if (upload_count == 1) {
44 std::shared_ptr<MockGLES> mock_gles =
47 auto proc_table = std::make_unique<ProcTableGLES>(resolver);
48 auto worker = std::make_shared<TestWorker>();
49 auto reactor = std::make_shared<ReactorGLES>(std::move(proc_table));
52 auto backing_store = std::make_unique<Allocation>();
53 ASSERT_TRUE(backing_store->Truncate(
Bytes{16}));
55 std::move(backing_store));
56 device_buffer_ptr = &device_buffer;
60 EXPECT_TRUE(device_buffer.BindAndUploadDataIfNecessary(
63 EXPECT_TRUE(device_buffer.BindAndUploadDataIfNecessary(
65 EXPECT_EQ(upload_count, 2);
68TEST(DeviceBufferGLESTest, BindUniformData) {
69 auto mock_gles_impl = std::make_unique<MockGLESImpl>();
71 EXPECT_CALL(*mock_gles_impl, GenBuffers(1, _)).Times(1);
73 std::shared_ptr<MockGLES> mock_gled =
76 auto proc_table = std::make_unique<ProcTableGLES>(resolver);
77 auto worker = std::make_shared<TestWorker>();
78 auto reactor = std::make_shared<ReactorGLES>(std::move(proc_table));
81 auto backing_store = std::make_unique<Allocation>();
82 ASSERT_TRUE(backing_store->Truncate(
Bytes{sizeof(float)}));
84 reactor, std::move(backing_store));
85 EXPECT_FALSE(device_buffer.GetHandle().has_value());
86 EXPECT_TRUE(device_buffer.BindAndUploadDataIfNecessary(
88 EXPECT_TRUE(device_buffer.GetHandle().has_value());