OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
5 * | 5 * |
6 * Other contributors: | 6 * Other contributors: |
7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
(...skipping 3897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3908 | 3908 |
3909 void RenderLayer::updateOrRemoveFilterEffectRenderer() | 3909 void RenderLayer::updateOrRemoveFilterEffectRenderer() |
3910 { | 3910 { |
3911 // FilterEffectRenderer is only used to render the filters in software mode, | 3911 // FilterEffectRenderer is only used to render the filters in software mode, |
3912 // so we always need to run updateOrRemoveFilterEffectRenderer after the com
posited | 3912 // so we always need to run updateOrRemoveFilterEffectRenderer after the com
posited |
3913 // mode might have changed for this layer. | 3913 // mode might have changed for this layer. |
3914 if (!paintsWithFilters()) { | 3914 if (!paintsWithFilters()) { |
3915 // Don't delete the whole filter info here, because we might use it | 3915 // Don't delete the whole filter info here, because we might use it |
3916 // for loading CSS shader files. | 3916 // for loading CSS shader files. |
3917 if (RenderLayerFilterInfo* filterInfo = this->filterInfo()) | 3917 if (RenderLayerFilterInfo* filterInfo = this->filterInfo()) |
3918 filterInfo->setRenderer(0); | 3918 filterInfo->setRenderer(nullptr); |
3919 | 3919 |
3920 return; | 3920 return; |
3921 } | 3921 } |
3922 | 3922 |
3923 RenderLayerFilterInfo* filterInfo = ensureFilterInfo(); | 3923 RenderLayerFilterInfo* filterInfo = ensureFilterInfo(); |
3924 if (!filterInfo->renderer()) { | 3924 if (!filterInfo->renderer()) { |
3925 RefPtr<FilterEffectRenderer> filterRenderer = FilterEffectRenderer::crea
te(); | 3925 RefPtr<FilterEffectRenderer> filterRenderer = FilterEffectRenderer::crea
te(); |
3926 filterRenderer->setIsAccelerated(renderer()->frame()->settings()->accele
ratedFiltersEnabled()); | 3926 filterRenderer->setIsAccelerated(renderer()->frame()->settings()->accele
ratedFiltersEnabled()); |
3927 filterInfo->setRenderer(filterRenderer.release()); | 3927 filterInfo->setRenderer(filterRenderer.release()); |
3928 | 3928 |
3929 // We can optimize away code paths in other places if we know that there
are no software filters. | 3929 // We can optimize away code paths in other places if we know that there
are no software filters. |
3930 renderer()->document().view()->setHasSoftwareFilters(true); | 3930 renderer()->document().view()->setHasSoftwareFilters(true); |
3931 } | 3931 } |
3932 | 3932 |
3933 // If the filter fails to build, remove it from the layer. It will still att
empt to | 3933 // If the filter fails to build, remove it from the layer. It will still att
empt to |
3934 // go through regular processing (e.g. compositing), but never apply anythin
g. | 3934 // go through regular processing (e.g. compositing), but never apply anythin
g. |
3935 if (!filterInfo->renderer()->build(renderer(), computeFilterOperations(rende
rer()->style()))) | 3935 if (!filterInfo->renderer()->build(renderer(), computeFilterOperations(rende
rer()->style()))) |
3936 filterInfo->setRenderer(0); | 3936 filterInfo->setRenderer(nullptr); |
3937 } | 3937 } |
3938 | 3938 |
3939 void RenderLayer::filterNeedsRepaint() | 3939 void RenderLayer::filterNeedsRepaint() |
3940 { | 3940 { |
3941 { | 3941 { |
3942 DeprecatedScheduleStyleRecalcDuringLayout marker(renderer()->document().
lifecycle()); | 3942 DeprecatedScheduleStyleRecalcDuringLayout marker(renderer()->document().
lifecycle()); |
3943 // It's possible for scheduleLayerUpdate to schedule a style recalc, whi
ch | 3943 // It's possible for scheduleLayerUpdate to schedule a style recalc, whi
ch |
3944 // is a problem because this function can be called while performing lay
out. | 3944 // is a problem because this function can be called while performing lay
out. |
3945 // Presumably this represents an illegal data flow of layout or composit
ing | 3945 // Presumably this represents an illegal data flow of layout or composit
ing |
3946 // information into the style system. | 3946 // information into the style system. |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4010 } | 4010 } |
4011 } | 4011 } |
4012 | 4012 |
4013 void showLayerTree(const WebCore::RenderObject* renderer) | 4013 void showLayerTree(const WebCore::RenderObject* renderer) |
4014 { | 4014 { |
4015 if (!renderer) | 4015 if (!renderer) |
4016 return; | 4016 return; |
4017 showLayerTree(renderer->enclosingLayer()); | 4017 showLayerTree(renderer->enclosingLayer()); |
4018 } | 4018 } |
4019 #endif | 4019 #endif |
OLD | NEW |