LCOV - code coverage report
Current view: top level - gfx/2d - Filters.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 19 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 21 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
       2             :  * This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #ifndef MOZILLA_GFX_FILTERS_H_
       7             : #define MOZILLA_GFX_FILTERS_H_
       8             : 
       9             : #include "Types.h"
      10             : #include "mozilla/RefPtr.h"
      11             : 
      12             : #include "Point.h"
      13             : #include "Matrix.h"
      14             : #include <vector>
      15             : 
      16             : namespace mozilla {
      17             : namespace gfx {
      18             : 
      19             : class SourceSurface;
      20             : 
      21             : enum FilterBackend {
      22             :   FILTER_BACKEND_SOFTWARE = 0,
      23             :   FILTER_BACKEND_DIRECT2D1_1,
      24             :   FILTER_BACKEND_RECORDING
      25             : };
      26             : 
      27             : enum TransformFilterAtts
      28             : {
      29             :   ATT_TRANSFORM_MATRIX = 0,                 // Matrix
      30             :   ATT_TRANSFORM_FILTER                      // Filter
      31             : };
      32             : 
      33             : enum TransformFilterInputs
      34             : {
      35             :   IN_TRANSFORM_IN = 0
      36             : };
      37             : 
      38             : enum BlendFilterAtts
      39             : {
      40             :   ATT_BLEND_BLENDMODE = 0                   // uint32_t
      41             : };
      42             : 
      43             : enum BlendMode
      44             : {
      45             :   BLEND_MODE_MULTIPLY = 0,
      46             :   BLEND_MODE_SCREEN,
      47             :   BLEND_MODE_DARKEN,
      48             :   BLEND_MODE_LIGHTEN,
      49             :   BLEND_MODE_OVERLAY,
      50             :   BLEND_MODE_COLOR_DODGE,
      51             :   BLEND_MODE_COLOR_BURN,
      52             :   BLEND_MODE_HARD_LIGHT,
      53             :   BLEND_MODE_SOFT_LIGHT,
      54             :   BLEND_MODE_DIFFERENCE,
      55             :   BLEND_MODE_EXCLUSION,
      56             :   BLEND_MODE_HUE,
      57             :   BLEND_MODE_SATURATION,
      58             :   BLEND_MODE_COLOR,
      59             :   BLEND_MODE_LUMINOSITY
      60             : };
      61             : 
      62             : enum BlendFilterInputs
      63             : {
      64             :   IN_BLEND_IN = 0,
      65             :   IN_BLEND_IN2
      66             : };
      67             : 
      68             : enum MorphologyFilterAtts
      69             : {
      70             :   ATT_MORPHOLOGY_RADII = 0,                 // IntSize
      71             :   ATT_MORPHOLOGY_OPERATOR                   // MorphologyOperator
      72             : };
      73             : 
      74             : enum MorphologyOperator
      75             : {
      76             :   MORPHOLOGY_OPERATOR_ERODE = 0,
      77             :   MORPHOLOGY_OPERATOR_DILATE
      78             : };
      79             : 
      80             : enum MorphologyFilterInputs
      81             : {
      82             :   IN_MORPHOLOGY_IN = 0
      83             : };
      84             : 
      85             : enum AlphaMode
      86             : {
      87             :   ALPHA_MODE_PREMULTIPLIED = 0,
      88             :   ALPHA_MODE_STRAIGHT
      89             : };
      90             : 
      91             : enum ColorMatrixFilterAtts
      92             : {
      93             :   ATT_COLOR_MATRIX_MATRIX = 0,              // Matrix5x4
      94             :   ATT_COLOR_MATRIX_ALPHA_MODE               // AlphaMode
      95             : };
      96             : 
      97             : enum ColorMatrixFilterInputs
      98             : {
      99             :   IN_COLOR_MATRIX_IN = 0
     100             : };
     101             : 
     102             : enum FloodFilterAtts
     103             : {
     104             :   ATT_FLOOD_COLOR = 0                       // Color
     105             : };
     106             : 
     107             : enum FloodFilterInputs
     108             : {
     109             :   IN_FLOOD_IN = 0
     110             : };
     111             : 
     112             : enum TileFilterAtts
     113             : {
     114             :   ATT_TILE_SOURCE_RECT = 0                  // IntRect
     115             : };
     116             : 
     117             : enum TileFilterInputs
     118             : {
     119             :   IN_TILE_IN = 0
     120             : };
     121             : 
     122             : enum TransferAtts
     123             : {
     124             :   ATT_TRANSFER_DISABLE_R = 0,               // bool
     125             :   ATT_TRANSFER_DISABLE_G,                   // bool
     126             :   ATT_TRANSFER_DISABLE_B,                   // bool
     127             :   ATT_TRANSFER_DISABLE_A                    // bool
     128             : };
     129             : 
     130             : enum TransferInputs
     131             : {
     132             :   IN_TRANSFER_IN = 0
     133             : };
     134             : 
     135             : enum TableTransferAtts
     136             : {
     137             :   ATT_TABLE_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R,
     138             :   ATT_TABLE_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G,
     139             :   ATT_TABLE_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B,
     140             :   ATT_TABLE_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A,
     141             :   ATT_TABLE_TRANSFER_TABLE_R,               // Float[]
     142             :   ATT_TABLE_TRANSFER_TABLE_G,               // Float[]
     143             :   ATT_TABLE_TRANSFER_TABLE_B,               // Float[]
     144             :   ATT_TABLE_TRANSFER_TABLE_A                // Float[]
     145             : };
     146             : 
     147             : enum TableTransferInputs
     148             : {
     149             :   IN_TABLE_TRANSFER_IN = IN_TRANSFER_IN
     150             : };
     151             : 
     152             : enum DiscreteTransferAtts
     153             : {
     154             :   ATT_DISCRETE_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R,
     155             :   ATT_DISCRETE_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G,
     156             :   ATT_DISCRETE_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B,
     157             :   ATT_DISCRETE_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A,
     158             :   ATT_DISCRETE_TRANSFER_TABLE_R,            // Float[]
     159             :   ATT_DISCRETE_TRANSFER_TABLE_G,            // Float[]
     160             :   ATT_DISCRETE_TRANSFER_TABLE_B,            // Float[]
     161             :   ATT_DISCRETE_TRANSFER_TABLE_A             // Float[]
     162             : };
     163             : 
     164             : enum DiscreteTransferInputs
     165             : {
     166             :   IN_DISCRETE_TRANSFER_IN = IN_TRANSFER_IN
     167             : };
     168             : 
     169             : enum LinearTransferAtts
     170             : {
     171             :   ATT_LINEAR_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R,
     172             :   ATT_LINEAR_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G,
     173             :   ATT_LINEAR_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B,
     174             :   ATT_LINEAR_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A,
     175             :   ATT_LINEAR_TRANSFER_SLOPE_R,              // Float
     176             :   ATT_LINEAR_TRANSFER_SLOPE_G,              // Float
     177             :   ATT_LINEAR_TRANSFER_SLOPE_B,              // Float
     178             :   ATT_LINEAR_TRANSFER_SLOPE_A,              // Float
     179             :   ATT_LINEAR_TRANSFER_INTERCEPT_R,          // Float
     180             :   ATT_LINEAR_TRANSFER_INTERCEPT_G,          // Float
     181             :   ATT_LINEAR_TRANSFER_INTERCEPT_B,          // Float
     182             :   ATT_LINEAR_TRANSFER_INTERCEPT_A           // Float
     183             : };
     184             : 
     185             : enum LinearTransferInputs
     186             : {
     187             :   IN_LINEAR_TRANSFER_IN = IN_TRANSFER_IN
     188             : };
     189             : 
     190             : enum GammaTransferAtts
     191             : {
     192             :   ATT_GAMMA_TRANSFER_DISABLE_R = ATT_TRANSFER_DISABLE_R,
     193             :   ATT_GAMMA_TRANSFER_DISABLE_G = ATT_TRANSFER_DISABLE_G,
     194             :   ATT_GAMMA_TRANSFER_DISABLE_B = ATT_TRANSFER_DISABLE_B,
     195             :   ATT_GAMMA_TRANSFER_DISABLE_A = ATT_TRANSFER_DISABLE_A,
     196             :   ATT_GAMMA_TRANSFER_AMPLITUDE_R,             // Float
     197             :   ATT_GAMMA_TRANSFER_AMPLITUDE_G,             // Float
     198             :   ATT_GAMMA_TRANSFER_AMPLITUDE_B,             // Float
     199             :   ATT_GAMMA_TRANSFER_AMPLITUDE_A,             // Float
     200             :   ATT_GAMMA_TRANSFER_EXPONENT_R,              // Float
     201             :   ATT_GAMMA_TRANSFER_EXPONENT_G,              // Float
     202             :   ATT_GAMMA_TRANSFER_EXPONENT_B,              // Float
     203             :   ATT_GAMMA_TRANSFER_EXPONENT_A,              // Float
     204             :   ATT_GAMMA_TRANSFER_OFFSET_R,                // Float
     205             :   ATT_GAMMA_TRANSFER_OFFSET_G,                // Float
     206             :   ATT_GAMMA_TRANSFER_OFFSET_B,                // Float
     207             :   ATT_GAMMA_TRANSFER_OFFSET_A                 // Float
     208             : };
     209             : 
     210             : enum GammaTransferInputs
     211             : {
     212             :   IN_GAMMA_TRANSFER_IN = IN_TRANSFER_IN
     213             : };
     214             : 
     215             : enum ConvolveMatrixAtts
     216             : {
     217             :   ATT_CONVOLVE_MATRIX_KERNEL_SIZE = 0,      // IntSize
     218             :   ATT_CONVOLVE_MATRIX_KERNEL_MATRIX,        // Float[]
     219             :   ATT_CONVOLVE_MATRIX_DIVISOR,              // Float
     220             :   ATT_CONVOLVE_MATRIX_BIAS,                 // Float
     221             :   ATT_CONVOLVE_MATRIX_TARGET,               // IntPoint
     222             :   ATT_CONVOLVE_MATRIX_SOURCE_RECT,          // IntRect
     223             :   ATT_CONVOLVE_MATRIX_EDGE_MODE,            // ConvolveMatrixEdgeMode
     224             :   ATT_CONVOLVE_MATRIX_KERNEL_UNIT_LENGTH,   // Size
     225             :   ATT_CONVOLVE_MATRIX_PRESERVE_ALPHA,       // bool
     226             : };
     227             : 
     228             : enum ConvolveMatrixEdgeMode
     229             : {
     230             :   EDGE_MODE_DUPLICATE = 0,
     231             :   EDGE_MODE_WRAP,
     232             :   EDGE_MODE_NONE
     233             : };
     234             : 
     235             : enum ConvolveMatrixInputs
     236             : {
     237             :   IN_CONVOLVE_MATRIX_IN = 0
     238             : };
     239             : 
     240             : enum DisplacementMapAtts
     241             : {
     242             :   ATT_DISPLACEMENT_MAP_SCALE = 0,           // Float
     243             :   ATT_DISPLACEMENT_MAP_X_CHANNEL,           // ColorChannel
     244             :   ATT_DISPLACEMENT_MAP_Y_CHANNEL            // ColorChannel
     245             : };
     246             : 
     247             : enum ColorChannel
     248             : {
     249             :   COLOR_CHANNEL_R = 0,
     250             :   COLOR_CHANNEL_G,
     251             :   COLOR_CHANNEL_B,
     252             :   COLOR_CHANNEL_A
     253             : };
     254             : 
     255             : enum DisplacementMapInputs
     256             : {
     257             :   IN_DISPLACEMENT_MAP_IN = 0,
     258             :   IN_DISPLACEMENT_MAP_IN2
     259             : };
     260             : 
     261             : enum TurbulenceAtts
     262             : {
     263             :   ATT_TURBULENCE_BASE_FREQUENCY = 0,        // Size
     264             :   ATT_TURBULENCE_NUM_OCTAVES,               // uint32_t
     265             :   ATT_TURBULENCE_SEED,                      // uint32_t
     266             :   ATT_TURBULENCE_STITCHABLE,                // bool
     267             :   ATT_TURBULENCE_TYPE,                      // TurbulenceType
     268             :   ATT_TURBULENCE_RECT                       // IntRect
     269             : };
     270             : 
     271             : enum TurbulenceType
     272             : {
     273             :   TURBULENCE_TYPE_TURBULENCE = 0,
     274             :   TURBULENCE_TYPE_FRACTAL_NOISE
     275             : };
     276             : 
     277             : enum ArithmeticCombineAtts
     278             : {
     279             :   ATT_ARITHMETIC_COMBINE_COEFFICIENTS = 0   // Float[4]
     280             : };
     281             : 
     282             : enum ArithmeticCombineInputs
     283             : {
     284             :   IN_ARITHMETIC_COMBINE_IN = 0,
     285             :   IN_ARITHMETIC_COMBINE_IN2
     286             : };
     287             : 
     288             : enum CompositeAtts
     289             : {
     290             :   ATT_COMPOSITE_OPERATOR = 0                // CompositeOperator
     291             : };
     292             : 
     293             : enum CompositeOperator
     294             : {
     295             :   COMPOSITE_OPERATOR_OVER = 0,
     296             :   COMPOSITE_OPERATOR_IN,
     297             :   COMPOSITE_OPERATOR_OUT,
     298             :   COMPOSITE_OPERATOR_ATOP,
     299             :   COMPOSITE_OPERATOR_XOR
     300             : };
     301             : 
     302             : enum CompositeInputs
     303             : {
     304             :   // arbitrary number of inputs
     305             :   IN_COMPOSITE_IN_START = 0
     306             : };
     307             : 
     308             : enum GaussianBlurAtts
     309             : {
     310             :   ATT_GAUSSIAN_BLUR_STD_DEVIATION = 0       // Float
     311             : };
     312             : 
     313             : enum GaussianBlurInputs
     314             : {
     315             :   IN_GAUSSIAN_BLUR_IN = 0
     316             : };
     317             : 
     318             : enum DirectionalBlurAtts
     319             : {
     320             :   ATT_DIRECTIONAL_BLUR_STD_DEVIATION = 0,   // Float
     321             :   ATT_DIRECTIONAL_BLUR_DIRECTION            // BlurDirection
     322             : };
     323             : 
     324             : enum BlurDirection
     325             : {
     326             :   BLUR_DIRECTION_X = 0,
     327             :   BLUR_DIRECTION_Y
     328             : };
     329             : 
     330             : enum DirectionalBlurInputs
     331             : {
     332             :   IN_DIRECTIONAL_BLUR_IN = 0
     333             : };
     334             : 
     335             : enum LightingAtts
     336             : {
     337             :   ATT_POINT_LIGHT_POSITION = 0,             // Point3D
     338             : 
     339             :   ATT_SPOT_LIGHT_POSITION,                  // Point3D
     340             :   ATT_SPOT_LIGHT_POINTS_AT,                 // Point3D
     341             :   ATT_SPOT_LIGHT_FOCUS,                     // Float
     342             :   ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE,       // Float
     343             : 
     344             :   ATT_DISTANT_LIGHT_AZIMUTH,                // Float
     345             :   ATT_DISTANT_LIGHT_ELEVATION,              // Float
     346             : 
     347             :   ATT_LIGHTING_COLOR,                       // Color
     348             :   ATT_LIGHTING_SURFACE_SCALE,               // Float
     349             :   ATT_LIGHTING_KERNEL_UNIT_LENGTH,          // Size
     350             : 
     351             :   ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT,    // Float
     352             : 
     353             :   ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT,  // Float
     354             :   ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT   // Float
     355             : };
     356             : 
     357             : enum LightingInputs
     358             : {
     359             :   IN_LIGHTING_IN = 0
     360             : };
     361             : 
     362             : enum PointDiffuseAtts
     363             : {
     364             :   ATT_POINT_DIFFUSE_POSITION              = ATT_POINT_LIGHT_POSITION,
     365             :   ATT_POINT_DIFFUSE_COLOR                 = ATT_LIGHTING_COLOR,
     366             :   ATT_POINT_DIFFUSE_SURFACE_SCALE         = ATT_LIGHTING_SURFACE_SCALE,
     367             :   ATT_POINT_DIFFUSE_KERNEL_UNIT_LENGTH    = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     368             :   ATT_POINT_DIFFUSE_DIFFUSE_CONSTANT      = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT
     369             : };
     370             : 
     371             : enum PointDiffuseInputs
     372             : {
     373             :   IN_POINT_DIFFUSE_IN = IN_LIGHTING_IN
     374             : };
     375             : 
     376             : enum SpotDiffuseAtts
     377             : {
     378             :   ATT_SPOT_DIFFUSE_POSITION               = ATT_SPOT_LIGHT_POSITION,
     379             :   ATT_SPOT_DIFFUSE_POINTS_AT              = ATT_SPOT_LIGHT_POINTS_AT,
     380             :   ATT_SPOT_DIFFUSE_FOCUS                  = ATT_SPOT_LIGHT_FOCUS,
     381             :   ATT_SPOT_DIFFUSE_LIMITING_CONE_ANGLE    = ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE,
     382             :   ATT_SPOT_DIFFUSE_COLOR                  = ATT_LIGHTING_COLOR,
     383             :   ATT_SPOT_DIFFUSE_SURFACE_SCALE          = ATT_LIGHTING_SURFACE_SCALE,
     384             :   ATT_SPOT_DIFFUSE_KERNEL_UNIT_LENGTH     = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     385             :   ATT_SPOT_DIFFUSE_DIFFUSE_CONSTANT       = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT
     386             : };
     387             : 
     388             : enum SpotDiffuseInputs
     389             : {
     390             :   IN_SPOT_DIFFUSE_IN = IN_LIGHTING_IN
     391             : };
     392             : 
     393             : enum DistantDiffuseAtts
     394             : {
     395             :   ATT_DISTANT_DIFFUSE_AZIMUTH             = ATT_DISTANT_LIGHT_AZIMUTH,
     396             :   ATT_DISTANT_DIFFUSE_ELEVATION           = ATT_DISTANT_LIGHT_ELEVATION,
     397             :   ATT_DISTANT_DIFFUSE_COLOR               = ATT_LIGHTING_COLOR,
     398             :   ATT_DISTANT_DIFFUSE_SURFACE_SCALE       = ATT_LIGHTING_SURFACE_SCALE,
     399             :   ATT_DISTANT_DIFFUSE_KERNEL_UNIT_LENGTH  = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     400             :   ATT_DISTANT_DIFFUSE_DIFFUSE_CONSTANT    = ATT_DIFFUSE_LIGHTING_DIFFUSE_CONSTANT
     401             : };
     402             : 
     403             : enum DistantDiffuseInputs
     404             : {
     405             :   IN_DISTANT_DIFFUSE_IN = IN_LIGHTING_IN
     406             : };
     407             : 
     408             : enum PointSpecularAtts
     409             : {
     410             :   ATT_POINT_SPECULAR_POSITION             = ATT_POINT_LIGHT_POSITION,
     411             :   ATT_POINT_SPECULAR_COLOR                = ATT_LIGHTING_COLOR,
     412             :   ATT_POINT_SPECULAR_SURFACE_SCALE        = ATT_LIGHTING_SURFACE_SCALE,
     413             :   ATT_POINT_SPECULAR_KERNEL_UNIT_LENGTH   = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     414             :   ATT_POINT_SPECULAR_SPECULAR_CONSTANT    = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT,
     415             :   ATT_POINT_SPECULAR_SPECULAR_EXPONENT    = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT
     416             : };
     417             : 
     418             : enum PointSpecularInputs
     419             : {
     420             :   IN_POINT_SPECULAR_IN = IN_LIGHTING_IN
     421             : };
     422             : 
     423             : enum SpotSpecularAtts
     424             : {
     425             :   ATT_SPOT_SPECULAR_POSITION              = ATT_SPOT_LIGHT_POSITION,
     426             :   ATT_SPOT_SPECULAR_POINTS_AT             = ATT_SPOT_LIGHT_POINTS_AT,
     427             :   ATT_SPOT_SPECULAR_FOCUS                 = ATT_SPOT_LIGHT_FOCUS,
     428             :   ATT_SPOT_SPECULAR_LIMITING_CONE_ANGLE   = ATT_SPOT_LIGHT_LIMITING_CONE_ANGLE,
     429             :   ATT_SPOT_SPECULAR_COLOR                 = ATT_LIGHTING_COLOR,
     430             :   ATT_SPOT_SPECULAR_SURFACE_SCALE         = ATT_LIGHTING_SURFACE_SCALE,
     431             :   ATT_SPOT_SPECULAR_KERNEL_UNIT_LENGTH    = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     432             :   ATT_SPOT_SPECULAR_SPECULAR_CONSTANT     = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT,
     433             :   ATT_SPOT_SPECULAR_SPECULAR_EXPONENT     = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT
     434             : };
     435             : 
     436             : enum SpotSpecularInputs
     437             : {
     438             :   IN_SPOT_SPECULAR_IN = IN_LIGHTING_IN
     439             : };
     440             : 
     441             : enum DistantSpecularAtts
     442             : {
     443             :   ATT_DISTANT_SPECULAR_AZIMUTH            = ATT_DISTANT_LIGHT_AZIMUTH,
     444             :   ATT_DISTANT_SPECULAR_ELEVATION          = ATT_DISTANT_LIGHT_ELEVATION,
     445             :   ATT_DISTANT_SPECULAR_COLOR              = ATT_LIGHTING_COLOR,
     446             :   ATT_DISTANT_SPECULAR_SURFACE_SCALE      = ATT_LIGHTING_SURFACE_SCALE,
     447             :   ATT_DISTANT_SPECULAR_KERNEL_UNIT_LENGTH = ATT_LIGHTING_KERNEL_UNIT_LENGTH,
     448             :   ATT_DISTANT_SPECULAR_SPECULAR_CONSTANT  = ATT_SPECULAR_LIGHTING_SPECULAR_CONSTANT,
     449             :   ATT_DISTANT_SPECULAR_SPECULAR_EXPONENT  = ATT_SPECULAR_LIGHTING_SPECULAR_EXPONENT
     450             : };
     451             : 
     452             : enum DistantSpecularInputs
     453             : {
     454             :   IN_DISTANT_SPECULAR_IN = IN_LIGHTING_IN
     455             : };
     456             : 
     457             : enum CropAtts
     458             : {
     459             :   ATT_CROP_RECT = 0                         // Rect
     460             : };
     461             : 
     462             : enum CropInputs
     463             : {
     464             :   IN_CROP_IN = 0
     465             : };
     466             : 
     467             : enum PremultiplyInputs
     468             : {
     469             :   IN_PREMULTIPLY_IN = 0
     470             : };
     471             : 
     472             : enum UnpremultiplyInputs
     473             : {
     474             :   IN_UNPREMULTIPLY_IN = 0
     475             : };
     476             : 
     477             : class FilterNode : public RefCounted<FilterNode>
     478             : {
     479             : public:
     480           0 :   MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(FilterNode)
     481           0 :   virtual ~FilterNode() {}
     482             : 
     483             :   virtual FilterBackend GetBackendType() = 0;
     484             : 
     485           0 :   virtual void SetInput(uint32_t aIndex, SourceSurface *aSurface) { MOZ_CRASH("GFX: FilterNode"); }
     486           0 :   virtual void SetInput(uint32_t aIndex, FilterNode *aFilter) { MOZ_CRASH("GFX: FilterNode"); }
     487             : 
     488           0 :   virtual void SetAttribute(uint32_t aIndex, bool) { MOZ_CRASH("GFX: FilterNode"); }
     489           0 :   virtual void SetAttribute(uint32_t aIndex, uint32_t) { MOZ_CRASH("GFX: FilterNode"); }
     490           0 :   virtual void SetAttribute(uint32_t aIndex, Float) { MOZ_CRASH("GFX: FilterNode"); }
     491           0 :   virtual void SetAttribute(uint32_t aIndex, const Size &) { MOZ_CRASH("GFX: FilterNode"); }
     492           0 :   virtual void SetAttribute(uint32_t aIndex, const IntSize &) { MOZ_CRASH("GFX: FilterNode"); }
     493           0 :   virtual void SetAttribute(uint32_t aIndex, const IntPoint &) { MOZ_CRASH("GFX: FilterNode"); }
     494           0 :   virtual void SetAttribute(uint32_t aIndex, const Rect &) { MOZ_CRASH("GFX: FilterNode"); }
     495           0 :   virtual void SetAttribute(uint32_t aIndex, const IntRect &) { MOZ_CRASH("GFX: FilterNode"); }
     496           0 :   virtual void SetAttribute(uint32_t aIndex, const Point &) { MOZ_CRASH("GFX: FilterNode"); }
     497           0 :   virtual void SetAttribute(uint32_t aIndex, const Matrix &) { MOZ_CRASH("GFX: FilterNode"); }
     498           0 :   virtual void SetAttribute(uint32_t aIndex, const Matrix5x4 &) { MOZ_CRASH("GFX: FilterNode"); }
     499           0 :   virtual void SetAttribute(uint32_t aIndex, const Point3D &) { MOZ_CRASH("GFX: FilterNode"); }
     500           0 :   virtual void SetAttribute(uint32_t aIndex, const Color &) { MOZ_CRASH("GFX: FilterNode"); }
     501           0 :   virtual void SetAttribute(uint32_t aIndex, const Float* aFloat, uint32_t aSize) { MOZ_CRASH("GFX: FilterNode"); }
     502             : 
     503             : protected:
     504             :   friend class Factory;
     505             : 
     506           0 :   FilterNode() {}
     507             : };
     508             : 
     509             : } // namespace gfx
     510             : } // namespace mozilla
     511             : 
     512             : #endif

Generated by: LCOV version 1.13