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

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: Check that framebuffers really are supported and add tests 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, framebuffer1->IsPossiblyComplete(false));
2276 2276
2277 // Make FBO complete in manager 1. 2277 // Make FBO complete in manager 1.
2278 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); 2278 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D);
2279 texture_manager1_->SetLevelInfo(ref1.get(), 2279 texture_manager1_->SetLevelInfo(ref1.get(),
2280 GL_TEXTURE_2D, 2280 GL_TEXTURE_2D,
2281 0, 2281 0,
2282 GL_RGBA, 2282 GL_RGBA,
2283 1, 2283 1,
2284 1, 2284 1,
2285 1, 2285 1,
2286 0, 2286 0,
2287 GL_RGBA, 2287 GL_RGBA,
2288 GL_UNSIGNED_BYTE, 2288 GL_UNSIGNED_BYTE,
2289 true); 2289 true);
2290 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); 2290 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete(false));
2291 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); 2291 framebuffer_manager1.MarkAsComplete(framebuffer1.get());
2292 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2292 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2293 2293
2294 // Share texture with manager 2. 2294 // Share texture with manager 2.
2295 scoped_refptr<TextureRef> ref2 = 2295 scoped_refptr<TextureRef> ref2 =
2296 texture_manager2_->Consume(20, ref1->texture()); 2296 texture_manager2_->Consume(20, ref1->texture());
2297 framebuffer_manager2.CreateFramebuffer(20, 20); 2297 framebuffer_manager2.CreateFramebuffer(20, 20);
2298 scoped_refptr<Framebuffer> framebuffer2 = 2298 scoped_refptr<Framebuffer> framebuffer2 =
2299 framebuffer_manager2.GetFramebuffer(20); 2299 framebuffer_manager2.GetFramebuffer(20);
2300 framebuffer2->AttachTexture( 2300 framebuffer2->AttachTexture(
2301 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0, 0); 2301 GL_COLOR_ATTACHMENT0, ref2.get(), GL_TEXTURE_2D, 0, 0);
2302 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2302 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2303 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); 2303 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete(false));
2304 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); 2304 framebuffer_manager2.MarkAsComplete(framebuffer2.get());
2305 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2305 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2306 2306
2307 // Change level for texture, both FBOs should be marked incomplete 2307 // Change level for texture, both FBOs should be marked incomplete
2308 texture_manager1_->SetLevelInfo(ref1.get(), 2308 texture_manager1_->SetLevelInfo(ref1.get(),
2309 GL_TEXTURE_2D, 2309 GL_TEXTURE_2D,
2310 0, 2310 0,
2311 GL_RGBA, 2311 GL_RGBA,
2312 1, 2312 1,
2313 1, 2313 1,
2314 1, 2314 1,
2315 0, 2315 0,
2316 GL_RGBA, 2316 GL_RGBA,
2317 GL_UNSIGNED_BYTE, 2317 GL_UNSIGNED_BYTE,
2318 true); 2318 true);
2319 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2319 EXPECT_FALSE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2320 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete()); 2320 EXPECT_EQ(kCompleteValue, framebuffer1->IsPossiblyComplete(false));
2321 framebuffer_manager1.MarkAsComplete(framebuffer1.get()); 2321 framebuffer_manager1.MarkAsComplete(framebuffer1.get());
2322 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get())); 2322 EXPECT_TRUE(framebuffer_manager1.IsComplete(framebuffer1.get()));
2323 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2323 EXPECT_FALSE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2324 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete()); 2324 EXPECT_EQ(kCompleteValue, framebuffer2->IsPossiblyComplete(false));
2325 framebuffer_manager2.MarkAsComplete(framebuffer2.get()); 2325 framebuffer_manager2.MarkAsComplete(framebuffer2.get());
2326 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get())); 2326 EXPECT_TRUE(framebuffer_manager2.IsComplete(framebuffer2.get()));
2327 2327
2328 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, _)) 2328 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, _))
2329 .Times(2) 2329 .Times(2)
2330 .RetiresOnSaturation(); 2330 .RetiresOnSaturation();
2331 framebuffer_manager1.RemoveFramebuffer(10); 2331 framebuffer_manager1.RemoveFramebuffer(10);
2332 framebuffer_manager2.RemoveFramebuffer(20); 2332 framebuffer_manager2.RemoveFramebuffer(20);
2333 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 2333 EXPECT_CALL(*gl_, DeleteTextures(1, _))
2334 .Times(1) 2334 .Times(1)
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
2441 2441
2442 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 2442 EXPECT_CALL(*gl_, DeleteTextures(1, _))
2443 .Times(1) 2443 .Times(1)
2444 .RetiresOnSaturation(); 2444 .RetiresOnSaturation();
2445 texture_manager1_->RemoveTexture(10); 2445 texture_manager1_->RemoveTexture(10);
2446 texture_manager2_->RemoveTexture(20); 2446 texture_manager2_->RemoveTexture(20);
2447 } 2447 }
2448 2448
2449 } // namespace gles2 2449 } // namespace gles2
2450 } // namespace gpu 2450 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698