blob: 6b7564b51ae185726364c77b93e0c94c23ebf650 [file] [log] [blame]
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkLumaColorFilter.h"
Mike Reedb9641bd2017-05-04 10:57:40 -04009#include "SkPM4f.h"
Cary Clarka4083c92017-09-15 11:59:23 -040010#include "SkColorData.h"
Mike Klein1f49f262016-10-31 19:49:27 -040011#include "SkRasterPipeline.h"
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000012#include "SkString.h"
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000013
14#if SK_SUPPORT_GPU
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000015#include "GrContext.h"
Ethan Nicholas14efcbf2017-11-07 09:23:38 -050016#include "effects/GrLumaColorFilterEffect.h"
egdaniel64c47282015-11-13 06:54:19 -080017#include "glsl/GrGLSLFragmentProcessor.h"
egdaniel2d721d32015-11-11 13:06:05 -080018#include "glsl/GrGLSLFragmentShaderBuilder.h"
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000019#endif
20
Mike Kleinfdf31032017-05-09 14:57:58 -040021void SkLumaColorFilter::onAppendStages(SkRasterPipeline* p,
Mike Klein744908e2016-11-11 12:51:36 -050022 SkColorSpace* dst,
Herb Derbyac04fef2017-01-13 17:34:33 -050023 SkArenaAlloc* scratch,
Mike Klein744908e2016-11-11 12:51:36 -050024 bool shaderIsOpaque) const {
Mike Klein1f49f262016-10-31 19:49:27 -040025 p->append(SkRasterPipeline::luminance_to_alpha);
Mike Klein1f49f262016-10-31 19:49:27 -040026}
27
reedd053ce92016-03-22 10:17:23 -070028sk_sp<SkColorFilter> SkLumaColorFilter::Make() {
29 return sk_sp<SkColorFilter>(new SkLumaColorFilter);
30}
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000031
reed9fa60da2014-08-21 07:59:51 -070032SkLumaColorFilter::SkLumaColorFilter() : INHERITED() {}
33
reed60c9b582016-04-03 09:11:13 -070034sk_sp<SkFlattenable> SkLumaColorFilter::CreateProc(SkReadBuffer&) {
35 return Make();
36}
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000037
reed9fa60da2014-08-21 07:59:51 -070038void SkLumaColorFilter::flatten(SkWriteBuffer&) const {}
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000039
commit-bot@chromium.org0f10f7b2014-03-13 18:02:17 +000040#ifndef SK_IGNORE_TO_STRING
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000041void SkLumaColorFilter::toString(SkString* str) const {
42 str->append("SkLumaColorFilter ");
43}
44#endif
45
46#if SK_SUPPORT_GPU
Brian Salomon4cbb6e62017-10-25 15:12:19 -040047std::unique_ptr<GrFragmentProcessor> SkLumaColorFilter::asFragmentProcessor(
48 GrContext*, const GrColorSpaceInfo&) const {
Ethan Nicholas14efcbf2017-11-07 09:23:38 -050049 return GrLumaColorFilterEffect::Make();
commit-bot@chromium.org6c1ee2d2013-10-07 18:00:17 +000050}
51#endif