Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: gpu/command_buffer/service/texture_manager_unittest.cc

Issue 139013008: Implement support for rendering to 32-bit float textures on ES3 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 2254 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 FramebufferManager framebuffer_manager2(1, 1); 2265 FramebufferManager framebuffer_manager2(1, 1);
2266 texture_manager2_->set_framebuffer_manager(&framebuffer_manager2); 2266 texture_manager2_->set_framebuffer_manager(&framebuffer_manager2);
2267 2267
2268 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); 2268 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10);
2269 framebuffer_manager1.CreateFramebuffer(10, 10); 2269 framebuffer_manager1.CreateFramebuffer(10, 10);
2270 scoped_refptr<Framebuffer> framebuffer1 = 2270 scoped_refptr<Framebuffer> framebuffer1 =
2271 framebuffer_manager1.GetFramebuffer(10); 2271 framebuffer_manager1.GetFramebuffer(10);
2272 framebuffer1->AttachTexture( 2272 framebuffer1->AttachTexture(
2273 GL_COLOR_ATTACHMENT0, ref1.get(), GL_TEXTURE_2D, 0, 0); 2273 GL_COLOR_ATTACHMENT0, ref1.get(), GL_TEXTURE_2D, 0, 0);
2274 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2274 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2275 EXPECT_NE(kCompleteValue, framebuffer1->IsPossiblyComplete()); 2275 EXPECT_NE(kCompleteValue,
2276 framebuffer1->IsPossiblyComplete(feature_info_.get()));
2276 2277
2277 // Make FBO complete in manager 1. 2278 // Make FBO complete in manager 1.
2278 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); 2279 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D);
2279 texture_manager1_->SetLevelInfo(ref1.get(), 2280 texture_manager1_->SetLevelInfo(ref1.get(),
2280 GL_TEXTURE_2D, 2281 GL_TEXTURE_2D,
2281 0, 2282 0,
2282 GL_RGBA, 2283 GL_RGBA,
2283 1, 2284 1,
2284 1, 2285 1,
2285 1, 2286 1,
2286 0, 2287 0,
2287 GL_RGBA, 2288 GL_RGBA,
2288 GL_UNSIGNED_BYTE, 2289 GL_UNSIGNED_BYTE,
2289 true); 2290 true);
2290 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); 2291 EXPECT_EQ(kCompleteValue,
2292 framebuffer1->IsPossiblyComplete(feature_info_.get()));
2291 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); 2293 framebuffer_manager1.MarkAsComplete(framebuffer1.get());
2292 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2294 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2293 2295
2294 // Share texture with manager 2. 2296 // Share texture with manager 2.
2295 scoped_refptr<TextureRef> ref2 = 2297 scoped_refptr<TextureRef> ref2 =
2296 texture_manager2_->Consume(20, ref1->texture()); 2298 texture_manager2_->Consume(20, ref1->texture());
2297 framebuffer_manager2.CreateFramebuffer(20, 20); 2299 framebuffer_manager2.CreateFramebuffer(20, 20);
2298 scoped_refptr<Framebuffer> framebuffer2 = 2300 scoped_refptr<Framebuffer> framebuffer2 =
2299 framebuffer_manager2.GetFramebuffer(20); 2301 framebuffer_manager2.GetFramebuffer(20);
2300 framebuffer2->AttachTexture( 2302 framebuffer2->AttachTexture(
2301 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0, 0); 2303 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0, 0);
2302 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2304 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2303 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); 2305 EXPECT_EQ(kCompleteValue,
2306 framebuffer2->IsPossiblyComplete(feature_info_.get()));
2304 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); 2307 framebuffer_manager2.MarkAsComplete(framebuffer2.get());
2305 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2308 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2306 2309
2307 // Change level for texture, both FBOs should be marked incomplete 2310 // Change level for texture, both FBOs should be marked incomplete
2308 texture_manager1_->SetLevelInfo(ref1.get(), 2311 texture_manager1_->SetLevelInfo(ref1.get(),
2309 GL_TEXTURE_2D, 2312 GL_TEXTURE_2D,
2310 0, 2313 0,
2311 GL_RGBA, 2314 GL_RGBA,
2312 1, 2315 1,
2313 1, 2316 1,
2314 1, 2317 1,
2315 0, 2318 0,
2316 GL_RGBA, 2319 GL_RGBA,
2317 GL_UNSIGNED_BYTE, 2320 GL_UNSIGNED_BYTE,
2318 true); 2321 true);
2319 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2322 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2320 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); 2323 EXPECT_EQ(kCompleteValue,
2324 framebuffer1->IsPossiblyComplete(feature_info_.get()));
2321 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); 2325 framebuffer_manager1.MarkAsComplete(framebuffer1.get());
2322 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2326 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2323 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2327 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2324 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); 2328 EXPECT_EQ(kCompleteValue,
2329 framebuffer2->IsPossiblyComplete(feature_info_.get()));
2325 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); 2330 framebuffer_manager2.MarkAsComplete(framebuffer2.get());
2326 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2331 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2327 2332
2328 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, _)) 2333 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, _))
2329 .Times(2) 2334 .Times(2)
2330 .RetiresOnSaturation(); 2335 .RetiresOnSaturation();
2331 framebuffer_manager1.RemoveFramebuffer(10); 2336 framebuffer_manager1.RemoveFramebuffer(10);
2332 framebuffer_manager2.RemoveFramebuffer(20); 2337 framebuffer_manager2.RemoveFramebuffer(20);
2333 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 2338 EXPECT_CALL(*gl_, DeleteTextures(1, _))
2334 .Times(1) 2339 .Times(1)
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
2441 2446
2442 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 2447 EXPECT_CALL(*gl_, DeleteTextures(1, _))
2443 .Times(1) 2448 .Times(1)
2444 .RetiresOnSaturation(); 2449 .RetiresOnSaturation();
2445 texture_manager1_->RemoveTexture(10); 2450 texture_manager1_->RemoveTexture(10);
2446 texture_manager2_->RemoveTexture(20); 2451 texture_manager2_->RemoveTexture(20);
2447 } 2452 }
2448 2453
2449 } // namespace gles2 2454 } // namespace gles2
2450 } // namespace gpu 2455 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698