| 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 "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "gpu/command_buffer/service/error_state_mock.h" | 8 #include "gpu/command_buffer/service/error_state_mock.h" |
| 9 #include "gpu/command_buffer/service/feature_info.h" | 9 #include "gpu/command_buffer/service/feature_info.h" |
| 10 #include "gpu/command_buffer/service/framebuffer_manager.h" | 10 #include "gpu/command_buffer/service/framebuffer_manager.h" |
| (...skipping 2215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2226 FramebufferManager framebuffer_manager1(1, 1); | 2226 FramebufferManager framebuffer_manager1(1, 1); |
| 2227 texture_manager1_->set_framebuffer_manager(&framebuffer_manager1); | 2227 texture_manager1_->set_framebuffer_manager(&framebuffer_manager1); |
| 2228 FramebufferManager framebuffer_manager2(1, 1); | 2228 FramebufferManager framebuffer_manager2(1, 1); |
| 2229 texture_manager2_->set_framebuffer_manager(&framebuffer_manager2); | 2229 texture_manager2_->set_framebuffer_manager(&framebuffer_manager2); |
| 2230 | 2230 |
| 2231 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); | 2231 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); |
| 2232 framebuffer_manager1.CreateFramebuffer(10, 10); | 2232 framebuffer_manager1.CreateFramebuffer(10, 10); |
| 2233 scoped_refptr<Framebuffer> framebuffer1 = | 2233 scoped_refptr<Framebuffer> framebuffer1 = |
| 2234 framebuffer_manager1.GetFramebuffer(10); | 2234 framebuffer_manager1.GetFramebuffer(10); |
| 2235 framebuffer1->AttachTexture( | 2235 framebuffer1->AttachTexture( |
| 2236 GL_COLOR_ATTACHMENT0, ref1.get(), GL_TEXTURE_2D, 0); | 2236 GL_COLOR_ATTACHMENT0, ref1.get(), GL_TEXTURE_2D, 0, 0); |
| 2237 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get())); | 2237 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get())); |
| 2238 EXPECT_NE(kCompleteValue, framebuffer1->IsPossiblyComplete()); | 2238 EXPECT_NE(kCompleteValue, framebuffer1->IsPossiblyComplete()); |
| 2239 | 2239 |
| 2240 // Make FBO complete in manager 1. | 2240 // Make FBO complete in manager 1. |
| 2241 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); | 2241 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); |
| 2242 texture_manager1_->SetLevelInfo(ref1.get(), | 2242 texture_manager1_->SetLevelInfo(ref1.get(), |
| 2243 GL_TEXTURE_2D, | 2243 GL_TEXTURE_2D, |
| 2244 0, | 2244 0, |
| 2245 GL_RGBA, | 2245 GL_RGBA, |
| 2246 1, | 2246 1, |
| 2247 1, | 2247 1, |
| 2248 1, | 2248 1, |
| 2249 0, | 2249 0, |
| 2250 GL_RGBA, | 2250 GL_RGBA, |
| 2251 GL_UNSIGNED_BYTE, | 2251 GL_UNSIGNED_BYTE, |
| 2252 true); | 2252 true); |
| 2253 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); | 2253 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); |
| 2254 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); | 2254 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); |
| 2255 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); | 2255 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); |
| 2256 | 2256 |
| 2257 // Share texture with manager 2. | 2257 // Share texture with manager 2. |
| 2258 scoped_refptr<TextureRef> ref2 = | 2258 scoped_refptr<TextureRef> ref2 = |
| 2259 texture_manager2_->Consume(20, ref1->texture()); | 2259 texture_manager2_->Consume(20, ref1->texture()); |
| 2260 framebuffer_manager2.CreateFramebuffer(20, 20); | 2260 framebuffer_manager2.CreateFramebuffer(20, 20); |
| 2261 scoped_refptr<Framebuffer> framebuffer2 = | 2261 scoped_refptr<Framebuffer> framebuffer2 = |
| 2262 framebuffer_manager2.GetFramebuffer(20); | 2262 framebuffer_manager2.GetFramebuffer(20); |
| 2263 framebuffer2->AttachTexture( | 2263 framebuffer2->AttachTexture( |
| 2264 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0); | 2264 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0, 0); |
| 2265 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); | 2265 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); |
| 2266 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); | 2266 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); |
| 2267 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); | 2267 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); |
| 2268 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); | 2268 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); |
| 2269 | 2269 |
| 2270 // Change level for texture, both FBOs should be marked incomplete | 2270 // Change level for texture, both FBOs should be marked incomplete |
| 2271 texture_manager1_->SetLevelInfo(ref1.get(), | 2271 texture_manager1_->SetLevelInfo(ref1.get(), |
| 2272 GL_TEXTURE_2D, | 2272 GL_TEXTURE_2D, |
| 2273 0, | 2273 0, |
| 2274 GL_RGBA, | 2274 GL_RGBA, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2344 .Times(1) | 2344 .Times(1) |
| 2345 .RetiresOnSaturation(); | 2345 .RetiresOnSaturation(); |
| 2346 ref2 = NULL; | 2346 ref2 = NULL; |
| 2347 texture_manager2_->RemoveTexture(20); | 2347 texture_manager2_->RemoveTexture(20); |
| 2348 EXPECT_EQ(initial_memory2, | 2348 EXPECT_EQ(initial_memory2, |
| 2349 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); | 2349 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); |
| 2350 } | 2350 } |
| 2351 | 2351 |
| 2352 } // namespace gles2 | 2352 } // namespace gles2 |
| 2353 } // namespace gpu | 2353 } // namespace gpu |
| OLD | NEW |