| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/layers/texture_layer.h" | 5 #include "cc/layers/texture_layer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1180 | 1180 |
| 1181 TextureMailbox MakeMailbox(char name) { | 1181 TextureMailbox MakeMailbox(char name) { |
| 1182 return TextureMailbox(MailboxFromChar(name), | 1182 return TextureMailbox(MailboxFromChar(name), |
| 1183 SyncTokenFromUInt(static_cast<uint32_t>(name)), | 1183 SyncTokenFromUInt(static_cast<uint32_t>(name)), |
| 1184 GL_TEXTURE_2D); | 1184 GL_TEXTURE_2D); |
| 1185 } | 1185 } |
| 1186 | 1186 |
| 1187 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { | 1187 void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) { |
| 1188 EXPECT_TRUE(sync_token.HasData()); | 1188 EXPECT_TRUE(sync_token.HasData()); |
| 1189 ++mailbox_returned_; | 1189 ++mailbox_returned_; |
| 1190 switch (mailbox_returned_) { | |
| 1191 case 1: | |
| 1192 break; | |
| 1193 case 2: | |
| 1194 EXPECT_EQ(commit_count_, 5); | |
| 1195 EndTest(); | |
| 1196 break; | |
| 1197 default: | |
| 1198 NOTREACHED(); | |
| 1199 } | |
| 1200 } | 1190 } |
| 1201 | 1191 |
| 1202 void SetupTree() override { | 1192 void SetupTree() override { |
| 1203 scoped_refptr<Layer> root = Layer::Create(); | 1193 scoped_refptr<Layer> root = Layer::Create(); |
| 1204 root->SetBounds(gfx::Size(10, 10)); | 1194 root->SetBounds(gfx::Size(10, 10)); |
| 1205 root->SetIsDrawable(true); | 1195 root->SetIsDrawable(true); |
| 1206 | 1196 |
| 1207 solid_layer_ = SolidColorLayer::Create(); | 1197 solid_layer_ = SolidColorLayer::Create(); |
| 1208 solid_layer_->SetBounds(gfx::Size(10, 10)); | 1198 solid_layer_->SetBounds(gfx::Size(10, 10)); |
| 1209 solid_layer_->SetIsDrawable(true); | 1199 solid_layer_->SetIsDrawable(true); |
| 1210 solid_layer_->SetBackgroundColor(SK_ColorWHITE); | 1200 solid_layer_->SetBackgroundColor(SK_ColorWHITE); |
| 1211 root->AddChild(solid_layer_); | 1201 root->AddChild(solid_layer_); |
| 1212 | 1202 |
| 1213 parent_layer_ = Layer::Create(); | 1203 parent_layer_ = Layer::Create(); |
| 1214 parent_layer_->SetBounds(gfx::Size(10, 10)); | 1204 parent_layer_->SetBounds(gfx::Size(10, 10)); |
| 1215 parent_layer_->SetIsDrawable(true); | 1205 parent_layer_->SetIsDrawable(true); |
| 1216 root->AddChild(parent_layer_); | 1206 root->AddChild(parent_layer_); |
| 1217 | 1207 |
| 1218 texture_layer_ = TextureLayer::CreateForMailbox(this); | 1208 texture_layer_ = TextureLayer::CreateForMailbox(this); |
| 1219 texture_layer_->SetBounds(gfx::Size(10, 10)); | 1209 texture_layer_->SetBounds(gfx::Size(10, 10)); |
| 1220 texture_layer_->SetIsDrawable(true); | 1210 texture_layer_->SetIsDrawable(true); |
| 1221 parent_layer_->AddChild(texture_layer_); | 1211 parent_layer_->AddChild(texture_layer_); |
| 1222 | 1212 |
| 1223 layer_tree_host()->SetRootLayer(root); | 1213 layer_tree_host()->SetRootLayer(root); |
| 1224 LayerTreeTest::SetupTree(); | 1214 LayerTreeTest::SetupTree(); |
| 1225 } | 1215 } |
| 1226 | 1216 |
| 1227 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1217 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 1228 | 1218 |
| 1229 void DidCommitAndDrawFrame() override { | 1219 void DidReceiveCompositorFrameAck() override { |
| 1230 ++commit_count_; | 1220 ++commit_count_; |
| 1231 switch (commit_count_) { | 1221 switch (commit_count_) { |
| 1232 case 1: | 1222 case 1: |
| 1233 // We should have updated the layer, committing the texture. | 1223 // We should have updated the layer, committing the texture. |
| 1234 EXPECT_EQ(1, prepare_called_); | 1224 EXPECT_EQ(1, prepare_called_); |
| 1235 // Make layer invisible. | 1225 // Make layer invisible. |
| 1236 parent_layer_->SetOpacity(0.f); | 1226 parent_layer_->SetOpacity(0.f); |
| 1237 break; | 1227 break; |
| 1238 case 2: | 1228 case 2: |
| 1239 // Layer shouldn't have been updated. | 1229 // Layer shouldn't have been updated. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1254 parent_layer_->SetOpacity(0.9f); | 1244 parent_layer_->SetOpacity(0.9f); |
| 1255 break; | 1245 break; |
| 1256 case 4: | 1246 case 4: |
| 1257 // Layer should have been updated. | 1247 // Layer should have been updated. |
| 1258 EXPECT_EQ(2, prepare_called_); | 1248 EXPECT_EQ(2, prepare_called_); |
| 1259 // So the old mailbox should have been returned already. | 1249 // So the old mailbox should have been returned already. |
| 1260 EXPECT_EQ(1, mailbox_returned_); | 1250 EXPECT_EQ(1, mailbox_returned_); |
| 1261 texture_layer_->ClearClient(); | 1251 texture_layer_->ClearClient(); |
| 1262 break; | 1252 break; |
| 1263 case 5: | 1253 case 5: |
| 1254 EXPECT_EQ(2, mailbox_returned_); |
| 1255 EndTest(); |
| 1264 break; | 1256 break; |
| 1265 default: | 1257 default: |
| 1266 NOTREACHED(); | 1258 NOTREACHED(); |
| 1267 break; | 1259 break; |
| 1268 } | 1260 } |
| 1269 } | 1261 } |
| 1270 | 1262 |
| 1271 void AfterTest() override {} | 1263 void AfterTest() override {} |
| 1272 | 1264 |
| 1273 private: | 1265 private: |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1495 base::ThreadChecker main_thread_; | 1487 base::ThreadChecker main_thread_; |
| 1496 int callback_count_; | 1488 int callback_count_; |
| 1497 scoped_refptr<Layer> root_; | 1489 scoped_refptr<Layer> root_; |
| 1498 scoped_refptr<TextureLayer> layer_; | 1490 scoped_refptr<TextureLayer> layer_; |
| 1499 }; | 1491 }; |
| 1500 | 1492 |
| 1501 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerWithMailboxImplThreadDeleted); | 1493 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerWithMailboxImplThreadDeleted); |
| 1502 | 1494 |
| 1503 } // namespace | 1495 } // namespace |
| 1504 } // namespace cc | 1496 } // namespace cc |
| OLD | NEW |