SkColorFilterShader.h 868 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright 2016 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. #ifndef SkColorFilterShader_DEFINED
  8. #define SkColorFilterShader_DEFINED
  9. #include "include/core/SkColorFilter.h"
  10. #include "src/shaders/SkShaderBase.h"
  11. class SkArenaAlloc;
  12. class SkColorFilterShader : public SkShaderBase {
  13. public:
  14. SkColorFilterShader(sk_sp<SkShader> shader, sk_sp<SkColorFilter> filter);
  15. #if SK_SUPPORT_GPU
  16. std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override;
  17. #endif
  18. protected:
  19. void flatten(SkWriteBuffer&) const override;
  20. bool onAppendStages(const SkStageRec&) const override;
  21. private:
  22. SK_FLATTENABLE_HOOKS(SkColorFilterShader)
  23. sk_sp<SkShader> fShader;
  24. sk_sp<SkColorFilter> fFilter;
  25. typedef SkShaderBase INHERITED;
  26. };
  27. #endif