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

Side by Side Diff: cc/output/delegating_renderer.cc

Issue 23961003: cc: Remove most methods from RendererClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rendererclient: rebase Created 7 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 | « cc/output/delegating_renderer.h ('k') | cc/output/direct_renderer.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "cc/output/delegating_renderer.h" 5 #include "cc/output/delegating_renderer.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "cc/resources/resource_provider.h" 24 #include "cc/resources/resource_provider.h"
25 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 25 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
26 #include "third_party/khronos/GLES2/gl2ext.h" 26 #include "third_party/khronos/GLES2/gl2ext.h"
27 27
28 using WebKit::WebGraphicsContext3D; 28 using WebKit::WebGraphicsContext3D;
29 29
30 namespace cc { 30 namespace cc {
31 31
32 scoped_ptr<DelegatingRenderer> DelegatingRenderer::Create( 32 scoped_ptr<DelegatingRenderer> DelegatingRenderer::Create(
33 RendererClient* client, 33 RendererClient* client,
34 const LayerTreeSettings* settings,
34 OutputSurface* output_surface, 35 OutputSurface* output_surface,
35 ResourceProvider* resource_provider) { 36 ResourceProvider* resource_provider) {
36 scoped_ptr<DelegatingRenderer> renderer( 37 scoped_ptr<DelegatingRenderer> renderer(new DelegatingRenderer(
37 new DelegatingRenderer(client, output_surface, resource_provider)); 38 client, settings, output_surface, resource_provider));
38 if (!renderer->Initialize()) 39 if (!renderer->Initialize())
39 return scoped_ptr<DelegatingRenderer>(); 40 return scoped_ptr<DelegatingRenderer>();
40 return renderer.Pass(); 41 return renderer.Pass();
41 } 42 }
42 43
43 DelegatingRenderer::DelegatingRenderer( 44 DelegatingRenderer::DelegatingRenderer(RendererClient* client,
44 RendererClient* client, 45 const LayerTreeSettings* settings,
45 OutputSurface* output_surface, 46 OutputSurface* output_surface,
46 ResourceProvider* resource_provider) 47 ResourceProvider* resource_provider)
47 : Renderer(client), 48 : Renderer(client, settings),
48 output_surface_(output_surface), 49 output_surface_(output_surface),
49 resource_provider_(resource_provider), 50 resource_provider_(resource_provider),
50 visible_(true) { 51 visible_(true) {
51 DCHECK(resource_provider_); 52 DCHECK(resource_provider_);
52 } 53 }
53 54
54 bool DelegatingRenderer::Initialize() { 55 bool DelegatingRenderer::Initialize() {
55 capabilities_.using_partial_swap = false; 56 capabilities_.using_partial_swap = false;
56 capabilities_.max_texture_size = resource_provider_->max_texture_size(); 57 capabilities_.max_texture_size = resource_provider_->max_texture_size();
57 capabilities_.best_texture_format = resource_provider_->best_texture_format(); 58 capabilities_.best_texture_format = resource_provider_->best_texture_format();
58 capabilities_.allow_partial_texture_updates = false; 59 capabilities_.allow_partial_texture_updates = false;
59 capabilities_.using_offscreen_context3d = false; 60 capabilities_.using_offscreen_context3d = false;
60 61
61 if (!output_surface_->context_provider()) { 62 if (!output_surface_->context_provider()) {
62 // TODO(danakj): Make software compositing work. 63 // TODO(danakj): Make software compositing work.
63 return true; 64 return true;
64 } 65 }
65 66
66 WebGraphicsContext3D* context3d = 67 WebGraphicsContext3D* context3d =
67 output_surface_->context_provider()->Context3d(); 68 output_surface_->context_provider()->Context3d();
68 69
69 if (!context3d->makeContextCurrent()) 70 if (!context3d->makeContextCurrent())
70 return false; 71 return false;
71 72
72 std::string unique_context_name = base::StringPrintf( 73 std::string unique_context_name = base::StringPrintf(
73 "%s-%p", 74 "%s-%p", settings_->compositor_name.c_str(), context3d);
74 Settings().compositor_name.c_str(),
75 context3d);
76 context3d->pushGroupMarkerEXT(unique_context_name.c_str()); 75 context3d->pushGroupMarkerEXT(unique_context_name.c_str());
77 76
78 const ContextProvider::Capabilities& caps = 77 const ContextProvider::Capabilities& caps =
79 output_surface_->context_provider()->ContextCapabilities(); 78 output_surface_->context_provider()->ContextCapabilities();
80 79
81 DCHECK(!caps.iosurface || caps.texture_rectangle); 80 DCHECK(!caps.iosurface || caps.texture_rectangle);
82 81
83 capabilities_.using_set_visibility = caps.set_visibility; 82 capabilities_.using_set_visibility = caps.set_visibility;
84 capabilities_.using_egl_image = caps.egl_image_external; 83 capabilities_.using_egl_image = caps.egl_image_external;
85 capabilities_.using_map_image = 84 capabilities_.using_map_image = settings_->use_map_image && caps.map_image;
86 Settings().use_map_image && caps.map_image;
87 85
88 return true; 86 return true;
89 } 87 }
90 88
91 DelegatingRenderer::~DelegatingRenderer() {} 89 DelegatingRenderer::~DelegatingRenderer() {}
92 90
93 const RendererCapabilities& DelegatingRenderer::Capabilities() const { 91 const RendererCapabilities& DelegatingRenderer::Capabilities() const {
94 return capabilities_; 92 return capabilities_;
95 } 93 }
96 94
97 bool DelegatingRenderer::CanReadPixels() const { return false; } 95 bool DelegatingRenderer::CanReadPixels() const { return false; }
98 96
99 static ResourceProvider::ResourceId AppendToArray( 97 static ResourceProvider::ResourceId AppendToArray(
100 ResourceProvider::ResourceIdArray* array, 98 ResourceProvider::ResourceIdArray* array,
101 ResourceProvider::ResourceId id) { 99 ResourceProvider::ResourceId id) {
102 array->push_back(id); 100 array->push_back(id);
103 return id; 101 return id;
104 } 102 }
105 103
106 void DelegatingRenderer::DrawFrame( 104 void DelegatingRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order,
107 RenderPassList* render_passes_in_draw_order, 105 ContextProvider* offscreen_context_provider,
108 ContextProvider* offscreen_context_provider) { 106 float device_scale_factor,
107 bool allow_partial_swap) {
109 TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame"); 108 TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame");
110 109
111 DCHECK(!frame_for_swap_buffers_.delegated_frame_data); 110 DCHECK(!frame_for_swap_buffers_.delegated_frame_data);
112 111
113 frame_for_swap_buffers_.metadata = client_->MakeCompositorFrameMetadata(); 112 frame_for_swap_buffers_.metadata = client_->MakeCompositorFrameMetadata();
114 113
115 frame_for_swap_buffers_.delegated_frame_data = 114 frame_for_swap_buffers_.delegated_frame_data =
116 make_scoped_ptr(new DelegatedFrameData); 115 make_scoped_ptr(new DelegatedFrameData);
117 DelegatedFrameData& out_data = *frame_for_swap_buffers_.delegated_frame_data; 116 DelegatedFrameData& out_data = *frame_for_swap_buffers_.delegated_frame_data;
118 // Move the render passes and resources into the |out_frame|. 117 // Move the render passes and resources into the |out_frame|.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 stats.bytesAllocated = bytes_allocated; 189 stats.bytesAllocated = bytes_allocated;
191 stats.backbufferRequested = false; 190 stats.backbufferRequested = false;
192 context_provider->Context3d()->sendManagedMemoryStatsCHROMIUM(&stats); 191 context_provider->Context3d()->sendManagedMemoryStatsCHROMIUM(&stats);
193 } 192 }
194 193
195 void DelegatingRenderer::SetDiscardBackBufferWhenNotVisible(bool discard) { 194 void DelegatingRenderer::SetDiscardBackBufferWhenNotVisible(bool discard) {
196 // Nothing to do, we don't have a back buffer. 195 // Nothing to do, we don't have a back buffer.
197 } 196 }
198 197
199 } // namespace cc 198 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/delegating_renderer.h ('k') | cc/output/direct_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698