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

Side by Side Diff: mojo/examples/surfaces_app/embedder.cc

Issue 451753003: Mojo multiple command buffer support and sample (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "mojo/examples/surfaces_app/embedder.h" 5 #include "mojo/examples/surfaces_app/embedder.h"
6 6
7 #include "cc/output/compositor_frame.h" 7 #include "cc/output/compositor_frame.h"
8 #include "cc/output/delegated_frame_data.h" 8 #include "cc/output/delegated_frame_data.h"
9 #include "cc/quads/render_pass.h" 9 #include "cc/quads/render_pass.h"
10 #include "cc/quads/solid_color_draw_quad.h" 10 #include "cc/quads/solid_color_draw_quad.h"
(...skipping 18 matching lines...) Expand all
29 Embedder::Embedder(Surface* surface) : surface_(surface) { 29 Embedder::Embedder(Surface* surface) : surface_(surface) {
30 } 30 }
31 31
32 Embedder::~Embedder() { 32 Embedder::~Embedder() {
33 } 33 }
34 34
35 void Embedder::ProduceFrame(cc::SurfaceId child_one, 35 void Embedder::ProduceFrame(cc::SurfaceId child_one,
36 cc::SurfaceId child_two, 36 cc::SurfaceId child_two,
37 const gfx::Size& child_size, 37 const gfx::Size& child_size,
38 const gfx::Size& size, 38 const gfx::Size& size,
39 double rotation_degrees) { 39 int offset) {
40 gfx::Rect rect(size); 40 gfx::Rect rect(size);
41 RenderPass::Id pass_id(1, 1); 41 RenderPass::Id pass_id(1, 1);
42 scoped_ptr<RenderPass> pass = RenderPass::Create(); 42 scoped_ptr<RenderPass> pass = RenderPass::Create();
43 pass->SetNew(pass_id, rect, rect, gfx::Transform()); 43 pass->SetNew(pass_id, rect, rect, gfx::Transform());
44 44
45 gfx::Transform one_transform; 45 gfx::Transform one_transform;
46 one_transform.Translate(10 + child_size.width() / 2, 46 one_transform.Translate(10 + child_size.width() / 2,
47 50 + child_size.height() / 2); 47 50 + child_size.height() / 2);
48 one_transform.Rotate(rotation_degrees); 48 one_transform.Translate(0, offset);
49 one_transform.Translate(-child_size.width() / 2, -child_size.height() / 2); 49 one_transform.Translate(-child_size.width() / 2, -child_size.height() / 2);
50 CreateAndAppendSimpleSharedQuadState(pass.get(), one_transform, size); 50 CreateAndAppendSimpleSharedQuadState(pass.get(), one_transform, size);
51 51
52 SurfaceDrawQuad* surface_one_quad = 52 SurfaceDrawQuad* surface_one_quad =
53 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 53 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
54 gfx::Rect one_rect(child_size); 54 gfx::Rect one_rect(child_size);
55 surface_one_quad->SetNew( 55 surface_one_quad->SetNew(
56 pass->shared_quad_state_list.back(), one_rect, one_rect, child_one); 56 pass->shared_quad_state_list.back(), one_rect, one_rect, child_one);
57 57
58 gfx::Transform two_transform; 58 gfx::Transform two_transform;
59 two_transform.Translate(10 + size.width() / 2 + child_size.width() / 2, 59 two_transform.Translate(10 + size.width() / 2 + child_size.width() / 2,
60 50 + child_size.height() / 2); 60 50 + child_size.height() / 2);
61 two_transform.Rotate(-rotation_degrees * 0.76); 61 two_transform.Translate(0, 200 - offset);
62 two_transform.Translate(-child_size.width() / 2, -child_size.height() / 2); 62 two_transform.Translate(-child_size.width() / 2, -child_size.height() / 2);
63 CreateAndAppendSimpleSharedQuadState(pass.get(), two_transform, size); 63 CreateAndAppendSimpleSharedQuadState(pass.get(), two_transform, size);
64 64
65 SurfaceDrawQuad* surface_two_quad = 65 SurfaceDrawQuad* surface_two_quad =
66 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 66 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
67 gfx::Rect two_rect(child_size); 67 gfx::Rect two_rect(child_size);
68 surface_two_quad->SetNew( 68 surface_two_quad->SetNew(
69 pass->shared_quad_state_list.back(), two_rect, two_rect, child_two); 69 pass->shared_quad_state_list.back(), two_rect, two_rect, child_two);
70 70
71 CreateAndAppendSimpleSharedQuadState(pass.get(), gfx::Transform(), size); 71 CreateAndAppendSimpleSharedQuadState(pass.get(), gfx::Transform(), size);
(...skipping 11 matching lines...) Expand all
83 83
84 scoped_ptr<CompositorFrame> frame(new CompositorFrame); 84 scoped_ptr<CompositorFrame> frame(new CompositorFrame);
85 frame->delegated_frame_data = delegated_frame_data.Pass(); 85 frame->delegated_frame_data = delegated_frame_data.Pass();
86 86
87 surface_->SubmitFrame(mojo::SurfaceId::From(id_), 87 surface_->SubmitFrame(mojo::SurfaceId::From(id_),
88 mojo::Frame::From(*frame)); 88 mojo::Frame::From(*frame));
89 } 89 }
90 90
91 } // namespace examples 91 } // namespace examples
92 } // namespace mojo 92 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698