diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-09 17:24:32 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-09 17:24:32 +0000 |
commit | 573e8e3e2d975af0be8bcdddef0bcc6487ec4a1e (patch) | |
tree | ddf1fa64341e23419bc37efe0904495d0edbe256 /cc/output/software_renderer.cc | |
parent | 13b31b46110bb70a7dc9bbc8ebc4594442725dac (diff) | |
download | chromium_src-573e8e3e2d975af0be8bcdddef0bcc6487ec4a1e.zip chromium_src-573e8e3e2d975af0be8bcdddef0bcc6487ec4a1e.tar.gz chromium_src-573e8e3e2d975af0be8bcdddef0bcc6487ec4a1e.tar.bz2 |
cc: Remove most methods from RendererClient.
This class is being used to pass data to the Renderer, but it's more
clear if we just pass the data directly when we call DrawFrame.
There are also some interesting round trips where OutputSurface sets
data on the OutputSurfaceClient (LayerTreeHostImpl) which just stores
the data. Then the data is accessed through the RendererClient or
on the LTHI directly, but in places that could just query it from the
OutputSurface directly.
This patch unravels one of these loops with HasExternalStencilTest().
The remaining two getters on RendererClient are called in both DrawFrame
and in SwapBuffers, so I'm not sure if we want to pass them directly to
both functions (redundency is error-prone) or we have some other nice
idea to get rid of them.
R=enne
BUG=
Review URL: https://chromiumcodereview.appspot.com/23961003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222050 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output/software_renderer.cc')
-rw-r--r-- | cc/output/software_renderer.cc | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc index 04f8a8b..7e8f4f8 100644 --- a/cc/output/software_renderer.cc +++ b/cc/output/software_renderer.cc @@ -51,21 +51,23 @@ bool IsScaleAndIntegerTranslate(const SkMatrix& matrix) { scoped_ptr<SoftwareRenderer> SoftwareRenderer::Create( RendererClient* client, + const LayerTreeSettings* settings, OutputSurface* output_surface, ResourceProvider* resource_provider) { - return make_scoped_ptr( - new SoftwareRenderer(client, output_surface, resource_provider)); + return make_scoped_ptr(new SoftwareRenderer( + client, settings, output_surface, resource_provider)); } SoftwareRenderer::SoftwareRenderer(RendererClient* client, + const LayerTreeSettings* settings, OutputSurface* output_surface, ResourceProvider* resource_provider) - : DirectRenderer(client, output_surface, resource_provider), - visible_(true), - is_scissor_enabled_(false), - is_backbuffer_discarded_(false), - output_device_(output_surface->software_device()), - current_canvas_(NULL) { + : DirectRenderer(client, settings, output_surface, resource_provider), + visible_(true), + is_scissor_enabled_(false), + is_backbuffer_discarded_(false), + output_device_(output_surface->software_device()), + current_canvas_(NULL) { if (resource_provider_) { capabilities_.max_texture_size = resource_provider_->max_texture_size(); capabilities_.best_texture_format = @@ -76,7 +78,7 @@ SoftwareRenderer::SoftwareRenderer(RendererClient* client, capabilities_.allow_partial_texture_updates = true; capabilities_.using_partial_swap = true; - capabilities_.using_map_image = Settings().use_map_image; + capabilities_.using_map_image = settings_->use_map_image; capabilities_.using_shared_memory_resources = true; } @@ -135,7 +137,7 @@ void SoftwareRenderer::EnsureScissorTestDisabled() { void SoftwareRenderer::Finish() {} void SoftwareRenderer::BindFramebufferToOutputSurface(DrawingFrame* frame) { - DCHECK(!client_->ExternalStencilTestEnabled()); + DCHECK(!output_surface_->HasExternalStencilTest()); current_framebuffer_lock_.reset(); current_canvas_ = root_canvas_; } @@ -228,8 +230,7 @@ void SoftwareRenderer::DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) { quad->IsLeftEdge() && quad->IsBottomEdge() && quad->IsRightEdge(); - if (Settings().allow_antialiasing && - all_four_edges_are_exterior) + if (settings_->allow_antialiasing && all_four_edges_are_exterior) current_paint_.setAntiAlias(true); current_paint_.setFilterBitmap(true); } |