Home | History | Annotate | Download | only in ports
      1 /*
      2  * Copyright 2011 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 "Sk1DPathEffect.h"
      9 #include "Sk2DPathEffect.h"
     10 #include "SkAlphaThresholdFilter.h"
     11 #include "SkBlurImageFilter.h"
     12 #include "SkBlurMaskFilter.h"
     13 #include "SkColorFilterImageFilter.h"
     14 #include "SkColorMatrixFilterRowMajor255.h"
     15 #include "SkComposeImageFilter.h"
     16 #include "SkCornerPathEffect.h"
     17 #include "../../src/effects/SkDashImpl.h"
     18 #include "SkDiscretePathEffect.h"
     19 #include "SkDisplacementMapEffect.h"
     20 #include "SkDropShadowImageFilter.h"
     21 #include "../../src/effects/SkEmbossMaskFilter.h"
     22 #include "SkGradientShader.h"
     23 #include "SkHighContrastFilter.h"
     24 #include "SkImageSource.h"
     25 #include "SkLayerDrawLooper.h"
     26 #include "SkLightingImageFilter.h"
     27 #include "SkLocalMatrixImageFilter.h"
     28 #include "SkLumaColorFilter.h"
     29 #include "SkMagnifierImageFilter.h"
     30 #include "SkMatrixConvolutionImageFilter.h"
     31 #include "SkMergeImageFilter.h"
     32 #include "SkMorphologyImageFilter.h"
     33 #include "SkOffsetImageFilter.h"
     34 #include "SkOverdrawColorFilter.h"
     35 #include "SkPaintImageFilter.h"
     36 #include "SkPerlinNoiseShader.h"
     37 #include "SkPictureImageFilter.h"
     38 #include "SkRRectsGaussianEdgeMaskFilter.h"
     39 #include "SkShaderMaskFilter.h"
     40 #include "SkTableColorFilter.h"
     41 #include "SkTileImageFilter.h"
     42 #include "SkToSRGBColorFilter.h"
     43 #include "SkXfermodeImageFilter.h"
     44 
     45 // Security note:
     46 //
     47 // As new subclasses are added here, they should be reviewed by chrome security before they
     48 // support deserializing cross-process: chrome-security (at) google.com. SampleFilterFuzz.cpp should
     49 // also be amended to exercise the new subclass.
     50 //
     51 // See SkReadBuffer::isCrossProcess() and SkPicture::PictureIOSecurityPrecautionsEnabled()
     52 //
     53 
     54 /*
     55  *  None of these are strictly "required" for Skia to operate.
     56  *
     57  *  These are the bulk of our "effects" -- subclasses of various effects on SkPaint.
     58  *
     59  *  Clients should feel free to dup this file and modify it as needed. This function "InitEffects"
     60  *  will automatically be called before any of skia's effects are asked to be deserialized.
     61  */
     62 void SkFlattenable::PrivateInitializer::InitEffects() {
     63     // MaskFilter
     64     SkMaskFilter::InitializeFlattenables();
     65     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmbossMaskFilter)
     66     SkBlurMaskFilter::InitializeFlattenables();
     67     SkRRectsGaussianEdgeMaskFilter::InitializeFlattenables();
     68     SkShaderMaskFilter::InitializeFlattenables();
     69 
     70     // DrawLooper
     71     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerDrawLooper)
     72 
     73     // ColorFilter
     74     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilterRowMajor255)
     75     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter)
     76     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkToSRGBColorFilter)
     77     SkAlphaThresholdFilter::InitializeFlattenables();
     78     SkTableColorFilter::InitializeFlattenables();
     79     SkOverdrawColorFilter::InitializeFlattenables();
     80     SkHighContrastFilter::InitializeFlattenables();
     81 
     82     // Shader
     83     SkPerlinNoiseShader::InitializeFlattenables();
     84     SkGradientShader::InitializeFlattenables();
     85 
     86     // PathEffect
     87     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkCornerPathEffect)
     88     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDashImpl)
     89     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiscretePathEffect)
     90     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath1DPathEffect)
     91     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect)
     92     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect)
     93 
     94     // ImageFilter
     95     SkImageFilter::InitializeFlattenables();
     96     SkArithmeticImageFilter::InitializeFlattenables();
     97     SkXfermodeImageFilter::InitializeFlattenables();
     98     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter)
     99     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect)
    100     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter)
    101     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter)
    102     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageSource)
    103     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixImageFilter)
    104     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPaintImageFilter)
    105     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter)
    106     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter)
    107     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter)
    108     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter)
    109     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter)
    110     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter)
    111     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter)
    112     SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter)
    113     SkLightingImageFilter::InitializeFlattenables();
    114 }
    115