Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/buffer_manager.h" | 5 #include "gpu/command_buffer/service/buffer_manager.h" |
| 6 #include "gpu/command_buffer/service/error_state_mock.h" | 6 #include "gpu/command_buffer/service/error_state_mock.h" |
| 7 #include "gpu/command_buffer/service/feature_info.h" | 7 #include "gpu/command_buffer/service/feature_info.h" |
| 8 #include "gpu/command_buffer/service/gpu_service_test.h" | 8 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 9 #include "gpu/command_buffer/service/mocks.h" | 9 #include "gpu/command_buffer/service/mocks.h" |
| 10 #include "gpu/command_buffer/service/test_helper.h" | 10 #include "gpu/command_buffer/service/test_helper.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 203 DoBufferData(buffer, 1, GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 203 DoBufferData(buffer, 1, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
| 204 const int size = 0x20000; | 204 const int size = 0x20000; |
| 205 scoped_ptr<uint8[]> temp(new uint8[size]); | 205 scoped_ptr<uint8[]> temp(new uint8[size]); |
| 206 EXPECT_FALSE(DoBufferSubData(buffer, 0 - size, size, temp.get())); | 206 EXPECT_FALSE(DoBufferSubData(buffer, 0 - size, size, temp.get())); |
| 207 EXPECT_FALSE(DoBufferSubData(buffer, 1, size / 2, temp.get())); | 207 EXPECT_FALSE(DoBufferSubData(buffer, 1, size / 2, temp.get())); |
| 208 } | 208 } |
| 209 | 209 |
| 210 TEST_F(BufferManagerTest, GetRange) { | 210 TEST_F(BufferManagerTest, GetRange) { |
| 211 const GLuint kClientBufferId = 1; | 211 const GLuint kClientBufferId = 1; |
| 212 const GLuint kServiceBufferId = 11; | 212 const GLuint kServiceBufferId = 11; |
| 213 const uint8 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; | 213 const GLsizeiptr kDataSize = 10; |
|
Peter Kasting
2014/11/18 00:41:03
This is a guess on the correct way to rewrite this
| |
| 214 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); | 214 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); |
| 215 Buffer* buffer = manager_->GetBuffer(kClientBufferId); | 215 Buffer* buffer = manager_->GetBuffer(kClientBufferId); |
| 216 ASSERT_TRUE(buffer != NULL); | 216 ASSERT_TRUE(buffer != NULL); |
| 217 manager_->SetTarget(buffer, GL_ELEMENT_ARRAY_BUFFER); | 217 manager_->SetTarget(buffer, GL_ELEMENT_ARRAY_BUFFER); |
| 218 DoBufferData(buffer, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 218 DoBufferData(buffer, kDataSize, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
| 219 const char* buf = | 219 const char* buf = |
| 220 static_cast<const char*>(buffer->GetRange(0, sizeof(data))); | 220 static_cast<const char*>(buffer->GetRange(0, kDataSize)); |
| 221 ASSERT_TRUE(buf != NULL); | 221 ASSERT_TRUE(buf != NULL); |
| 222 const char* buf1 = | 222 const char* buf1 = |
| 223 static_cast<const char*>(buffer->GetRange(1, sizeof(data) - 1)); | 223 static_cast<const char*>(buffer->GetRange(1, kDataSize - 1)); |
| 224 EXPECT_EQ(buf + 1, buf1); | 224 EXPECT_EQ(buf + 1, buf1); |
| 225 EXPECT_TRUE(buffer->GetRange(sizeof(data), 1) == NULL); | 225 EXPECT_TRUE(buffer->GetRange(kDataSize, 1) == NULL); |
| 226 EXPECT_TRUE(buffer->GetRange(0, sizeof(data) + 1) == NULL); | 226 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL); |
| 227 EXPECT_TRUE(buffer->GetRange(-1, sizeof(data)) == NULL); | 227 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL); |
| 228 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); | 228 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); |
| 229 const int size = 0x20000; | 229 const int size = 0x20000; |
| 230 DoBufferData(buffer, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 230 DoBufferData(buffer, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
| 231 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); | 231 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); |
| 232 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); | 232 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); |
| 233 } | 233 } |
| 234 | 234 |
| 235 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { | 235 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { |
| 236 const GLuint kClientBufferId = 1; | 236 const GLuint kClientBufferId = 1; |
| 237 const GLuint kServiceBufferId = 11; | 237 const GLuint kServiceBufferId = 11; |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 343 // Check out of range fails. | 343 // Check out of range fails. |
| 344 EXPECT_FALSE( | 344 EXPECT_FALSE( |
| 345 buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value)); | 345 buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value)); |
| 346 EXPECT_FALSE( | 346 EXPECT_FALSE( |
| 347 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); | 347 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); |
| 348 } | 348 } |
| 349 | 349 |
| 350 TEST_F(BufferManagerTest, UseDeletedBuffer) { | 350 TEST_F(BufferManagerTest, UseDeletedBuffer) { |
| 351 const GLuint kClientBufferId = 1; | 351 const GLuint kClientBufferId = 1; |
| 352 const GLuint kServiceBufferId = 11; | 352 const GLuint kServiceBufferId = 11; |
| 353 const uint32 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; | 353 const GLsizeiptr kDataSize = 10; |
| 354 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); | 354 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); |
| 355 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); | 355 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); |
| 356 ASSERT_TRUE(buffer.get() != NULL); | 356 ASSERT_TRUE(buffer.get() != NULL); |
| 357 manager_->SetTarget(buffer.get(), GL_ARRAY_BUFFER); | 357 manager_->SetTarget(buffer.get(), GL_ARRAY_BUFFER); |
| 358 // Remove buffer | 358 // Remove buffer |
| 359 manager_->RemoveBuffer(kClientBufferId); | 359 manager_->RemoveBuffer(kClientBufferId); |
| 360 // Use it after removing | 360 // Use it after removing |
| 361 DoBufferData(buffer.get(), sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 361 DoBufferData(buffer.get(), kDataSize, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
| 362 // Check that it gets deleted when the last reference is released. | 362 // Check that it gets deleted when the last reference is released. |
| 363 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) | 363 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) |
| 364 .Times(1) | 364 .Times(1) |
| 365 .RetiresOnSaturation(); | 365 .RetiresOnSaturation(); |
| 366 buffer = NULL; | 366 buffer = NULL; |
| 367 } | 367 } |
| 368 | 368 |
| 369 // Test buffers get shadowed when they are supposed to be. | 369 // Test buffers get shadowed when they are supposed to be. |
| 370 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { | 370 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { |
| 371 const GLuint kClientBufferId = 1; | 371 const GLuint kClientBufferId = 1; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 412 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); | 412 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); |
| 413 EXPECT_TRUE( | 413 EXPECT_TRUE( |
| 414 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); | 414 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); |
| 415 EXPECT_EQ(30u, max_value); | 415 EXPECT_EQ(30u, max_value); |
| 416 } | 416 } |
| 417 | 417 |
| 418 } // namespace gles2 | 418 } // namespace gles2 |
| 419 } // namespace gpu | 419 } // namespace gpu |
| 420 | 420 |
| 421 | 421 |
| OLD | NEW |