Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(812)

Unified Diff: webkit/renderer/compositor_bindings/web_filter_operations_impl.cc

Issue 16968002: Move implementation of WebFilterOperations into cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
diff --git a/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc b/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
new file mode 100644
index 0000000000000000000000000000000000000000..cbee709e489ae9ae4c01ce5c86966013b116f7d2
--- /dev/null
+++ b/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
@@ -0,0 +1,186 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "webkit/renderer/compositor_bindings/web_filter_operations_impl.h"
+
+#include "base/basictypes.h"
+#include "third_party/WebKit/public/platform/WebColor.h"
+#include "third_party/WebKit/public/platform/WebPoint.h"
+#include "third_party/skia/include/core/SkScalar.h"
+
+namespace webkit {
+
+#if WEB_FILTER_OPERATIONS_IS_VIRTUAL
+WebFilterOperationsImpl::WebFilterOperationsImpl() {}
+
+WebFilterOperationsImpl::~WebFilterOperationsImpl() {}
+
+const cc::FilterOperations& WebFilterOperationsImpl::AsFilterOperations()
+ const {
+ return filter_operations_;
+}
+
+void WebFilterOperationsImpl::appendGrayscaleFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateGrayscaleFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendSepiaFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateSepiaFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendSaturateFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateSaturateFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendHueRotateFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateHueRotateFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendInvertFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateInvertFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendBrightnessFilter(float amount) {
+ filter_operations_.Append(
+ cc::FilterOperation::CreateBrightnessFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendContrastFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateContrastFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendOpacityFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateOpacityFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendBlurFilter(float amount) {
+ filter_operations_.Append(cc::FilterOperation::CreateBlurFilter(amount));
+}
+
+void WebFilterOperationsImpl::appendDropShadowFilter(WebKit::WebPoint offset,
+ float std_deviation,
+ WebKit::WebColor color) {
+ filter_operations_.Append(cc::FilterOperation::CreateDropShadowFilter(
+ offset, std_deviation, color));
+}
+
+void WebFilterOperationsImpl::appendColorMatrixFilter(SkScalar matrix[20]) {
+ filter_operations_.Append(
+ cc::FilterOperation::CreateColorMatrixFilter(matrix));
+}
+
+void WebFilterOperationsImpl::appendZoomFilter(float amount, int inset) {
+ filter_operations_.Append(
+ cc::FilterOperation::CreateZoomFilter(amount, inset));
+}
+
+void WebFilterOperationsImpl::appendSaturatingBrightnessFilter(float amount) {
+ filter_operations_.Append(
+ cc::FilterOperation::CreateSaturatingBrightnessFilter(amount));
+}
+
+void WebFilterOperationsImpl::clear() {
+ filter_operations_.Clear();
+}
+#else
+
+#define COMPILE_ASSERT_MATCHING_ENUMS(cc_name, webkit_name) \
+ COMPILE_ASSERT(static_cast<int>(cc_name) == static_cast<int>(webkit_name), \
+ mismatching_enums)
+
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeGrayscale,
+ WebKit::WebFilterOperation::FilterTypeGrayscale);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeSepia,
+ WebKit::WebFilterOperation::FilterTypeSepia);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeSaturate,
+ WebKit::WebFilterOperation::FilterTypeSaturate);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeHueRotate,
+ WebKit::WebFilterOperation::FilterTypeHueRotate);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeInvert,
+ WebKit::WebFilterOperation::FilterTypeInvert);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeBrightness,
+ WebKit::WebFilterOperation::FilterTypeBrightness);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeContrast,
+ WebKit::WebFilterOperation::FilterTypeContrast);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeOpacity,
+ WebKit::WebFilterOperation::FilterTypeOpacity);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeBlur,
+ WebKit::WebFilterOperation::FilterTypeBlur);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeDropShadow,
+ WebKit::WebFilterOperation::FilterTypeDropShadow);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeColorMatrix,
+ WebKit::WebFilterOperation::FilterTypeColorMatrix);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeZoom,
+ WebKit::WebFilterOperation::FilterTypeZoom);
+COMPILE_ASSERT_MATCHING_ENUMS(
+ cc::FilterOperation::FilterTypeSaturatingBrightness,
+ WebKit::WebFilterOperation::FilterTypeSaturatingBrightness);
+
+namespace {
+cc::FilterOperation ConvertWebFilterOperationToFilterOperation(
+ const WebKit::WebFilterOperation& web_filter_operation) {
+ cc::FilterOperation::FilterType type =
+ static_cast<cc::FilterOperation::FilterType>(web_filter_operation.type());
+
+ cc::FilterOperation filter_operation =
+ cc::FilterOperation::CreateEmptyFilter();
+ filter_operation.set_type(type);
+
+ switch (type) {
+ case cc::FilterOperation::FilterTypeGrayscale:
+ case cc::FilterOperation::FilterTypeSepia:
+ case cc::FilterOperation::FilterTypeSaturate:
+ case cc::FilterOperation::FilterTypeHueRotate:
+ case cc::FilterOperation::FilterTypeInvert:
+ case cc::FilterOperation::FilterTypeBrightness:
+ case cc::FilterOperation::FilterTypeSaturatingBrightness:
+ case cc::FilterOperation::FilterTypeContrast:
+ case cc::FilterOperation::FilterTypeOpacity:
+ case cc::FilterOperation::FilterTypeBlur:
+ filter_operation.set_amount(web_filter_operation.amount());
+ break;
+ case cc::FilterOperation::FilterTypeDropShadow:
+ filter_operation.set_drop_shadow_offset(
+ web_filter_operation.dropShadowOffset());
+ filter_operation.set_amount(web_filter_operation.amount());
+ filter_operation.set_drop_shadow_color(
+ web_filter_operation.dropShadowColor());
+ break;
+ case cc::FilterOperation::FilterTypeColorMatrix:
+ filter_operation.set_matrix(web_filter_operation.matrix());
+ break;
+ case cc::FilterOperation::FilterTypeZoom:
+ filter_operation.set_amount(web_filter_operation.amount());
+ filter_operation.set_zoom_inset(web_filter_operation.zoomInset());
+ break;
+ }
+
+ return filter_operation;
+}
+} // namespace
+
+cc::FilterOperations ConvertWebFilterOperationsToFilterOperations(
+ const WebKit::WebFilterOperations& web_filter_operations) {
+ cc::FilterOperations filter_operations;
+ for (size_t i = 0; i < web_filter_operations.size(); ++i) {
+ filter_operations.Append(ConvertWebFilterOperationToFilterOperation(
+ web_filter_operations.at(i)));
+ }
+ return filter_operations;
+}
+#endif // WEB_FILTER_OPERATIONS_IS_VIRTUAL
+
+} // namespace webkit

Powered by Google App Engine
This is Rietveld 408576698