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

Unified Diff: include/effects/SkBitmapAlphaThresholdShader.h

Issue 23707019: alpha threshold bitmap shader (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: cleanup Created 7 years, 3 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
« no previous file with comments | « include/core/SkShader.h ('k') | include/gpu/GrEffect.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/effects/SkBitmapAlphaThresholdShader.h
diff --git a/include/effects/SkBitmapAlphaThresholdShader.h b/include/effects/SkBitmapAlphaThresholdShader.h
new file mode 100644
index 0000000000000000000000000000000000000000..90d19d27b6257bce896e95aab3955ec562cf316f
--- /dev/null
+++ b/include/effects/SkBitmapAlphaThresholdShader.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkShader.h"
+#include "SkBitmap.h"
+#include "SkRegion.h"
+#include "SkString.h"
+
+/**
+ * This shader samples a bitmap and a region. If the sample is inside the region
+ * the alpha of the bitmap color is boosted up to a threshold value. If it is
+ * outside the region then the bitmap alpha is decreased to the threshold value.
+ * The 0,0 point of the region corresponds to the upper left corner of the bitmap
+ * Currently, this only has a GPU implementation, doesn't respect the paint's bitmap
+ * filter setting, and always uses clamp mode.
+ */
+class SK_API SkBitmapAlphaThresholdShader : public SkShader {
+public:
+ SK_DECLARE_INST_COUNT(SkThresholdShader);
+
+ static SkShader* Create(SkBitmap bitmap, const SkRegion& region, U8CPU threshold);
reed1 2013/09/05 15:14:54 nit: const SkBitmap&
bsalomon 2013/09/05 19:54:50 Done.
+
+ virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE {};
reed1 2013/09/05 15:14:54 Suggestion: move all of this method stuff into th
bsalomon 2013/09/05 19:54:50 Done.
+
+#if SK_SUPPORT_GPU
+ virtual GrEffectRef* asNewEffect(GrContext* context, const SkPaint& paint) const SK_OVERRIDE;
+#endif
+
+ SK_DEVELOPER_TO_STRING();
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapAlphaThresholdShader)
+
+private:
+ SkBitmapAlphaThresholdShader(SkBitmap bitmap, SkRegion region, U8CPU);
+ SkBitmapAlphaThresholdShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
+
+
+ SkBitmap fBitmap;
+ SkRegion fRegion;
+ U8CPU fThreshold;
+
+ typedef SkShader INHERITED;
+};
« no previous file with comments | « include/core/SkShader.h ('k') | include/gpu/GrEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698