From ffbb221c8dc7acd0dbe202d569c3d4b9a62fafb0 Mon Sep 17 00:00:00 2001 From: "boliu@chromium.org" Date: Sun, 2 Jun 2013 23:47:59 +0000 Subject: 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 --- cc/layers/nine_patch_layer_impl.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'cc/layers/nine_patch_layer_impl.cc') 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()); -- cgit v1.1