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

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

Issue 7273073: Animated Rotation (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Address reviewer comments 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
« no previous file with comments | « ui/gfx/compositor/compositor_stub.cc ('k') | ui/gfx/interpolated_transform.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
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.
100 ID3D10Buffer* GetTextureIndexBuffer(); 100 ID3D10Buffer* GetTextureIndexBuffer();
101 101
102 // Compositor: 102 // Compositor:
103 virtual Texture* CreateTexture() OVERRIDE; 103 virtual Texture* CreateTexture() OVERRIDE;
104 virtual void NotifyStart() OVERRIDE;
105 virtual void NotifyEnd() OVERRIDE;
106 virtual void Blur(const gfx::Rect& bounds) OVERRIDE; 104 virtual void Blur(const gfx::Rect& bounds) OVERRIDE;
107 virtual void SchedulePaint() OVERRIDE; 105 virtual void SchedulePaint() OVERRIDE;
108 106
109 protected: 107 protected:
108 virtual void OnNotifyStart() OVERRIDE;
109 virtual void OnNotifyEnd() OVERRIDE;
110 virtual void OnWidgetSizeChanged() OVERRIDE; 110 virtual void OnWidgetSizeChanged() OVERRIDE;
111 111
112 private: 112 private:
113 enum Direction { 113 enum Direction {
114 HORIZONTAL, 114 HORIZONTAL,
115 VERTICAL 115 VERTICAL
116 }; 116 };
117 117
118 ~CompositorWin(); 118 ~CompositorWin();
119 119
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 } 381 }
382 382
383 ID3D10Buffer* CompositorWin::GetTextureIndexBuffer() { 383 ID3D10Buffer* CompositorWin::GetTextureIndexBuffer() {
384 return index_buffer_.get(); 384 return index_buffer_.get();
385 } 385 }
386 386
387 Texture* CompositorWin::CreateTexture() { 387 Texture* CompositorWin::CreateTexture() {
388 return new ViewTexture(this, device_.get(), fx_.get()); 388 return new ViewTexture(this, device_.get(), fx_.get());
389 } 389 }
390 390
391 void CompositorWin::NotifyStart() { 391 void CompositorWin::OnNotifyStart() {
392 ID3D10RenderTargetView* target_view = main_render_target_view_.get(); 392 ID3D10RenderTargetView* target_view = main_render_target_view_.get();
393 device_->OMSetRenderTargets(1, &target_view, depth_stencil_view_.get()); 393 device_->OMSetRenderTargets(1, &target_view, depth_stencil_view_.get());
394 394
395 // Clear the background and stencil view. 395 // Clear the background and stencil view.
396 device_->ClearRenderTargetView(target_view, 396 device_->ClearRenderTargetView(target_view,
397 D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f)); 397 D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f));
398 device_->ClearDepthStencilView( 398 device_->ClearDepthStencilView(
399 depth_stencil_view_.get(), D3D10_CLEAR_DEPTH|D3D10_CLEAR_STENCIL, 399 depth_stencil_view_.get(), D3D10_CLEAR_DEPTH|D3D10_CLEAR_STENCIL,
400 1.0f, 0); 400 1.0f, 0);
401 401
402 // TODO: these steps may not be necessary each time through. 402 // TODO: these steps may not be necessary each time through.
403 device_->OMSetDepthStencilState(0, 0); 403 device_->OMSetDepthStencilState(0, 0);
404 float blend_factors[] = {0.0f, 0.0f, 0.0f, 0.0f}; 404 float blend_factors[] = {0.0f, 0.0f, 0.0f, 0.0f};
405 device_->OMSetBlendState(0, blend_factors, 0xffffffff); 405 device_->OMSetBlendState(0, blend_factors, 0xffffffff);
406 device_->IASetInputLayout(vertex_layout_.get()); 406 device_->IASetInputLayout(vertex_layout_.get());
407 device_->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST); 407 device_->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
408 } 408 }
409 409
410 void CompositorWin::NotifyEnd() { 410 void CompositorWin::OnNotifyEnd() {
411 // Copy from main_render_target_view_| (where all are rendering was done) back 411 // Copy from main_render_target_view_| (where all are rendering was done) back
412 // to |dest_render_target_view_|. 412 // to |dest_render_target_view_|.
413 ID3D10RenderTargetView* target_view = dest_render_target_view_.get(); 413 ID3D10RenderTargetView* target_view = dest_render_target_view_.get();
414 device_->OMSetRenderTargets(1, &target_view, NULL); 414 device_->OMSetRenderTargets(1, &target_view, NULL);
415 device_->ClearRenderTargetView(target_view, 415 device_->ClearRenderTargetView(target_view,
416 D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f)); 416 D3DXCOLOR(0.0f, 0.0f, 0.0f, 0.0f));
417 RETURN_IF_FAILED( 417 RETURN_IF_FAILED(
418 fx_->GetVariableByName("textureMap")->AsShaderResource()-> 418 fx_->GetVariableByName("textureMap")->AsShaderResource()->
419 SetResource(main_texture_shader_view_.get())); 419 SetResource(main_texture_shader_view_.get()));
420 D3DXMATRIX identify_matrix; 420 D3DXMATRIX identify_matrix;
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
799 799
800 // static 800 // static
801 Compositor* Compositor::Create(gfx::AcceleratedWidget widget, 801 Compositor* Compositor::Create(gfx::AcceleratedWidget widget,
802 const gfx::Size& size) { 802 const gfx::Size& size) {
803 CompositorWin* compositor = new CompositorWin(widget, size); 803 CompositorWin* compositor = new CompositorWin(widget, size);
804 compositor->Init(); 804 compositor->Init();
805 return compositor; 805 return compositor;
806 } 806 }
807 807
808 } // namespace ui 808 } // namespace ui
OLDNEW
« no previous file with comments | « ui/gfx/compositor/compositor_stub.cc ('k') | ui/gfx/interpolated_transform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698