| 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/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, | 171 void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, |
| 172 uint64_t process_tracing_id, | 172 uint64_t process_tracing_id, |
| 173 const std::string& dump_name) override {} | 173 const std::string& dump_name) override {} |
| 174 bool EmulatingRGB() const override { return false; } | 174 bool EmulatingRGB() const override { return false; } |
| 175 void GetTextureMatrix(float matrix[16]) override {} | 175 void GetTextureMatrix(float matrix[16]) override {} |
| 176 | 176 |
| 177 protected: | 177 protected: |
| 178 ~GLStreamTextureImageStub() override {} | 178 ~GLStreamTextureImageStub() override {} |
| 179 }; | 179 }; |
| 180 | 180 |
| 181 // TODO(yunchao) add test cases for 3D texture and 2D_ARRAY texture |
| 182 |
| 181 TEST_F(TextureManagerTest, Basic) { | 183 TEST_F(TextureManagerTest, Basic) { |
| 182 const GLuint kClient1Id = 1; | 184 const GLuint kClient1Id = 1; |
| 183 const GLuint kService1Id = 11; | 185 const GLuint kService1Id = 11; |
| 184 const GLuint kClient2Id = 2; | 186 const GLuint kClient2Id = 2; |
| 185 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 187 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 186 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 188 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 187 // Check we can create texture. | 189 // Check we can create texture. |
| 188 manager_->CreateTexture(kClient1Id, kService1Id); | 190 manager_->CreateTexture(kClient1Id, kService1Id); |
| 189 // Check texture got created. | 191 // Check texture got created. |
| 190 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id); | 192 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id); |
| (...skipping 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1273 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); | 1275 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); |
| 1274 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); | 1276 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); |
| 1275 manager_->RemoveTexture(kClient1Id); | 1277 manager_->RemoveTexture(kClient1Id); |
| 1276 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); | 1278 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); |
| 1277 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); | 1279 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); |
| 1278 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); | 1280 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); |
| 1279 } | 1281 } |
| 1280 | 1282 |
| 1281 TEST_F(TextureTest, ValidForTexture) { | 1283 TEST_F(TextureTest, ValidForTexture) { |
| 1282 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1284 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1283 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 6, | 1285 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, |
| 1284 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 1286 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
| 1285 // Check bad face. | 1287 // Check bad face. |
| 1286 Texture* texture = texture_ref_->texture(); | 1288 Texture* texture = texture_ref_->texture(); |
| 1287 EXPECT_FALSE(texture->ValidForTexture( | 1289 EXPECT_FALSE(texture->ValidForTexture( |
| 1288 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 0, 0, 0, 4, 5, 6)); | 1290 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 0, 0, 0, 4, 5, 1)); |
| 1289 // Check bad level. | 1291 // Check bad level. |
| 1290 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 0, 0, 0, 0, 4, 5, 6)); | 1292 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 0, 0, 0, 0, 4, 5, 1)); |
| 1291 // Check bad xoffset. | 1293 // Check bad xoffset. |
| 1292 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, -1, 0, 0, 4, 5, 6)); | 1294 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, -1, 0, 0, 4, 5, 1)); |
| 1293 // Check bad xoffset + width > width. | 1295 // Check bad xoffset + width > width. |
| 1294 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 0, 0, 4, 5, 6)); | 1296 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 0, 0, 4, 5, 1)); |
| 1295 // Check bad yoffset. | 1297 // Check bad yoffset. |
| 1296 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, -1, 0, 4, 5, 6)); | 1298 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, -1, 0, 4, 5, 1)); |
| 1297 // Check bad yoffset + height > height. | 1299 // Check bad yoffset + height > height. |
| 1298 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 1, 0, 4, 5, 6)); | 1300 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 1, 0, 4, 5, 1)); |
| 1299 // Check bad zoffset. | 1301 // Check bad zoffset. |
| 1300 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, -1, 4, 5, 6)); | 1302 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, -1, 4, 5, 1)); |
| 1301 // Check bad zoffset + depth > depth. | 1303 // Check bad zoffset + depth > depth. |
| 1302 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 1, 4, 5, 6)); | 1304 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 1, 4, 5, 1)); |
| 1303 // Check bad width. | 1305 // Check bad width. |
| 1304 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 5, 5, 6)); | 1306 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 5, 5, 1)); |
| 1305 // Check bad height. | 1307 // Check bad height. |
| 1306 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 6, 6)); | 1308 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 6, 1)); |
| 1307 // Check bad depth. | 1309 // Check bad depth. |
| 1308 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 7)); | 1310 EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 2)); |
| 1309 // Check valid full size | 1311 // Check valid full size |
| 1310 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6)); | 1312 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 1)); |
| 1311 // Check valid particial size. | 1313 // Check valid particial size. |
| 1312 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 1, 2, 3, 4)); | 1314 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 0, 2, 3, 1)); |
| 1313 manager_->RemoveTexture(kClient1Id); | 1315 manager_->RemoveTexture(kClient1Id); |
| 1314 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6)); | 1316 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 1)); |
| 1315 } | 1317 } |
| 1316 | 1318 |
| 1317 TEST_F(TextureTest, FloatNotLinear) { | 1319 TEST_F(TextureTest, FloatNotLinear) { |
| 1318 TestHelper::SetupFeatureInfoInitExpectations( | 1320 TestHelper::SetupFeatureInfoInitExpectations( |
| 1319 gl_.get(), "GL_OES_texture_float"); | 1321 gl_.get(), "GL_OES_texture_float"); |
| 1320 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1322 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1321 feature_info->InitializeForTesting(); | 1323 feature_info->InitializeForTesting(); |
| 1322 TextureManager manager(NULL, | 1324 TextureManager manager(NULL, |
| 1323 feature_info.get(), | 1325 feature_info.get(), |
| 1324 kMaxTextureSize, | 1326 kMaxTextureSize, |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1484 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 1486 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 1485 Texture* texture = texture_ref_->texture(); | 1487 Texture* texture = texture_ref_->texture(); |
| 1486 EXPECT_EQ(0, texture->num_uncleared_mips()); | 1488 EXPECT_EQ(0, texture->num_uncleared_mips()); |
| 1487 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1489 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1488 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 1490 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 1489 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1491 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1490 EXPECT_FALSE(texture->SafeToRenderFrom()); | 1492 EXPECT_FALSE(texture->SafeToRenderFrom()); |
| 1491 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1493 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1492 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1494 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1493 EXPECT_EQ(1, texture->num_uncleared_mips()); | 1495 EXPECT_EQ(1, texture->num_uncleared_mips()); |
| 1494 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, true); | 1496 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, true); |
| 1495 EXPECT_TRUE(texture->SafeToRenderFrom()); | 1497 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 1496 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 1498 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 1497 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 1499 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 1498 EXPECT_EQ(0, texture->num_uncleared_mips()); | 1500 EXPECT_EQ(0, texture->num_uncleared_mips()); |
| 1499 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, | 1501 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, |
| 1500 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1502 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1501 EXPECT_FALSE(texture->SafeToRenderFrom()); | 1503 EXPECT_FALSE(texture->SafeToRenderFrom()); |
| 1502 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1504 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1503 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1505 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1504 EXPECT_EQ(1, texture->num_uncleared_mips()); | 1506 EXPECT_EQ(1, texture->num_uncleared_mips()); |
| 1505 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, true); | 1507 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, true); |
| 1506 EXPECT_TRUE(texture->SafeToRenderFrom()); | 1508 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 1507 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 1509 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 1508 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 1510 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 1509 EXPECT_EQ(0, texture->num_uncleared_mips()); | 1511 EXPECT_EQ(0, texture->num_uncleared_mips()); |
| 1510 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 1512 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 1511 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1513 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1512 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, | 1514 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, |
| 1513 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1515 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1514 EXPECT_FALSE(texture->SafeToRenderFrom()); | 1516 EXPECT_FALSE(texture->SafeToRenderFrom()); |
| 1515 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1517 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1516 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1518 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1517 EXPECT_EQ(2, texture->num_uncleared_mips()); | 1519 EXPECT_EQ(2, texture->num_uncleared_mips()); |
| 1518 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, true); | 1520 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, true); |
| 1519 EXPECT_FALSE(texture->SafeToRenderFrom()); | 1521 EXPECT_FALSE(texture->SafeToRenderFrom()); |
| 1520 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1522 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1521 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1523 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1522 EXPECT_EQ(1, texture->num_uncleared_mips()); | 1524 EXPECT_EQ(1, texture->num_uncleared_mips()); |
| 1523 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, true); | 1525 manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, true); |
| 1524 EXPECT_TRUE(texture->SafeToRenderFrom()); | 1526 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 1525 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 1527 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 1526 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 1528 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 1527 EXPECT_EQ(0, texture->num_uncleared_mips()); | 1529 EXPECT_EQ(0, texture->num_uncleared_mips()); |
| 1528 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, | 1530 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, |
| 1529 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1531 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1530 EXPECT_FALSE(texture->SafeToRenderFrom()); | 1532 EXPECT_FALSE(texture->SafeToRenderFrom()); |
| 1531 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1533 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1532 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1534 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1533 EXPECT_EQ(1, texture->num_uncleared_mips()); | 1535 EXPECT_EQ(1, texture->num_uncleared_mips()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1562 scoped_refptr<TextureRef> texture_ref3( | 1564 scoped_refptr<TextureRef> texture_ref3( |
| 1563 manager_->GetTexture(kClient3Id)); | 1565 manager_->GetTexture(kClient3Id)); |
| 1564 ASSERT_TRUE(texture_ref3.get() != NULL); | 1566 ASSERT_TRUE(texture_ref3.get() != NULL); |
| 1565 manager_->SetTarget(texture_ref3.get(), GL_TEXTURE_2D); | 1567 manager_->SetTarget(texture_ref3.get(), GL_TEXTURE_2D); |
| 1566 manager_->SetLevelInfo(texture_ref3.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, | 1568 manager_->SetLevelInfo(texture_ref3.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, |
| 1567 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1569 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1568 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1570 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1569 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1571 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1570 Texture* texture3 = texture_ref3->texture(); | 1572 Texture* texture3 = texture_ref3->texture(); |
| 1571 EXPECT_EQ(1, texture3->num_uncleared_mips()); | 1573 EXPECT_EQ(1, texture3->num_uncleared_mips()); |
| 1572 manager_->SetLevelCleared(texture_ref2.get(), GL_TEXTURE_2D, 0, true); | 1574 manager_->SetLevelCleared(texture_ref2.get(), GL_TEXTURE_2D, 0, 0, true); |
| 1573 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1575 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1574 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1576 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| 1575 EXPECT_EQ(0, texture2->num_uncleared_mips()); | 1577 EXPECT_EQ(0, texture2->num_uncleared_mips()); |
| 1576 manager_->SetLevelCleared(texture_ref3.get(), GL_TEXTURE_2D, 0, true); | 1578 manager_->SetLevelCleared(texture_ref3.get(), GL_TEXTURE_2D, 0, 0, true); |
| 1577 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 1579 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 1578 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 1580 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
| 1579 EXPECT_EQ(0, texture3->num_uncleared_mips()); | 1581 EXPECT_EQ(0, texture3->num_uncleared_mips()); |
| 1580 | 1582 |
| 1581 manager_->SetLevelInfo(texture_ref2.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, | 1583 manager_->SetLevelInfo(texture_ref2.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, |
| 1582 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(1, 1, 1, 1)); | 1584 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(1, 1, 1, 1)); |
| 1583 manager_->SetLevelInfo(texture_ref3.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, | 1585 manager_->SetLevelInfo(texture_ref3.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 1, |
| 1584 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4, 4, 4)); | 1586 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4, 4, 4)); |
| 1585 EXPECT_TRUE(manager_->HaveUnsafeTextures()); | 1587 EXPECT_TRUE(manager_->HaveUnsafeTextures()); |
| 1586 EXPECT_TRUE(manager_->HaveUnclearedMips()); | 1588 EXPECT_TRUE(manager_->HaveUnclearedMips()); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1674 .Times(1) | 1676 .Times(1) |
| 1675 .RetiresOnSaturation(); | 1677 .RetiresOnSaturation(); |
| 1676 texture_ref = NULL; | 1678 texture_ref = NULL; |
| 1677 } | 1679 } |
| 1678 | 1680 |
| 1679 TEST_F(TextureTest, GetLevelImage) { | 1681 TEST_F(TextureTest, GetLevelImage) { |
| 1680 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1682 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1681 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1683 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1682 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1684 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1683 Texture* texture = texture_ref_->texture(); | 1685 Texture* texture = texture_ref_->texture(); |
| 1684 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); | 1686 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1685 // Set image. | 1687 // Set image. |
| 1686 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); | 1688 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); |
| 1687 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get(), | 1689 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, image.get(), |
| 1688 Texture::BOUND); | 1690 Texture::BOUND); |
| 1689 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); | 1691 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1690 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1) == NULL); | 1692 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1691 // Remove it. | 1693 // Remove it. |
| 1692 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, nullptr, | 1694 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, nullptr, |
| 1693 Texture::UNBOUND); | 1695 Texture::UNBOUND); |
| 1694 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); | 1696 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1695 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get(), | 1697 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, image.get(), |
| 1696 Texture::UNBOUND); | 1698 Texture::UNBOUND); |
| 1697 // Image should be reset when SetLevelInfo is called. | 1699 // Image should be reset when SetLevelInfo is called. |
| 1698 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1700 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1699 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1701 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1700 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL); | 1702 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1701 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1) == NULL); | 1703 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1, 0) == NULL); |
| 1702 } | 1704 } |
| 1703 | 1705 |
| 1704 TEST_F(TextureTest, GetLevelStreamTextureImage) { | 1706 TEST_F(TextureTest, GetLevelStreamTextureImage) { |
| 1705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); | 1707 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); |
| 1706 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, | 1708 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, |
| 1707 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 1709 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 1708 gfx::Rect(2, 2)); | 1710 gfx::Rect(2, 2)); |
| 1709 Texture* texture = texture_ref_->texture(); | 1711 Texture* texture = texture_ref_->texture(); |
| 1710 | 1712 |
| 1711 // Set image. | 1713 // Set image. |
| 1712 scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub); | 1714 scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub); |
| 1713 manager_->SetLevelStreamTextureImage(texture_ref_.get(), | 1715 manager_->SetLevelStreamTextureImage(texture_ref_.get(), |
| 1714 GL_TEXTURE_EXTERNAL_OES, 0, image.get(), | 1716 GL_TEXTURE_EXTERNAL_OES, 0, 0, |
| 1715 Texture::BOUND, 0); | 1717 image.get(), Texture::BOUND, 0); |
| 1716 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL); | 1718 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL); |
| 1717 EXPECT_FALSE( | 1719 EXPECT_FALSE( |
| 1718 texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL); | 1720 texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == |
| 1721 NULL); |
| 1719 | 1722 |
| 1720 // Replace it as a normal image. | 1723 // Replace it as a normal image. |
| 1721 scoped_refptr<gl::GLImage> image2(new gl::GLImageStub); | 1724 scoped_refptr<gl::GLImage> image2(new gl::GLImageStub); |
| 1722 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, | 1725 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0, |
| 1723 image2.get(), Texture::BOUND); | 1726 image2.get(), Texture::BOUND); |
| 1724 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL); | 1727 EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL); |
| 1725 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) == | 1728 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) |
| 1726 NULL); | 1729 == NULL); |
| 1727 | 1730 |
| 1728 // Image should be reset when SetLevelInfo is called. | 1731 // Image should be reset when SetLevelInfo is called. |
| 1729 manager_->SetLevelStreamTextureImage(texture_ref_.get(), | 1732 manager_->SetLevelStreamTextureImage(texture_ref_.get(), |
| 1730 GL_TEXTURE_EXTERNAL_OES, 0, image.get(), | 1733 GL_TEXTURE_EXTERNAL_OES, 0, 0, |
| 1731 Texture::UNBOUND, 0); | 1734 image.get(), Texture::UNBOUND, 0); |
| 1732 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, | 1735 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, |
| 1733 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 1736 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 1734 gfx::Rect(2, 2)); | 1737 gfx::Rect(2, 2)); |
| 1735 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL); | 1738 EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL); |
| 1736 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) == | 1739 EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) |
| 1737 NULL); | 1740 == NULL); |
| 1738 } | 1741 } |
| 1739 | 1742 |
| 1740 TEST_F(TextureTest, SetLevelImageState) { | 1743 TEST_F(TextureTest, SetLevelImageState) { |
| 1741 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1744 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1742 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, | 1745 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, |
| 1743 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1746 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1744 Texture* texture = texture_ref_->texture(); | 1747 Texture* texture = texture_ref_->texture(); |
| 1745 // Set image, initially BOUND. | 1748 // Set image, initially BOUND. |
| 1746 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); | 1749 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); |
| 1747 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 0, image.get(), | 1750 manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, image.get(), |
| 1748 Texture::BOUND); | 1751 Texture::BOUND); |
| 1749 Texture::ImageState state; | 1752 Texture::ImageState state; |
| 1750 texture->GetLevelImage(GL_TEXTURE_2D, 0, &state); | 1753 texture->GetLevelImage(GL_TEXTURE_2D, 0, 0, &state); |
| 1751 EXPECT_EQ(state, Texture::BOUND); | 1754 EXPECT_EQ(state, Texture::BOUND); |
| 1752 // Change the state. | 1755 // Change the state. |
| 1753 texture->SetLevelImageState(GL_TEXTURE_2D, 0, Texture::COPIED); | 1756 texture->SetLevelImageState(GL_TEXTURE_2D, 0, 0, Texture::COPIED); |
| 1754 texture->GetLevelImage(GL_TEXTURE_2D, 0, &state); | 1757 texture->GetLevelImage(GL_TEXTURE_2D, 0, 0, &state); |
| 1755 EXPECT_EQ(state, Texture::COPIED); | 1758 EXPECT_EQ(state, Texture::COPIED); |
| 1756 } | 1759 } |
| 1757 | 1760 |
| 1758 TEST_F(TextureTest, SetStreamTextureImageServiceID) { | 1761 TEST_F(TextureTest, SetStreamTextureImageServiceID) { |
| 1759 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); | 1762 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); |
| 1760 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, | 1763 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, |
| 1761 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 1764 GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 1762 gfx::Rect(2, 2)); | 1765 gfx::Rect(2, 2)); |
| 1763 Texture* texture = texture_ref_->texture(); | 1766 Texture* texture = texture_ref_->texture(); |
| 1764 | 1767 |
| 1765 GLuint owned_service_id = TextureTestHelper::owned_service_id(texture); | 1768 GLuint owned_service_id = TextureTestHelper::owned_service_id(texture); |
| 1766 GLuint service_id = texture->service_id(); | 1769 GLuint service_id = texture->service_id(); |
| 1767 // Initially, the texture should use the same service id that it owns. | 1770 // Initially, the texture should use the same service id that it owns. |
| 1768 EXPECT_EQ(owned_service_id, service_id); | 1771 EXPECT_EQ(owned_service_id, service_id); |
| 1769 | 1772 |
| 1770 // Override the service_id. | 1773 // Override the service_id. |
| 1771 GLuint stream_texture_service_id = service_id + 1; | 1774 GLuint stream_texture_service_id = service_id + 1; |
| 1772 scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub); | 1775 scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub); |
| 1773 manager_->SetLevelStreamTextureImage( | 1776 manager_->SetLevelStreamTextureImage( |
| 1774 texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, image.get(), | 1777 texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0, image.get(), |
| 1775 Texture::BOUND, stream_texture_service_id); | 1778 Texture::BOUND, stream_texture_service_id); |
| 1776 | 1779 |
| 1777 // Make sure that service_id() changed but owned_service_id() didn't. | 1780 // Make sure that service_id() changed but owned_service_id() didn't. |
| 1778 EXPECT_EQ(stream_texture_service_id, texture->service_id()); | 1781 EXPECT_EQ(stream_texture_service_id, texture->service_id()); |
| 1779 EXPECT_EQ(owned_service_id, TextureTestHelper::owned_service_id(texture)); | 1782 EXPECT_EQ(owned_service_id, TextureTestHelper::owned_service_id(texture)); |
| 1780 | 1783 |
| 1781 // Undo the override. | 1784 // Undo the override. |
| 1782 manager_->SetLevelStreamTextureImage(texture_ref_.get(), | 1785 manager_->SetLevelStreamTextureImage(texture_ref_.get(), |
| 1783 GL_TEXTURE_EXTERNAL_OES, 0, image.get(), | 1786 GL_TEXTURE_EXTERNAL_OES, 0, 0, |
| 1784 Texture::BOUND, 0); | 1787 image.get(), Texture::BOUND, 0); |
| 1785 | 1788 |
| 1786 // The service IDs should be back as they were. | 1789 // The service IDs should be back as they were. |
| 1787 EXPECT_EQ(service_id, texture->service_id()); | 1790 EXPECT_EQ(service_id, texture->service_id()); |
| 1788 EXPECT_EQ(owned_service_id, TextureTestHelper::owned_service_id(texture)); | 1791 EXPECT_EQ(owned_service_id, TextureTestHelper::owned_service_id(texture)); |
| 1789 | 1792 |
| 1790 // Override again, so that we can check delete behavior. | 1793 // Override again, so that we can check delete behavior. |
| 1791 manager_->SetLevelStreamTextureImage( | 1794 manager_->SetLevelStreamTextureImage( |
| 1792 texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, image.get(), | 1795 texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0, image.get(), |
| 1793 Texture::BOUND, stream_texture_service_id); | 1796 Texture::BOUND, stream_texture_service_id); |
| 1794 | 1797 |
| 1795 // Remove the Texture. It should delete the texture id that it owns, even | 1798 // Remove the Texture. It should delete the texture id that it owns, even |
| 1796 // though it is overridden. | 1799 // though it is overridden. |
| 1797 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(owned_service_id))) | 1800 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(owned_service_id))) |
| 1798 .Times(1) | 1801 .Times(1) |
| 1799 .RetiresOnSaturation(); | 1802 .RetiresOnSaturation(); |
| 1800 manager_->RemoveTexture(kClient1Id); | 1803 manager_->RemoveTexture(kClient1Id); |
| 1801 texture_ref_ = nullptr; | 1804 texture_ref_ = nullptr; |
| 1802 } | 1805 } |
| 1803 | 1806 |
| 1804 namespace { | 1807 namespace { |
| 1805 | 1808 |
| 1806 bool InSet(std::set<std::string>* string_set, const std::string& str) { | 1809 bool InSet(std::set<std::string>* string_set, const std::string& str) { |
| 1807 std::pair<std::set<std::string>::iterator, bool> result = | 1810 std::pair<std::set<std::string>::iterator, bool> result = |
| 1808 string_set->insert(str); | 1811 string_set->insert(str); |
| 1809 return !result.second; | 1812 return !result.second; |
| 1810 } | 1813 } |
| 1811 | 1814 |
| 1812 } // anonymous namespace | 1815 } // anonymous namespace |
| 1813 | 1816 |
| 1814 TEST_F(TextureTest, AddToSignature) { | 1817 TEST_F(TextureTest, AddToSignature) { |
| 1815 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1818 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1816 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1819 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1817 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1820 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1818 std::string signature1; | 1821 std::string signature1; |
| 1819 std::string signature2; | 1822 std::string signature2; |
| 1820 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature1); | 1823 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1824 1, 0, &signature1); |
| 1821 | 1825 |
| 1822 std::set<std::string> string_set; | 1826 std::set<std::string> string_set; |
| 1823 EXPECT_FALSE(InSet(&string_set, signature1)); | 1827 EXPECT_FALSE(InSet(&string_set, signature1)); |
| 1824 | 1828 |
| 1825 // check changing 1 thing makes a different signature. | 1829 // check changing 1 thing makes a different signature. |
| 1826 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 2, 1, | 1830 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 2, 1, |
| 1827 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 2)); | 1831 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 2)); |
| 1828 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1832 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1833 1, 0, &signature2); |
| 1829 EXPECT_FALSE(InSet(&string_set, signature2)); | 1834 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1830 | 1835 |
| 1831 // check putting it back makes the same signature. | 1836 // check putting it back makes the same signature. |
| 1832 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1837 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1833 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1838 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 1834 signature2.clear(); | 1839 signature2.clear(); |
| 1835 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1840 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1841 1, 0, &signature2); |
| 1836 EXPECT_EQ(signature1, signature2); | 1842 EXPECT_EQ(signature1, signature2); |
| 1837 | 1843 |
| 1838 // Check setting cleared status does not change signature. | 1844 // Check setting cleared status does not change signature. |
| 1839 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1845 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1840 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1846 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1841 signature2.clear(); | 1847 signature2.clear(); |
| 1842 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1848 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1849 1, 0, &signature2); |
| 1843 EXPECT_EQ(signature1, signature2); | 1850 EXPECT_EQ(signature1, signature2); |
| 1844 | 1851 |
| 1845 // Check changing other settings changes signature. | 1852 // Check changing other settings changes signature. |
| 1846 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 4, 1, | 1853 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 4, 1, |
| 1847 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1854 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1848 signature2.clear(); | 1855 signature2.clear(); |
| 1849 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1856 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1850 EXPECT_FALSE(InSet(&string_set, signature2)); | 1857 1, 0, &signature2); |
| 1851 | |
| 1852 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 2, | |
| 1853 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | |
| 1854 signature2.clear(); | |
| 1855 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | |
| 1856 EXPECT_FALSE(InSet(&string_set, signature2)); | 1858 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1857 | 1859 |
| 1858 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1860 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1859 1, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1861 1, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1860 signature2.clear(); | 1862 signature2.clear(); |
| 1861 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1863 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1864 1, 0, &signature2); |
| 1862 EXPECT_FALSE(InSet(&string_set, signature2)); | 1865 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1863 | 1866 |
| 1864 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1867 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1865 0, GL_RGB, GL_UNSIGNED_BYTE, gfx::Rect()); | 1868 0, GL_RGB, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1866 signature2.clear(); | 1869 signature2.clear(); |
| 1867 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1870 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1871 1, 0, &signature2); |
| 1868 EXPECT_FALSE(InSet(&string_set, signature2)); | 1872 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1869 | 1873 |
| 1870 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1874 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1871 0, GL_RGBA, GL_FLOAT, gfx::Rect()); | 1875 0, GL_RGBA, GL_FLOAT, gfx::Rect()); |
| 1872 signature2.clear(); | 1876 signature2.clear(); |
| 1873 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1877 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1878 1, 0, &signature2); |
| 1874 EXPECT_FALSE(InSet(&string_set, signature2)); | 1879 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1875 | 1880 |
| 1876 // put it back | 1881 // put it back |
| 1877 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1882 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| 1878 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1883 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1879 signature2.clear(); | 1884 signature2.clear(); |
| 1880 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1885 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1886 1, 0, &signature2); |
| 1881 EXPECT_EQ(signature1, signature2); | 1887 EXPECT_EQ(signature1, signature2); |
| 1882 | 1888 |
| 1883 // check changing parameters changes signature. | 1889 // check changing parameters changes signature. |
| 1884 SetParameter( | 1890 SetParameter( |
| 1885 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR); | 1891 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR); |
| 1886 signature2.clear(); | 1892 signature2.clear(); |
| 1887 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1893 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1894 1, 0, &signature2); |
| 1888 EXPECT_FALSE(InSet(&string_set, signature2)); | 1895 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1889 | 1896 |
| 1890 SetParameter(texture_ref_.get(), | 1897 SetParameter(texture_ref_.get(), |
| 1891 GL_TEXTURE_MIN_FILTER, | 1898 GL_TEXTURE_MIN_FILTER, |
| 1892 GL_NEAREST_MIPMAP_LINEAR, | 1899 GL_NEAREST_MIPMAP_LINEAR, |
| 1893 GL_NO_ERROR); | 1900 GL_NO_ERROR); |
| 1894 SetParameter( | 1901 SetParameter( |
| 1895 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); | 1902 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); |
| 1896 signature2.clear(); | 1903 signature2.clear(); |
| 1897 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1904 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1905 1, 0, &signature2); |
| 1898 EXPECT_FALSE(InSet(&string_set, signature2)); | 1906 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1899 | 1907 |
| 1900 SetParameter( | 1908 SetParameter( |
| 1901 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); | 1909 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); |
| 1902 SetParameter( | 1910 SetParameter( |
| 1903 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 1911 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
| 1904 signature2.clear(); | 1912 signature2.clear(); |
| 1905 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1913 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1914 1, 0, &signature2); |
| 1906 EXPECT_FALSE(InSet(&string_set, signature2)); | 1915 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1907 | 1916 |
| 1908 SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_REPEAT, GL_NO_ERROR); | 1917 SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_REPEAT, GL_NO_ERROR); |
| 1909 SetParameter( | 1918 SetParameter( |
| 1910 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 1919 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
| 1911 signature2.clear(); | 1920 signature2.clear(); |
| 1912 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1921 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1922 1, 0, &signature2); |
| 1913 EXPECT_FALSE(InSet(&string_set, signature2)); | 1923 EXPECT_FALSE(InSet(&string_set, signature2)); |
| 1914 | 1924 |
| 1915 // Check putting it back genenerates the same signature | 1925 // Check putting it back genenerates the same signature |
| 1916 SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_REPEAT, GL_NO_ERROR); | 1926 SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_REPEAT, GL_NO_ERROR); |
| 1917 signature2.clear(); | 1927 signature2.clear(); |
| 1918 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2); | 1928 manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, |
| 1929 1, 0, &signature2); |
| 1919 EXPECT_EQ(signature1, signature2); | 1930 EXPECT_EQ(signature1, signature2); |
| 1920 | 1931 |
| 1921 // Check the set was acutally getting different signatures. | 1932 // Check the set was acutally getting different signatures. |
| 1922 EXPECT_EQ(11u, string_set.size()); | 1933 EXPECT_EQ(10u, string_set.size()); |
| 1923 } | 1934 } |
| 1924 | 1935 |
| 1925 class ProduceConsumeTextureTest : public TextureTest, | 1936 class ProduceConsumeTextureTest : public TextureTest, |
| 1926 public ::testing::WithParamInterface<GLenum> { | 1937 public ::testing::WithParamInterface<GLenum> { |
| 1927 public: | 1938 public: |
| 1928 void SetUp() override { | 1939 void SetUp() override { |
| 1929 TextureTest::SetUpBase(NULL, "GL_OES_EGL_image_external"); | 1940 TextureTest::SetUpBase(NULL, "GL_OES_EGL_image_external"); |
| 1930 manager_->CreateTexture(kClient2Id, kService2Id); | 1941 manager_->CreateTexture(kClient2Id, kService2Id); |
| 1931 texture2_ = manager_->GetTexture(kClient2Id); | 1942 texture2_ = manager_->GetTexture(kClient2Id); |
| 1932 | 1943 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2006 static LevelInfo GetLevelInfo(const TextureRef* texture_ref, | 2017 static LevelInfo GetLevelInfo(const TextureRef* texture_ref, |
| 2007 GLint target, | 2018 GLint target, |
| 2008 GLint level) { | 2019 GLint level) { |
| 2009 const Texture* texture = texture_ref->texture(); | 2020 const Texture* texture = texture_ref->texture(); |
| 2010 LevelInfo info; | 2021 LevelInfo info; |
| 2011 info.target = target; | 2022 info.target = target; |
| 2012 EXPECT_TRUE(texture->GetLevelSize(target, level, &info.width, | 2023 EXPECT_TRUE(texture->GetLevelSize(target, level, &info.width, |
| 2013 &info.height, &info.depth)); | 2024 &info.height, &info.depth)); |
| 2014 EXPECT_TRUE(texture->GetLevelType(target, level, &info.type, | 2025 EXPECT_TRUE(texture->GetLevelType(target, level, &info.type, |
| 2015 &info.format)); | 2026 &info.format)); |
| 2016 info.cleared_rect = texture->GetLevelClearedRect(target, level); | 2027 info.cleared_rect = texture->GetLevelClearedRect(target, level, 0); |
| 2017 return info; | 2028 return info; |
| 2018 } | 2029 } |
| 2019 | 2030 |
| 2020 Texture* Produce(TextureRef* texture_ref) { | 2031 Texture* Produce(TextureRef* texture_ref) { |
| 2021 Texture* texture = manager_->Produce(texture_ref); | 2032 Texture* texture = manager_->Produce(texture_ref); |
| 2022 EXPECT_TRUE(texture != NULL); | 2033 EXPECT_TRUE(texture != NULL); |
| 2023 return texture; | 2034 return texture; |
| 2024 } | 2035 } |
| 2025 | 2036 |
| 2026 void Consume(GLuint client_id, Texture* texture) { | 2037 void Consume(GLuint client_id, Texture* texture) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2134 } | 2145 } |
| 2135 | 2146 |
| 2136 TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) { | 2147 TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) { |
| 2137 GLenum target = GetParam(); | 2148 GLenum target = GetParam(); |
| 2138 manager_->SetTarget(texture_ref_.get(), target); | 2149 manager_->SetTarget(texture_ref_.get(), target); |
| 2139 Texture* texture = texture_ref_->texture(); | 2150 Texture* texture = texture_ref_->texture(); |
| 2140 EXPECT_EQ(static_cast<GLenum>(target), texture->target()); | 2151 EXPECT_EQ(static_cast<GLenum>(target), texture->target()); |
| 2141 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); | 2152 scoped_refptr<gl::GLImage> image(new gl::GLImageStub); |
| 2142 manager_->SetLevelInfo(texture_ref_.get(), target, 0, GL_RGBA, 0, 0, 1, 0, | 2153 manager_->SetLevelInfo(texture_ref_.get(), target, 0, GL_RGBA, 0, 0, 1, 0, |
| 2143 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 2154 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 2144 manager_->SetLevelImage(texture_ref_.get(), target, 0, image.get(), | 2155 manager_->SetLevelImage(texture_ref_.get(), target, 0, 0, image.get(), |
| 2145 Texture::BOUND); | 2156 Texture::BOUND); |
| 2146 GLuint service_id = texture->service_id(); | 2157 GLuint service_id = texture->service_id(); |
| 2147 Texture* produced_texture = Produce(texture_ref_.get()); | 2158 Texture* produced_texture = Produce(texture_ref_.get()); |
| 2148 | 2159 |
| 2149 GLuint client_id = texture2_->client_id(); | 2160 GLuint client_id = texture2_->client_id(); |
| 2150 manager_->RemoveTexture(client_id); | 2161 manager_->RemoveTexture(client_id); |
| 2151 Consume(client_id, produced_texture); | 2162 Consume(client_id, produced_texture); |
| 2152 scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id); | 2163 scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id); |
| 2153 EXPECT_EQ(produced_texture, restored_texture->texture()); | 2164 EXPECT_EQ(produced_texture, restored_texture->texture()); |
| 2154 EXPECT_EQ(service_id, restored_texture->service_id()); | 2165 EXPECT_EQ(service_id, restored_texture->service_id()); |
| 2155 EXPECT_EQ(image.get(), restored_texture->texture()->GetLevelImage(target, 0)); | 2166 EXPECT_EQ(image.get(), |
| 2167 restored_texture->texture()->GetLevelImage(target, 0, 0)); |
| 2156 } | 2168 } |
| 2157 | 2169 |
| 2158 static const GLenum kTextureTargets[] = {GL_TEXTURE_2D, GL_TEXTURE_EXTERNAL_OES, | 2170 static const GLenum kTextureTargets[] = {GL_TEXTURE_2D, GL_TEXTURE_EXTERNAL_OES, |
| 2159 GL_TEXTURE_RECTANGLE_ARB, }; | 2171 GL_TEXTURE_RECTANGLE_ARB, }; |
| 2160 | 2172 |
| 2161 INSTANTIATE_TEST_CASE_P(Target, | 2173 INSTANTIATE_TEST_CASE_P(Target, |
| 2162 ProduceConsumeTextureTest, | 2174 ProduceConsumeTextureTest, |
| 2163 ::testing::ValuesIn(kTextureTargets)); | 2175 ::testing::ValuesIn(kTextureTargets)); |
| 2164 | 2176 |
| 2165 TEST_F(ProduceConsumeTextureTest, ProduceConsumeCube) { | 2177 TEST_F(ProduceConsumeTextureTest, ProduceConsumeCube) { |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2318 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 2330 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
| 2319 | 2331 |
| 2320 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, | 2332 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, |
| 2321 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 2333 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 2322 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures()); | 2334 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures()); |
| 2323 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips()); | 2335 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips()); |
| 2324 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures()); | 2336 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures()); |
| 2325 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips()); | 2337 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips()); |
| 2326 | 2338 |
| 2327 // Make texture cleared on one texture manager, should affect other one. | 2339 // Make texture cleared on one texture manager, should affect other one. |
| 2328 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true); | 2340 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, 0, true); |
| 2329 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); | 2341 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); |
| 2330 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); | 2342 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); |
| 2331 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); | 2343 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); |
| 2332 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 2344 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
| 2333 | 2345 |
| 2334 EXPECT_CALL(*gl_, DeleteTextures(1, _)) | 2346 EXPECT_CALL(*gl_, DeleteTextures(1, _)) |
| 2335 .Times(1) | 2347 .Times(1) |
| 2336 .RetiresOnSaturation(); | 2348 .RetiresOnSaturation(); |
| 2337 texture_manager1_->RemoveTexture(10); | 2349 texture_manager1_->RemoveTexture(10); |
| 2338 texture_manager2_->RemoveTexture(20); | 2350 texture_manager2_->RemoveTexture(20); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2454 | 2466 |
| 2455 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); | 2467 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); |
| 2456 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, | 2468 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, |
| 2457 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 2469 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 2458 gfx::Rect(2, 2)); | 2470 gfx::Rect(2, 2)); |
| 2459 EXPECT_FALSE(ref1->texture()->HasImages()); | 2471 EXPECT_FALSE(ref1->texture()->HasImages()); |
| 2460 EXPECT_FALSE(ref2->texture()->HasImages()); | 2472 EXPECT_FALSE(ref2->texture()->HasImages()); |
| 2461 EXPECT_FALSE(texture_manager1_->HaveImages()); | 2473 EXPECT_FALSE(texture_manager1_->HaveImages()); |
| 2462 EXPECT_FALSE(texture_manager2_->HaveImages()); | 2474 EXPECT_FALSE(texture_manager2_->HaveImages()); |
| 2463 scoped_refptr<gl::GLImage> image1(new gl::GLImageStub); | 2475 scoped_refptr<gl::GLImage> image1(new gl::GLImageStub); |
| 2464 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image1.get(), | 2476 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, 0, |
| 2465 Texture::BOUND); | 2477 image1.get(), Texture::BOUND); |
| 2466 EXPECT_TRUE(ref1->texture()->HasImages()); | 2478 EXPECT_TRUE(ref1->texture()->HasImages()); |
| 2467 EXPECT_TRUE(ref2->texture()->HasImages()); | 2479 EXPECT_TRUE(ref2->texture()->HasImages()); |
| 2468 EXPECT_TRUE(texture_manager1_->HaveImages()); | 2480 EXPECT_TRUE(texture_manager1_->HaveImages()); |
| 2469 EXPECT_TRUE(texture_manager2_->HaveImages()); | 2481 EXPECT_TRUE(texture_manager2_->HaveImages()); |
| 2470 scoped_refptr<gl::GLImage> image2(new gl::GLImageStub); | 2482 scoped_refptr<gl::GLImage> image2(new gl::GLImageStub); |
| 2471 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image2.get(), | 2483 texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, 0, |
| 2472 Texture::BOUND); | 2484 image2.get(), Texture::BOUND); |
| 2473 EXPECT_TRUE(ref1->texture()->HasImages()); | 2485 EXPECT_TRUE(ref1->texture()->HasImages()); |
| 2474 EXPECT_TRUE(ref2->texture()->HasImages()); | 2486 EXPECT_TRUE(ref2->texture()->HasImages()); |
| 2475 EXPECT_TRUE(texture_manager1_->HaveImages()); | 2487 EXPECT_TRUE(texture_manager1_->HaveImages()); |
| 2476 EXPECT_TRUE(texture_manager2_->HaveImages()); | 2488 EXPECT_TRUE(texture_manager2_->HaveImages()); |
| 2477 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, | 2489 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, |
| 2478 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 2490 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 2479 gfx::Rect(2, 2)); | 2491 gfx::Rect(2, 2)); |
| 2480 EXPECT_FALSE(ref1->texture()->HasImages()); | 2492 EXPECT_FALSE(ref1->texture()->HasImages()); |
| 2481 EXPECT_FALSE(ref2->texture()->HasImages()); | 2493 EXPECT_FALSE(ref2->texture()->HasImages()); |
| 2482 EXPECT_FALSE(texture_manager1_->HaveImages()); | 2494 EXPECT_FALSE(texture_manager1_->HaveImages()); |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2746 ExpectValid( | 2758 ExpectValid( |
| 2747 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); | 2759 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); |
| 2748 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, | 2760 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, |
| 2749 GL_DEPTH32F_STENCIL8); | 2761 GL_DEPTH32F_STENCIL8); |
| 2750 | 2762 |
| 2751 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8); | 2763 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8); |
| 2752 } | 2764 } |
| 2753 | 2765 |
| 2754 } // namespace gles2 | 2766 } // namespace gles2 |
| 2755 } // namespace gpu | 2767 } // namespace gpu |
| OLD | NEW |