diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-02 23:47:59 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-02 23:47:59 +0000 |
commit | ffbb221c8dc7acd0dbe202d569c3d4b9a62fafb0 (patch) | |
tree | 4ba55c15fbd05cb32da487e4647610f9cf2c96ad /cc/layers/nine_patch_layer_impl.cc | |
parent | ff875be5f3f3db4cdc5bbfe4a014580867c7a044 (diff) | |
download | chromium_src-ffbb221c8dc7acd0dbe202d569c3d4b9a62fafb0.zip chromium_src-ffbb221c8dc7acd0dbe202d569c3d4b9a62fafb0.tar.gz chromium_src-ffbb221c8dc7acd0dbe202d569c3d4b9a62fafb0.tar.bz2 |
Skip drawing unsupported layers in forced software mode
Only draw PictureLayer, SolidColorLayer, and ScrollbarLayer
if using solid color scrollbars.
Changes contract of LayerImpl WillDraw/AppendQuads/DidDraw.
Now WillDraw returns a bool, and AppendQuads/DidDraw will be
skipped if it returns false.
BUG=245047
Review URL: https://chromiumcodereview.appspot.com/16211002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203637 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers/nine_patch_layer_impl.cc')
-rw-r--r-- | cc/layers/nine_patch_layer_impl.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cc/layers/nine_patch_layer_impl.cc b/cc/layers/nine_patch_layer_impl.cc index 7799735..ba60512 100644 --- a/cc/layers/nine_patch_layer_impl.cc +++ b/cc/layers/nine_patch_layer_impl.cc @@ -55,10 +55,16 @@ void NinePatchLayerImpl::SetLayout(gfx::Size image_bounds, gfx::Rect aperture) { image_aperture_ = aperture; } +bool NinePatchLayerImpl::WillDraw(DrawMode draw_mode, + ResourceProvider* resource_provider) { + if (!resource_id_ || draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) + return false; + return LayerImpl::WillDraw(draw_mode, resource_provider); +} + void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink, AppendQuadsData* append_quads_data) { - if (!resource_id_) - return; + DCHECK(resource_id_); SharedQuadState* shared_quad_state = quad_sink->UseSharedQuadState(CreateSharedQuadState()); |