OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 // Reference is external; wait for notifyFinished(). | 126 // Reference is external; wait for notifyFinished(). |
127 cachedSVGDocument->addClient(this); | 127 cachedSVGDocument->addClient(this); |
128 m_externalSVGReferences.append(cachedSVGDocument); | 128 m_externalSVGReferences.append(cachedSVGDocument); |
129 } else { | 129 } else { |
130 // Reference is internal; add layer as a client so we can trigger | 130 // Reference is internal; add layer as a client so we can trigger |
131 // filter repaint on SVG attribute change. | 131 // filter repaint on SVG attribute change. |
132 Element* filter = m_layer->renderer()->node()->document().getElement
ById(referenceFilterOperation->fragment()); | 132 Element* filter = m_layer->renderer()->node()->document().getElement
ById(referenceFilterOperation->fragment()); |
133 if (!filter || !filter->hasTagName(SVGNames::filterTag)) | 133 if (!filter || !filter->hasTagName(SVGNames::filterTag)) |
134 continue; | 134 continue; |
135 if (filter->renderer()) | 135 if (filter->renderer()) |
136 filter->renderer()->toRenderSVGResourceContainer()->addClientRen
derLayer(m_layer); | 136 toRenderSVGResourceContainer(filter->renderer())->addClientRende
rLayer(m_layer); |
137 else | 137 else |
138 toSVGFilterElement(filter)->addClient(m_layer->renderer()->node(
)); | 138 toSVGFilterElement(filter)->addClient(m_layer->renderer()->node(
)); |
139 m_internalSVGReferences.append(filter); | 139 m_internalSVGReferences.append(filter); |
140 } | 140 } |
141 } | 141 } |
142 } | 142 } |
143 | 143 |
144 void RenderLayerFilterInfo::removeReferenceFilterClients() | 144 void RenderLayerFilterInfo::removeReferenceFilterClients() |
145 { | 145 { |
146 for (size_t i = 0; i < m_externalSVGReferences.size(); ++i) | 146 for (size_t i = 0; i < m_externalSVGReferences.size(); ++i) |
147 m_externalSVGReferences.at(i)->removeClient(this); | 147 m_externalSVGReferences.at(i)->removeClient(this); |
148 m_externalSVGReferences.clear(); | 148 m_externalSVGReferences.clear(); |
149 for (size_t i = 0; i < m_internalSVGReferences.size(); ++i) { | 149 for (size_t i = 0; i < m_internalSVGReferences.size(); ++i) { |
150 Element* filter = m_internalSVGReferences.at(i).get(); | 150 Element* filter = m_internalSVGReferences.at(i).get(); |
151 if (filter->renderer()) | 151 if (filter->renderer()) |
152 filter->renderer()->toRenderSVGResourceContainer()->removeClientRend
erLayer(m_layer); | 152 toRenderSVGResourceContainer(filter->renderer())->removeClientRender
Layer(m_layer); |
153 else | 153 else |
154 toSVGFilterElement(filter)->removeClient(m_layer->renderer()->node()
); | 154 toSVGFilterElement(filter)->removeClient(m_layer->renderer()->node()
); |
155 } | 155 } |
156 m_internalSVGReferences.clear(); | 156 m_internalSVGReferences.clear(); |
157 } | 157 } |
158 | 158 |
159 void RenderLayerFilterInfo::notifyCustomFilterProgramLoaded(CustomFilterProgram*
) | 159 void RenderLayerFilterInfo::notifyCustomFilterProgramLoaded(CustomFilterProgram*
) |
160 { | 160 { |
161 RenderObject* renderer = m_layer->renderer(); | 161 RenderObject* renderer = m_layer->renderer(); |
162 toElement(renderer->node())->scheduleLayerUpdate(); | 162 toElement(renderer->node())->scheduleLayerUpdate(); |
(...skipping 23 matching lines...) Expand all Loading... |
186 | 186 |
187 void RenderLayerFilterInfo::removeCustomFilterClients() | 187 void RenderLayerFilterInfo::removeCustomFilterClients() |
188 { | 188 { |
189 for (size_t i = 0; i < m_cachedCustomFilterPrograms.size(); ++i) | 189 for (size_t i = 0; i < m_cachedCustomFilterPrograms.size(); ++i) |
190 m_cachedCustomFilterPrograms.at(i)->removeClient(this); | 190 m_cachedCustomFilterPrograms.at(i)->removeClient(this); |
191 m_cachedCustomFilterPrograms.clear(); | 191 m_cachedCustomFilterPrograms.clear(); |
192 } | 192 } |
193 | 193 |
194 } // namespace WebCore | 194 } // namespace WebCore |
195 | 195 |
OLD | NEW |