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

Side by Side Diff: gpu/ipc/service/direct_composition_surface_win_unittest.cc

Issue 2801163002: Deletes NativeViewGLSurfaceEGL::Initialize(gfx::VSyncProvider). (Closed)
Patch Set: fixes DirectCompositionSurfaceTest Created 3 years, 8 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/ipc/service/direct_composition_surface_win.h" 5 #include "gpu/ipc/service/direct_composition_surface_win.h"
6 #include "base/memory/weak_ptr.h" 6 #include "base/memory/weak_ptr.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/synchronization/waitable_event.h" 8 #include "base/synchronization/waitable_event.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "base/win/scoped_gdi_object.h" 10 #include "base/win/scoped_gdi_object.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 return texture; 123 return texture;
124 } 124 }
125 125
126 TEST(DirectCompositionSurfaceTest, TestMakeCurrent) { 126 TEST(DirectCompositionSurfaceTest, TestMakeCurrent) {
127 if (!CheckIfDCSupported()) 127 if (!CheckIfDCSupported())
128 return; 128 return;
129 129
130 TestImageTransportSurfaceDelegate delegate; 130 TestImageTransportSurfaceDelegate delegate;
131 131
132 scoped_refptr<DirectCompositionSurfaceWin> surface1( 132 scoped_refptr<DirectCompositionSurfaceWin> surface1(
133 new DirectCompositionSurfaceWin(delegate.AsWeakPtr(), 133 new DirectCompositionSurfaceWin(nullptr, delegate.AsWeakPtr(),
134 ui::GetHiddenWindow())); 134 ui::GetHiddenWindow()));
135 EXPECT_TRUE(surface1->Initialize()); 135 EXPECT_TRUE(surface1->Initialize());
136 surface1->SetEnableDCLayers(true); 136 surface1->SetEnableDCLayers(true);
137 137
138 scoped_refptr<gl::GLContext> context1 = gl::init::CreateGLContext( 138 scoped_refptr<gl::GLContext> context1 = gl::init::CreateGLContext(
139 nullptr, surface1.get(), gl::GLContextAttribs()); 139 nullptr, surface1.get(), gl::GLContextAttribs());
140 EXPECT_TRUE(surface1->Resize(gfx::Size(100, 100), 1.0, true)); 140 EXPECT_TRUE(surface1->Resize(gfx::Size(100, 100), 1.0, true));
141 141
142 // First SetDrawRectangle must be full size of surface. 142 // First SetDrawRectangle must be full size of surface.
143 EXPECT_FALSE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 50, 50))); 143 EXPECT_FALSE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 50, 50)));
(...skipping 11 matching lines...) Expand all
155 EXPECT_FALSE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 101, 101))); 155 EXPECT_FALSE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 101, 101)));
156 EXPECT_TRUE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 100, 100))); 156 EXPECT_TRUE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 100, 100)));
157 EXPECT_TRUE(context1->IsCurrent(surface1.get())); 157 EXPECT_TRUE(context1->IsCurrent(surface1.get()));
158 158
159 EXPECT_TRUE(surface1->Resize(gfx::Size(50, 50), 1.0, true)); 159 EXPECT_TRUE(surface1->Resize(gfx::Size(50, 50), 1.0, true));
160 EXPECT_TRUE(context1->IsCurrent(surface1.get())); 160 EXPECT_TRUE(context1->IsCurrent(surface1.get()));
161 EXPECT_TRUE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 50, 50))); 161 EXPECT_TRUE(surface1->SetDrawRectangle(gfx::Rect(0, 0, 50, 50)));
162 EXPECT_TRUE(context1->IsCurrent(surface1.get())); 162 EXPECT_TRUE(context1->IsCurrent(surface1.get()));
163 163
164 scoped_refptr<DirectCompositionSurfaceWin> surface2( 164 scoped_refptr<DirectCompositionSurfaceWin> surface2(
165 new DirectCompositionSurfaceWin(delegate.AsWeakPtr(), 165 new DirectCompositionSurfaceWin(nullptr, delegate.AsWeakPtr(),
166 ui::GetHiddenWindow())); 166 ui::GetHiddenWindow()));
167 EXPECT_TRUE(surface2->Initialize()); 167 EXPECT_TRUE(surface2->Initialize());
168 168
169 scoped_refptr<gl::GLContext> context2 = gl::init::CreateGLContext( 169 scoped_refptr<gl::GLContext> context2 = gl::init::CreateGLContext(
170 nullptr, surface2.get(), gl::GLContextAttribs()); 170 nullptr, surface2.get(), gl::GLContextAttribs());
171 surface2->SetEnableDCLayers(true); 171 surface2->SetEnableDCLayers(true);
172 EXPECT_TRUE(context2->MakeCurrent(surface2.get())); 172 EXPECT_TRUE(context2->MakeCurrent(surface2.get()));
173 EXPECT_TRUE(surface2->Resize(gfx::Size(100, 100), 1.0, true)); 173 EXPECT_TRUE(surface2->Resize(gfx::Size(100, 100), 1.0, true));
174 // The previous IDCompositionSurface should be suspended when another 174 // The previous IDCompositionSurface should be suspended when another
175 // surface is being drawn to. 175 // surface is being drawn to.
(...skipping 11 matching lines...) Expand all
187 } 187 }
188 188
189 // Tests that switching using EnableDCLayers works. 189 // Tests that switching using EnableDCLayers works.
190 TEST(DirectCompositionSurfaceTest, DXGIDCLayerSwitch) { 190 TEST(DirectCompositionSurfaceTest, DXGIDCLayerSwitch) {
191 if (!CheckIfDCSupported()) 191 if (!CheckIfDCSupported())
192 return; 192 return;
193 193
194 TestImageTransportSurfaceDelegate delegate; 194 TestImageTransportSurfaceDelegate delegate;
195 195
196 scoped_refptr<DirectCompositionSurfaceWin> surface( 196 scoped_refptr<DirectCompositionSurfaceWin> surface(
197 new DirectCompositionSurfaceWin(delegate.AsWeakPtr(), 197 new DirectCompositionSurfaceWin(nullptr, delegate.AsWeakPtr(),
198 ui::GetHiddenWindow())); 198 ui::GetHiddenWindow()));
199 EXPECT_TRUE(surface->Initialize()); 199 EXPECT_TRUE(surface->Initialize());
200 200
201 scoped_refptr<gl::GLContext> context = 201 scoped_refptr<gl::GLContext> context =
202 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs()); 202 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs());
203 EXPECT_TRUE(surface->Resize(gfx::Size(100, 100), 1.0, true)); 203 EXPECT_TRUE(surface->Resize(gfx::Size(100, 100), 1.0, true));
204 EXPECT_FALSE(surface->swap_chain()); 204 EXPECT_FALSE(surface->swap_chain());
205 205
206 // First SetDrawRectangle must be full size of surface for DXGI 206 // First SetDrawRectangle must be full size of surface for DXGI
207 // swapchain. 207 // swapchain.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 } 241 }
242 242
243 // Ensure that the swapchain's alpha is correct. 243 // Ensure that the swapchain's alpha is correct.
244 TEST(DirectCompositionSurfaceTest, SwitchAlpha) { 244 TEST(DirectCompositionSurfaceTest, SwitchAlpha) {
245 if (!CheckIfDCSupported()) 245 if (!CheckIfDCSupported())
246 return; 246 return;
247 247
248 TestImageTransportSurfaceDelegate delegate; 248 TestImageTransportSurfaceDelegate delegate;
249 249
250 scoped_refptr<DirectCompositionSurfaceWin> surface( 250 scoped_refptr<DirectCompositionSurfaceWin> surface(
251 new DirectCompositionSurfaceWin(delegate.AsWeakPtr(), 251 new DirectCompositionSurfaceWin(nullptr, delegate.AsWeakPtr(),
252 ui::GetHiddenWindow())); 252 ui::GetHiddenWindow()));
253 EXPECT_TRUE(surface->Initialize()); 253 EXPECT_TRUE(surface->Initialize());
254 254
255 scoped_refptr<gl::GLContext> context = 255 scoped_refptr<gl::GLContext> context =
256 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs()); 256 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs());
257 EXPECT_TRUE(surface->Resize(gfx::Size(100, 100), 1.0, true)); 257 EXPECT_TRUE(surface->Resize(gfx::Size(100, 100), 1.0, true));
258 EXPECT_FALSE(surface->swap_chain()); 258 EXPECT_FALSE(surface->swap_chain());
259 259
260 EXPECT_TRUE(surface->SetDrawRectangle(gfx::Rect(0, 0, 100, 100))); 260 EXPECT_TRUE(surface->SetDrawRectangle(gfx::Rect(0, 0, 100, 100)));
261 base::win::ScopedComPtr<IDXGISwapChain1> swap_chain = surface->swap_chain(); 261 base::win::ScopedComPtr<IDXGISwapChain1> swap_chain = surface->swap_chain();
(...skipping 20 matching lines...) Expand all
282 DestroySurface(std::move(surface)); 282 DestroySurface(std::move(surface));
283 } 283 }
284 284
285 // Ensure that the GLImage isn't presented again unless it changes. 285 // Ensure that the GLImage isn't presented again unless it changes.
286 TEST(DirectCompositionSurfaceTest, NoPresentTwice) { 286 TEST(DirectCompositionSurfaceTest, NoPresentTwice) {
287 if (!CheckIfDCSupported()) 287 if (!CheckIfDCSupported())
288 return; 288 return;
289 289
290 TestImageTransportSurfaceDelegate delegate; 290 TestImageTransportSurfaceDelegate delegate;
291 scoped_refptr<DirectCompositionSurfaceWin> surface( 291 scoped_refptr<DirectCompositionSurfaceWin> surface(
292 new DirectCompositionSurfaceWin(delegate.AsWeakPtr(), 292 new DirectCompositionSurfaceWin(nullptr, delegate.AsWeakPtr(),
293 ui::GetHiddenWindow())); 293 ui::GetHiddenWindow()));
294 EXPECT_TRUE(surface->Initialize()); 294 EXPECT_TRUE(surface->Initialize());
295 surface->SetEnableDCLayers(true); 295 surface->SetEnableDCLayers(true);
296 gfx::Size window_size(100, 100); 296 gfx::Size window_size(100, 100);
297 297
298 scoped_refptr<gl::GLContext> context = 298 scoped_refptr<gl::GLContext> context =
299 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs()); 299 gl::init::CreateGLContext(nullptr, surface.get(), gl::GLContextAttribs());
300 300
301 base::win::ScopedComPtr<ID3D11Device> d3d11_device = 301 base::win::ScopedComPtr<ID3D11Device> d3d11_device =
302 gl::QueryD3D11DeviceObjectFromANGLE(); 302 gl::QueryD3D11DeviceObjectFromANGLE();
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 389
390 class DirectCompositionPixelTest : public testing::Test { 390 class DirectCompositionPixelTest : public testing::Test {
391 public: 391 public:
392 DirectCompositionPixelTest() 392 DirectCompositionPixelTest()
393 : window_(&platform_delegate_, gfx::Rect(0, 0, 100, 100)) {} 393 : window_(&platform_delegate_, gfx::Rect(0, 0, 100, 100)) {}
394 394
395 protected: 395 protected:
396 void InitializeSurface() { 396 void InitializeSurface() {
397 static_cast<ui::PlatformWindow*>(&window_)->Show(); 397 static_cast<ui::PlatformWindow*>(&window_)->Show();
398 398
399 surface_ = 399 surface_ = new DirectCompositionSurfaceWin(nullptr, delegate_.AsWeakPtr(),
400 new DirectCompositionSurfaceWin(delegate_.AsWeakPtr(), window_.hwnd()); 400 window_.hwnd());
401 EXPECT_TRUE(surface_->Initialize()); 401 EXPECT_TRUE(surface_->Initialize());
402 } 402 }
403 403
404 void PixelTestSwapChain(bool layers_enabled) { 404 void PixelTestSwapChain(bool layers_enabled) {
405 if (!CheckIfDCSupported()) 405 if (!CheckIfDCSupported())
406 return; 406 return;
407 407
408 InitializeSurface(); 408 InitializeSurface();
409 409
410 surface_->SetEnableDCLayers(layers_enabled); 410 surface_->SetEnableDCLayers(layers_enabled);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 EXPECT_TRUE(AreColorsSimilar(expected_color, actual_color)) 495 EXPECT_TRUE(AreColorsSimilar(expected_color, actual_color))
496 << std::hex << "Expected " << expected_color << " Actual " 496 << std::hex << "Expected " << expected_color << " Actual "
497 << actual_color; 497 << actual_color;
498 498
499 context = nullptr; 499 context = nullptr;
500 DestroySurface(std::move(surface_)); 500 DestroySurface(std::move(surface_));
501 } 501 }
502 502
503 } // namespace 503 } // namespace
504 } // namespace gpu 504 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/ipc/service/direct_composition_surface_win.cc ('k') | gpu/ipc/service/image_transport_surface_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698