Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (132807 => 132808)
--- trunk/Source/WebCore/CMakeLists.txt 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/CMakeLists.txt 2012-10-29 16:50:06 UTC (rev 132808)
@@ -1911,6 +1911,7 @@
platform/graphics/filters/CustomFilterGlobalContext.cpp
platform/graphics/filters/CustomFilterMesh.cpp
platform/graphics/filters/CustomFilterOperation.cpp
+ platform/graphics/filters/CustomFilterParameterList.cpp
platform/graphics/filters/CustomFilterProgram.cpp
platform/graphics/filters/CustomFilterProgramInfo.cpp
platform/graphics/filters/DistantLightSource.cpp
Modified: trunk/Source/WebCore/ChangeLog (132807 => 132808)
--- trunk/Source/WebCore/ChangeLog 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/ChangeLog 2012-10-29 16:50:06 UTC (rev 132808)
@@ -1,3 +1,37 @@
+2012-10-29 Alexandru Chiculita <[email protected]>
+
+ [CSS Shaders] Extract the CustomFilterParameterList to its own file
+ https://bugs.webkit.org/show_bug.cgi?id=100548
+
+ Reviewed by Dean Jackson.
+
+ Moved all the CustomFilterParameterList related methods to their own file.
+ Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
+ so that we can add a different operator== and a blend method to it.
+
+ No new tests, just refactoring existing code.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * css/StyleResolver.h:
+ * platform/graphics/filters/CustomFilterOperation.cpp:
+ (WebCore::CustomFilterOperation::CustomFilterOperation):
+ (WebCore::CustomFilterOperation::blend):
+ * platform/graphics/filters/CustomFilterOperation.h:
+ (WebCore):
+ (WebCore::CustomFilterOperation::operator==):
+ * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
+ (WebCore):
+ (WebCore::CustomFilterParameterList::operator==):
+ (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
+ (WebCore::CustomFilterParameterList::blend):
+ * platform/graphics/filters/CustomFilterParameterList.h: Added.
+ (WebCore):
+ (CustomFilterParameterList):
+
2012-10-29 Brady Eidson <[email protected]>
Try to fix 32-bit builds after my incompletely tested m_identifier change.
Modified: trunk/Source/WebCore/GNUmakefile.list.am (132807 => 132808)
--- trunk/Source/WebCore/GNUmakefile.list.am 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2012-10-29 16:50:06 UTC (rev 132808)
@@ -4336,6 +4336,8 @@
Source/WebCore/platform/graphics/filters/CustomFilterOperation.cpp \
Source/WebCore/platform/graphics/filters/CustomFilterOperation.h \
Source/WebCore/platform/graphics/filters/CustomFilterParameter.h \
+ Source/WebCore/platform/graphics/filters/CustomFilterParameterList.cpp \
+ Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h \
Source/WebCore/platform/graphics/filters/CustomFilterProgram.cpp \
Source/WebCore/platform/graphics/filters/CustomFilterProgram.h \
Source/WebCore/platform/graphics/filters/CustomFilterProgramInfo.cpp \
Modified: trunk/Source/WebCore/Target.pri (132807 => 132808)
--- trunk/Source/WebCore/Target.pri 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/Target.pri 2012-10-29 16:50:06 UTC (rev 132808)
@@ -2078,6 +2078,7 @@
platform/graphics/filters/CustomFilterCompiledProgram.h \
platform/graphics/filters/CustomFilterOperation.h \
platform/graphics/filters/CustomFilterParameter.h \
+ platform/graphics/filters/CustomFilterParameterList.h \
platform/graphics/filters/CustomFilterProgram.h \
platform/graphics/filters/CustomFilterProgramInfo.h \
platform/graphics/filters/CustomFilterTransformParameter.h \
@@ -3492,6 +3493,7 @@
SOURCES += \
platform/graphics/filters/CustomFilterGlobalContext.cpp \
platform/graphics/filters/CustomFilterOperation.cpp \
+ platform/graphics/filters/CustomFilterParameterList.cpp \
platform/graphics/filters/CustomFilterProgram.cpp \
platform/graphics/filters/CustomFilterProgramInfo.cpp \
platform/graphics/filters/CustomFilterCompiledProgram.cpp \
Modified: trunk/Source/WebCore/WebCore.gypi (132807 => 132808)
--- trunk/Source/WebCore/WebCore.gypi 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/WebCore.gypi 2012-10-29 16:50:06 UTC (rev 132808)
@@ -4977,6 +4977,8 @@
'platform/graphics/filters/CustomFilterOperation.cpp',
'platform/graphics/filters/CustomFilterOperation.h',
'platform/graphics/filters/CustomFilterParameter.h',
+ 'platform/graphics/filters/CustomFilterParameterList.cpp',
+ 'platform/graphics/filters/CustomFilterParameterList.h',
'platform/graphics/filters/CustomFilterProgram.cpp',
'platform/graphics/filters/CustomFilterProgram.h',
'platform/graphics/filters/CustomFilterProgramInfo.cpp',
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (132807 => 132808)
--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-10-29 16:50:06 UTC (rev 132808)
@@ -31925,6 +31925,14 @@
>
</File>
<File
+ RelativePath="..\platform\graphics\filters\CustomFilterParameterList.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\platform\graphics\filters\CustomFilterParameterList.h"
+ >
+ </File>
+ <File
RelativePath="..\platform\graphics\filters\CustomFilterProgram.cpp"
>
</File>
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (132807 => 132808)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-10-29 16:50:06 UTC (rev 132808)
@@ -1498,6 +1498,8 @@
5081E3E03CFF80C16EF8B48B /* CachedResourceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5081E3E13D0280C16EF8B48B /* CachedResourceRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
508CCA4F13CF106B003151F3 /* RenderFlowThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 508CCA4D13CF106B003151F3 /* RenderFlowThread.h */; };
508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 508CCA4E13CF106B003151F3 /* RenderFlowThread.cpp */; };
+ 5093334F163B0E4300099A60 /* CustomFilterParameterList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5093334D163B0E4300099A60 /* CustomFilterParameterList.cpp */; };
+ 50933350163B0E4300099A60 /* CustomFilterParameterList.h in Headers */ = {isa = PBXBuildFile; fileRef = 5093334E163B0E4300099A60 /* CustomFilterParameterList.h */; };
50987C26157D676D00BDA835 /* CustomFilterGlobalContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50987C24157D676D00BDA835 /* CustomFilterGlobalContext.cpp */; };
50987C27157D676D00BDA835 /* CustomFilterGlobalContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 50987C25157D676D00BDA835 /* CustomFilterGlobalContext.h */; };
509CC9FB14C069ED00BBECBD /* CustomFilterParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 509CC9FA14C069ED00BBECBD /* CustomFilterParameter.h */; };
@@ -8704,6 +8706,8 @@
5081E3E13D0280C16EF8B48B /* CachedResourceRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceRequest.h; sourceTree = "<group>"; };
508CCA4D13CF106B003151F3 /* RenderFlowThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderFlowThread.h; sourceTree = "<group>"; };
508CCA4E13CF106B003151F3 /* RenderFlowThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderFlowThread.cpp; sourceTree = "<group>"; };
+ 5093334D163B0E4300099A60 /* CustomFilterParameterList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CustomFilterParameterList.cpp; path = filters/CustomFilterParameterList.cpp; sourceTree = "<group>"; };
+ 5093334E163B0E4300099A60 /* CustomFilterParameterList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomFilterParameterList.h; path = filters/CustomFilterParameterList.h; sourceTree = "<group>"; };
50987C24157D676D00BDA835 /* CustomFilterGlobalContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CustomFilterGlobalContext.cpp; path = filters/CustomFilterGlobalContext.cpp; sourceTree = "<group>"; };
50987C25157D676D00BDA835 /* CustomFilterGlobalContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomFilterGlobalContext.h; path = filters/CustomFilterGlobalContext.h; sourceTree = "<group>"; };
509CC9FA14C069ED00BBECBD /* CustomFilterParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomFilterParameter.h; path = filters/CustomFilterParameter.h; sourceTree = "<group>"; };
@@ -18244,6 +18248,8 @@
A75E8B7F0E1DE2B0007F2481 /* filters */ = {
isa = PBXGroup;
children = (
+ 5093334D163B0E4300099A60 /* CustomFilterParameterList.cpp */,
+ 5093334E163B0E4300099A60 /* CustomFilterParameterList.h */,
49ECEB5C1499790D00CDD3A4 /* arm */,
15B3FC1715FB217800A81BCB /* CustomFilterArrayParameter.h */,
50D4060F147D49DE00D30BB5 /* CustomFilterCompiledProgram.cpp */,
@@ -25671,6 +25677,7 @@
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
FD537353137B651800008DCE /* ZeroPole.h in Headers */,
+ 50933350163B0E4300099A60 /* CustomFilterParameterList.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -28784,6 +28791,7 @@
977E2E0E12F0FC9C00C13379 /* XSSAuditor.cpp in Sources */,
FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
51ABF64D16392E2800132A7A /* LoaderStrategy.cpp in Sources */,
+ 5093334F163B0E4300099A60 /* CustomFilterParameterList.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/Source/WebCore/css/StyleResolver.h (132807 => 132808)
--- trunk/Source/WebCore/css/StyleResolver.h 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/css/StyleResolver.h 2012-10-29 16:50:06 UTC (rev 132808)
@@ -61,6 +61,7 @@
class ContainerNode;
class CustomFilterOperation;
class CustomFilterParameter;
+class CustomFilterParameterList;
class Document;
class Element;
class Frame;
@@ -95,10 +96,6 @@
class WebKitCSSShaderValue;
class WebKitCSSSVGDocumentValue;
-#if ENABLE(CSS_SHADERS)
-typedef Vector<RefPtr<CustomFilterParameter> > CustomFilterParameterList;
-#endif
-
class MediaQueryResult {
WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED;
public:
Modified: trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.cpp (132807 => 132808)
--- trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.cpp 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.cpp 2012-10-29 16:50:06 UTC (rev 132808)
@@ -36,65 +36,8 @@
#include "CustomFilterProgram.h"
#include "FilterOperation.h"
-#include <wtf/text/StringHash.h>
-
namespace WebCore {
-bool customFilterParametersEqual(const CustomFilterParameterList& listA, const CustomFilterParameterList& listB)
-{
- if (listA.size() != listB.size())
- return false;
- for (size_t i = 0; i < listA.size(); ++i) {
- if (listA.at(i).get() != listB.at(i).get()
- && *listA.at(i).get() != *listB.at(i).get())
- return false;
- }
- return true;
-}
-
-#if !ASSERT_DISABLED
-static bool checkCustomFilterParametersOrder(const CustomFilterParameterList& parameters)
-{
- for (unsigned i = 1; i < parameters.size(); ++i) {
- // Break for equal or not-sorted parameters.
- if (!codePointCompareLessThan(parameters.at(i - 1)->name(), parameters.at(i)->name()))
- return false;
- }
- return true;
-}
-#endif
-
-void blendCustomFilterParameters(const CustomFilterParameterList& fromList, const CustomFilterParameterList& toList,
- double progress, const LayoutSize& size, CustomFilterParameterList& resultList)
-{
- // This method expects both lists to be sorted by parameter name and the result list is also sorted.
- ASSERT(checkCustomFilterParametersOrder(fromList));
- ASSERT(checkCustomFilterParametersOrder(toList));
- size_t fromListIndex = 0, toListIndex = 0;
- while (fromListIndex < fromList.size() && toListIndex < toList.size()) {
- CustomFilterParameter* paramFrom = fromList.at(fromListIndex).get();
- CustomFilterParameter* paramTo = toList.at(toListIndex).get();
- if (paramFrom->name() == paramTo->name()) {
- resultList.append(paramTo->blend(paramFrom, progress, size));
- ++fromListIndex;
- ++toListIndex;
- continue;
- }
- if (codePointCompareLessThan(paramFrom->name(), paramTo->name())) {
- resultList.append(paramFrom);
- ++fromListIndex;
- continue;
- }
- resultList.append(paramTo);
- ++toListIndex;
- }
- for (; fromListIndex < fromList.size(); ++fromListIndex)
- resultList.append(fromList.at(fromListIndex));
- for (; toListIndex < toList.size(); ++toListIndex)
- resultList.append(toList.at(toListIndex));
- ASSERT(checkCustomFilterParametersOrder(resultList));
-}
-
CustomFilterOperation::CustomFilterOperation(PassRefPtr<CustomFilterProgram> program, const CustomFilterParameterList& sortedParameters, unsigned meshRows, unsigned meshColumns, MeshBoxType meshBoxType, MeshType meshType)
: FilterOperation(CUSTOM)
, m_program(program)
@@ -105,7 +48,7 @@
, m_meshType(meshType)
{
// Make sure that the parameters are alwyas sorted by name. We use that to merge two CustomFilterOperations in animations.
- ASSERT(checkCustomFilterParametersOrder(m_parameters));
+ ASSERT(m_parameters.checkAlphabeticalOrder());
}
CustomFilterOperation::~CustomFilterOperation()
@@ -129,7 +72,7 @@
return this;
CustomFilterParameterList animatedParameters;
- blendCustomFilterParameters(fromOp->m_parameters, m_parameters, progress, size, animatedParameters);
+ m_parameters.blend(fromOp->m_parameters, progress, size, animatedParameters);
return CustomFilterOperation::create(m_program, animatedParameters, m_meshRows, m_meshColumns, m_meshBoxType, m_meshType);
}
Modified: trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h (132807 => 132808)
--- trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h 2012-10-29 16:42:48 UTC (rev 132807)
+++ trunk/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h 2012-10-29 16:50:06 UTC (rev 132808)
@@ -31,23 +31,15 @@
#define CustomFilterOperation_h
#if ENABLE(CSS_SHADERS)
+#include "CustomFilterParameterList.h"
#include "CustomFilterProgram.h"
#include "FilterOperation.h"
#include "LayoutTypes.h"
-#include <wtf/text/WTFString.h>
-
namespace WebCore {
// CSS Shaders
-class CustomFilterParameter;
-typedef Vector<RefPtr<CustomFilterParameter> > CustomFilterParameterList;
-
-bool customFilterParametersEqual(const CustomFilterParameterList&, const CustomFilterParameterList&);
-void blendCustomFilterParameters(const CustomFilterParameterList& listFrom, const CustomFilterParameterList& listTo,
- double progress, const LayoutSize&, CustomFilterParameterList& resultList);
-
class CustomFilterOperation : public FilterOperation {
public:
enum MeshBoxType {
@@ -92,11 +84,11 @@
const CustomFilterOperation* other = static_cast<const CustomFilterOperation*>(&o);
return *m_program.get() == *other->m_program.get()
- && m_meshRows == other->m_meshRows
- && m_meshColumns == other->m_meshColumns
- && m_meshBoxType == other->m_meshBoxType
- && m_meshType == other->m_meshType
- && customFilterParametersEqual(m_parameters, other->m_parameters);
+ && m_meshRows == other->m_meshRows
+ && m_meshColumns == other->m_meshColumns
+ && m_meshBoxType == other->m_meshBoxType
+ && m_meshType == other->m_meshType
+ && m_parameters == other->m_parameters;
}
CustomFilterOperation(PassRefPtr<CustomFilterProgram>, const CustomFilterParameterList&, unsigned meshRows, unsigned meshColumns, MeshBoxType, MeshType);
Added: trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.cpp (0 => 132808)
--- trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.cpp (rev 0)
+++ trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.cpp 2012-10-29 16:50:06 UTC (rev 132808)
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(CSS_SHADERS)
+#include "CustomFilterParameterList.h"
+
+#include "CustomFilterParameter.h"
+#include <wtf/text/StringHash.h>
+
+namespace WebCore {
+
+CustomFilterParameterList::CustomFilterParameterList()
+{
+}
+
+CustomFilterParameterList::CustomFilterParameterList(size_t size)
+ : CustomFilterParameterListBase(size)
+{
+}
+
+bool CustomFilterParameterList::operator==(const CustomFilterParameterList& other) const
+{
+ if (size() != other.size())
+ return false;
+ for (size_t i = 0; i < size(); ++i) {
+ if (at(i).get() != other.at(i).get()
+ && *at(i).get() != *other.at(i).get())
+ return false;
+ }
+ return true;
+}
+
+bool CustomFilterParameterList::checkAlphabeticalOrder() const
+{
+ for (unsigned i = 1; i < size(); ++i) {
+ // Break for equal or not-sorted parameters.
+ if (!codePointCompareLessThan(at(i - 1)->name(), at(i)->name()))
+ return false;
+ }
+ return true;
+}
+
+void CustomFilterParameterList::blend(const CustomFilterParameterList& fromList,
+ double progress, const LayoutSize& frameSize, CustomFilterParameterList& resultList) const
+{
+ // This method expects both lists to be sorted by parameter name and the result list is also sorted.
+ ASSERT(checkAlphabeticalOrder());
+ ASSERT(fromList.checkAlphabeticalOrder());
+ size_t fromListIndex = 0, toListIndex = 0;
+ while (fromListIndex < fromList.size() && toListIndex < size()) {
+ CustomFilterParameter* paramFrom = fromList.at(fromListIndex).get();
+ CustomFilterParameter* paramTo = at(toListIndex).get();
+ if (paramFrom->name() == paramTo->name()) {
+ resultList.append(paramTo->blend(paramFrom, progress, frameSize));
+ ++fromListIndex;
+ ++toListIndex;
+ continue;
+ }
+ if (codePointCompareLessThan(paramFrom->name(), paramTo->name())) {
+ resultList.append(paramFrom);
+ ++fromListIndex;
+ continue;
+ }
+ resultList.append(paramTo);
+ ++toListIndex;
+ }
+ for (; fromListIndex < fromList.size(); ++fromListIndex)
+ resultList.append(fromList.at(fromListIndex));
+ for (; toListIndex < size(); ++toListIndex)
+ resultList.append(at(toListIndex));
+ ASSERT(resultList.checkAlphabeticalOrder());
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(CSS_SHADERS)
Added: trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h (0 => 132808)
--- trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h (rev 0)
+++ trunk/Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h 2012-10-29 16:50:06 UTC (rev 132808)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef CustomFilterParameterList_h
+#define CustomFilterParameterList_h
+
+#if ENABLE(CSS_SHADERS)
+#include "LayoutTypes.h"
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+class CustomFilterParameter;
+typedef Vector<RefPtr<CustomFilterParameter> > CustomFilterParameterListBase;
+
+class CustomFilterParameterList : public CustomFilterParameterListBase {
+public:
+ CustomFilterParameterList();
+ explicit CustomFilterParameterList(size_t);
+
+ bool checkAlphabeticalOrder() const;
+ void blend(const CustomFilterParameterList& from, double progress, const LayoutSize&, CustomFilterParameterList& resultList) const;
+ bool operator==(const CustomFilterParameterList&) const;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(CSS_SHADERS)
+
+#endif // CustomFilterParameterList_h