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

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

Issue 510553002: Teach the native viewport service to draw a Surface into itself (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
« no previous file with comments | « mojo/examples/sample_app/sample_app.cc ('k') | mojo/examples/surfaces_app/surfaces_app.cc » ('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 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 25 matching lines...) Expand all
36 void Embedder::ProduceFrame(cc::SurfaceId child_one, 36 void Embedder::ProduceFrame(cc::SurfaceId child_one,
37 cc::SurfaceId child_two, 37 cc::SurfaceId child_two,
38 const gfx::Size& child_size, 38 const gfx::Size& child_size,
39 const gfx::Size& size, 39 const gfx::Size& size,
40 int offset) { 40 int offset) {
41 gfx::Rect rect(size); 41 gfx::Rect rect(size);
42 RenderPassId pass_id(1, 1); 42 RenderPassId pass_id(1, 1);
43 scoped_ptr<RenderPass> pass = RenderPass::Create(); 43 scoped_ptr<RenderPass> pass = RenderPass::Create();
44 pass->SetNew(pass_id, rect, rect, gfx::Transform()); 44 pass->SetNew(pass_id, rect, rect, gfx::Transform());
45 45
46 gfx::Transform one_transform; 46 if (!child_one.is_null()) {
47 one_transform.Translate(10 + child_size.width() / 2, 47 gfx::Transform one_transform;
48 50 + child_size.height() / 2); 48 one_transform.Translate(10 + child_size.width() / 2,
49 one_transform.Translate(0, offset); 49 50 + child_size.height() / 2);
50 one_transform.Translate(-child_size.width() / 2, -child_size.height() / 2); 50 one_transform.Translate(0, offset);
51 CreateAndAppendSimpleSharedQuadState(pass.get(), one_transform, size); 51 one_transform.Translate(-child_size.width() / 2, -child_size.height() / 2);
52 CreateAndAppendSimpleSharedQuadState(pass.get(), one_transform, size);
52 53
53 SurfaceDrawQuad* surface_one_quad = 54 SurfaceDrawQuad* surface_one_quad =
54 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 55 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
55 gfx::Rect one_rect(child_size); 56 gfx::Rect one_rect(child_size);
56 surface_one_quad->SetNew( 57 surface_one_quad->SetNew(
57 pass->shared_quad_state_list.back(), one_rect, one_rect, child_one); 58 pass->shared_quad_state_list.back(), one_rect, one_rect, child_one);
59 }
58 60
59 gfx::Transform two_transform; 61 if (!child_two.is_null()) {
60 two_transform.Translate(10 + size.width() / 2 + child_size.width() / 2, 62 gfx::Transform two_transform;
61 50 + child_size.height() / 2); 63 two_transform.Translate(10 + size.width() / 2 + child_size.width() / 2,
62 two_transform.Translate(0, 200 - offset); 64 50 + child_size.height() / 2);
63 two_transform.Translate(-child_size.width() / 2, -child_size.height() / 2); 65 two_transform.Translate(0, 200 - offset);
64 CreateAndAppendSimpleSharedQuadState(pass.get(), two_transform, size); 66 two_transform.Translate(-child_size.width() / 2, -child_size.height() / 2);
67 CreateAndAppendSimpleSharedQuadState(pass.get(), two_transform, size);
65 68
66 SurfaceDrawQuad* surface_two_quad = 69 SurfaceDrawQuad* surface_two_quad =
67 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 70 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
68 gfx::Rect two_rect(child_size); 71 gfx::Rect two_rect(child_size);
69 surface_two_quad->SetNew( 72 surface_two_quad->SetNew(
70 pass->shared_quad_state_list.back(), two_rect, two_rect, child_two); 73 pass->shared_quad_state_list.back(), two_rect, two_rect, child_two);
74 }
71 75
72 CreateAndAppendSimpleSharedQuadState(pass.get(), gfx::Transform(), size); 76 CreateAndAppendSimpleSharedQuadState(pass.get(), gfx::Transform(), size);
73 SolidColorDrawQuad* color_quad = 77 SolidColorDrawQuad* color_quad =
74 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 78 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
75 bool force_anti_aliasing_off = false; 79 bool force_anti_aliasing_off = false;
76 color_quad->SetNew(pass->shared_quad_state_list.back(), 80 color_quad->SetNew(pass->shared_quad_state_list.back(),
77 rect, 81 rect,
78 rect, 82 rect,
79 SK_ColorYELLOW, 83 SK_ColorYELLOW,
80 force_anti_aliasing_off); 84 force_anti_aliasing_off);
81 85
82 scoped_ptr<DelegatedFrameData> delegated_frame_data(new DelegatedFrameData); 86 scoped_ptr<DelegatedFrameData> delegated_frame_data(new DelegatedFrameData);
83 delegated_frame_data->render_pass_list.push_back(pass.Pass()); 87 delegated_frame_data->render_pass_list.push_back(pass.Pass());
84 88
85 scoped_ptr<CompositorFrame> frame(new CompositorFrame); 89 scoped_ptr<CompositorFrame> frame(new CompositorFrame);
86 frame->delegated_frame_data = delegated_frame_data.Pass(); 90 frame->delegated_frame_data = delegated_frame_data.Pass();
87 91
88 surface_->SubmitFrame(mojo::SurfaceId::From(id_), 92 surface_->SubmitFrame(mojo::SurfaceId::From(id_),
89 mojo::Frame::From(*frame)); 93 mojo::Frame::From(*frame));
90 } 94 }
91 95
92 } // namespace examples 96 } // namespace examples
93 } // namespace mojo 97 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/examples/sample_app/sample_app.cc ('k') | mojo/examples/surfaces_app/surfaces_app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698