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

Side by Side Diff: ui/gfx/compositor/compositor_win.cc

Issue 7770002: gfx::Compositor: SchedulePaint. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "ui/gfx/compositor/compositor.h" 5 #include "ui/gfx/compositor/compositor.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <d3dx10.h> 8 #include <d3dx10.h>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 ScopedComPtr<ID3D10Texture2D> texture_; 79 ScopedComPtr<ID3D10Texture2D> texture_;
80 ScopedComPtr<ID3D10ShaderResourceView> shader_view_; 80 ScopedComPtr<ID3D10ShaderResourceView> shader_view_;
81 ScopedComPtr<ID3D10Buffer> vertex_buffer_; 81 ScopedComPtr<ID3D10Buffer> vertex_buffer_;
82 82
83 DISALLOW_COPY_AND_ASSIGN(ViewTexture); 83 DISALLOW_COPY_AND_ASSIGN(ViewTexture);
84 }; 84 };
85 85
86 // D3D 10 Compositor implementation. 86 // D3D 10 Compositor implementation.
87 class CompositorWin : public Compositor { 87 class CompositorWin : public Compositor {
88 public: 88 public:
89 CompositorWin(gfx::AcceleratedWidget widget, 89 CompositorWin(CompositorOwner* owner,
90 const gfx::Size& size); 90 const gfx::Size& size);
91 91
92 void Init(); 92 void Init();
93 93
94 // Invoked to update the perspective needed by this texture. |transform| is 94 // Invoked to update the perspective needed by this texture. |transform| is
95 // the transform for the texture, and |size| the size of the texture. 95 // the transform for the texture, and |size| the size of the texture.
96 void UpdatePerspective(const ui::Transform& transform, 96 void UpdatePerspective(const ui::Transform& transform,
97 const gfx::Size& view_size); 97 const gfx::Size& view_size);
98 98
99 // Returns the index buffer used for drawing a texture. 99 // Returns the index buffer used for drawing a texture.
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 buffer_desc.ByteWidth = sizeof(Vertex) * ARRAYSIZE_UNSAFE(vertices); 314 buffer_desc.ByteWidth = sizeof(Vertex) * ARRAYSIZE_UNSAFE(vertices);
315 buffer_desc.BindFlags = D3D10_BIND_VERTEX_BUFFER; 315 buffer_desc.BindFlags = D3D10_BIND_VERTEX_BUFFER;
316 buffer_desc.CPUAccessFlags = 0; 316 buffer_desc.CPUAccessFlags = 0;
317 buffer_desc.MiscFlags = 0; 317 buffer_desc.MiscFlags = 0;
318 D3D10_SUBRESOURCE_DATA init_data; 318 D3D10_SUBRESOURCE_DATA init_data;
319 init_data.pSysMem = vertices; 319 init_data.pSysMem = vertices;
320 RETURN_IF_FAILED(device_->CreateBuffer(&buffer_desc, &init_data, 320 RETURN_IF_FAILED(device_->CreateBuffer(&buffer_desc, &init_data,
321 vertex_buffer_.Receive())); 321 vertex_buffer_.Receive()));
322 } 322 }
323 323
324 CompositorWin::CompositorWin(gfx::AcceleratedWidget widget, 324 CompositorWin::CompositorWin(CompositorOwner* owner,
325 const gfx::Size& size) 325 const gfx::Size& size)
326 : Compositor(size), 326 : Compositor(owner, size),
327 host_(widget), 327 host_(owner->GetAcceleratedWidget()),
328 technique_(NULL) { 328 technique_(NULL) {
329 } 329 }
330 330
331 void CompositorWin::Init() { 331 void CompositorWin::Init() {
332 CreateDevice(); 332 CreateDevice();
333 LoadEffects(); 333 LoadEffects();
334 OnWidgetSizeChanged(); 334 OnWidgetSizeChanged();
335 InitVertexLayout(); 335 InitVertexLayout();
336 CreateVertexBuffer(); 336 CreateVertexBuffer();
337 CreateIndexBuffer(); 337 CreateIndexBuffer();
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 if (error_code != S_OK) { 789 if (error_code != S_OK) {
790 Errored(error_code); 790 Errored(error_code);
791 return NULL; 791 return NULL;
792 } 792 }
793 return vertex_buffer; 793 return vertex_buffer;
794 } 794 }
795 795
796 } // namespace 796 } // namespace
797 797
798 // static 798 // static
799 Compositor* Compositor::Create(gfx::AcceleratedWidget widget, 799 Compositor* Compositor::Create(CompositorOwner* owner,
800 const gfx::Size& size) { 800 const gfx::Size& size) {
801 CompositorWin* compositor = new CompositorWin(widget, size); 801 CompositorWin* compositor = new CompositorWin(owner, size);
802 compositor->Init(); 802 compositor->Init();
803 return compositor; 803 return compositor;
804 } 804 }
805 805
806 } // namespace ui 806 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698