Flutter Engine
The Flutter Engine
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GrProcessor Class Referenceabstract

#include <GrProcessor.h>

Inheritance diagram for GrProcessor:
GrFragmentProcessor GrGeometryProcessor GrXferProcessor BlendFragmentProcessor BlockInputFragmentProcessor ColorTableEffect GrBicubicEffect GrColorSpaceXformEffect GrConvexPolyEffect GrMatrixEffect GrModulateAtlasCoverageEffect GrPerlinNoise2Effect GrSkSLFP GrTextureEffect GrYUVtoRGBEffect LazyProxyTest::ClipFP SampleCoordEffect ButtCapDashedCircleGeometryProcessor CircleGeometryProcessor DIEllipseGeometryProcessor DefaultGeoProc EllipseGeometryProcessor GrBitmapTextGeoProc GrConicEffect GrDistanceFieldA8TextGeoProc GrDistanceFieldLCDTextGeoProc GrDistanceFieldPathGeoProc GrQuadEffect GrRRectShadowGeoProc GrTessellationShader skgpu::ganesh::QuadPerEdgeAA::QuadPerEdgeAAGeometryProcessor CoverageSetOpXP CustomXP DisableColorXP PDLCDXferProcessor PorterDuffXferProcessor ShaderPDXferProcessor

Public Types

enum  ClassID {
  kNull_ClassID , kAttributeTestProcessor_ClassID , kBigKeyProcessor_ClassID , kBlendFragmentProcessor_ClassID ,
  kBlockInputFragmentProcessor_ClassID , kButtCapStrokedCircleGeometryProcessor_ClassID , kCircleGeometryProcessor_ClassID , kCircularRRectEffect_ClassID ,
  kClockwiseTestProcessor_ClassID , kColorTableEffect_ClassID , kCoverageSetOpXP_ClassID , kCustomXP_ClassID ,
  kDashingCircleEffect_ClassID , kDashingLineEffect_ClassID , kDefaultGeoProc_ClassID , kDeviceSpace_ClassID ,
  kDIEllipseGeometryProcessor_ClassID , kDisableColorXP_ClassID , kDrawAtlasPathShader_ClassID , kEllipseGeometryProcessor_ClassID ,
  kEllipticalRRectEffect_ClassID , kFwidthSquircleTestProcessor_ClassID , kGP_ClassID , kGrBicubicEffect_ClassID ,
  kGrBitmapTextGeoProc_ClassID , kGrColorSpaceXformEffect_ClassID , kGrConicEffect_ClassID , kGrConvexPolyEffect_ClassID ,
  kGrDiffuseLightingEffect_ClassID , kGrDisplacementMapEffect_ClassID , kGrDistanceFieldA8TextGeoProc_ClassID , kGrDistanceFieldLCDTextGeoProc_ClassID ,
  kGrDistanceFieldPathGeoProc_ClassID , kGrFillRRectOp_Processor_ClassID , kGrGaussianConvolutionFragmentProcessor_ClassID , kGrMatrixConvolutionEffect_ClassID ,
  kGrMatrixEffect_ClassID , kGrMeshTestProcessor_ClassID , kGrMorphologyEffect_ClassID , kGrPerlinNoise2Effect_ClassID ,
  kGrPipelineDynamicStateTestProcessor_ClassID , kGrQuadEffect_ClassID , kGrRRectShadowGeoProc_ClassID , kGrSkSLFP_ClassID ,
  kGrSpecularLightingEffect_ClassID , kGrTextureEffect_ClassID , kGrUnrolledBinaryGradientColorizer_ClassID , kGrYUVtoRGBEffect_ClassID ,
  kHighPrecisionFragmentProcessor_ClassID , kLatticeGP_ClassID , kPDLCDXferProcessor_ClassID , kPorterDuffXferProcessor_ClassID ,
  kPremulFragmentProcessor_ClassID , kQuadEdgeEffect_ClassID , kQuadPerEdgeAAGeometryProcessor_ClassID , kSeriesFragmentProcessor_ClassID ,
  kShaderPDXferProcessor_ClassID , kSurfaceColorProcessor_ClassID , kSwizzleFragmentProcessor_ClassID , kTessellate_BoundingBoxShader_ClassID ,
  kTessellate_GrModulateAtlasCoverageEffect_ClassID , kTessellate_GrStrokeTessellationShader_ClassID , kTessellate_HullShader_ClassID , kTessellate_MiddleOutShader_ClassID ,
  kTessellate_SimpleTriangleShader_ClassID , kTessellationTestTriShader_ClassID , kTestFP_ClassID , kTestRectOp_ClassID ,
  kVertexColorSpaceBenchGP_ClassID , kVerticesGP_ClassID
}
 

Public Member Functions

virtual ~GrProcessor ()=default
 
virtual const char * name () const =0
 
void * operator new (size_t size)
 
void * operator new (size_t object_size, size_t footer_size)
 
void operator delete (void *target)
 
void * operator new (size_t size, void *placement)
 
void operator delete (void *target, void *placement)
 
template<typename T >
const Tcast () const
 
ClassID classID () const
 

Protected Member Functions

 GrProcessor (ClassID classID)
 
 GrProcessor (const GrProcessor &)=delete
 
GrProcessoroperator= (const GrProcessor &)=delete
 

Protected Attributes

const ClassID fClassID
 

Detailed Description

Provides custom shader code to the Ganesh shading pipeline. GrProcessor objects must be immutable: after being constructed, their fields may not change.

Dynamically allocated GrProcessors are managed by a per-thread memory pool. The ref count of an processor must reach 0 before the thread terminates and the pool is destroyed.

Definition at line 22 of file GrProcessor.h.

Member Enumeration Documentation

◆ ClassID

Enumerator
kNull_ClassID 
kAttributeTestProcessor_ClassID 
kBigKeyProcessor_ClassID 
kBlendFragmentProcessor_ClassID 
kBlockInputFragmentProcessor_ClassID 
kButtCapStrokedCircleGeometryProcessor_ClassID 
kCircleGeometryProcessor_ClassID 
kCircularRRectEffect_ClassID 
kClockwiseTestProcessor_ClassID 
kColorTableEffect_ClassID 
kCoverageSetOpXP_ClassID 
kCustomXP_ClassID 
kDashingCircleEffect_ClassID 
kDashingLineEffect_ClassID 
kDefaultGeoProc_ClassID 
kDeviceSpace_ClassID 
kDIEllipseGeometryProcessor_ClassID 
kDisableColorXP_ClassID 
kDrawAtlasPathShader_ClassID 
kEllipseGeometryProcessor_ClassID 
kEllipticalRRectEffect_ClassID 
kFwidthSquircleTestProcessor_ClassID 
kGP_ClassID 
kGrBicubicEffect_ClassID 
kGrBitmapTextGeoProc_ClassID 
kGrColorSpaceXformEffect_ClassID 
kGrConicEffect_ClassID 
kGrConvexPolyEffect_ClassID 
kGrDiffuseLightingEffect_ClassID 
kGrDisplacementMapEffect_ClassID 
kGrDistanceFieldA8TextGeoProc_ClassID 
kGrDistanceFieldLCDTextGeoProc_ClassID 
kGrDistanceFieldPathGeoProc_ClassID 
kGrFillRRectOp_Processor_ClassID 
kGrGaussianConvolutionFragmentProcessor_ClassID 
kGrMatrixConvolutionEffect_ClassID 
kGrMatrixEffect_ClassID 
kGrMeshTestProcessor_ClassID 
kGrMorphologyEffect_ClassID 
kGrPerlinNoise2Effect_ClassID 
kGrPipelineDynamicStateTestProcessor_ClassID 
kGrQuadEffect_ClassID 
kGrRRectShadowGeoProc_ClassID 
kGrSkSLFP_ClassID 
kGrSpecularLightingEffect_ClassID 
kGrTextureEffect_ClassID 
kGrUnrolledBinaryGradientColorizer_ClassID 
kGrYUVtoRGBEffect_ClassID 
kHighPrecisionFragmentProcessor_ClassID 
kLatticeGP_ClassID 
kPDLCDXferProcessor_ClassID 
kPorterDuffXferProcessor_ClassID 
kPremulFragmentProcessor_ClassID 
kQuadEdgeEffect_ClassID 
kQuadPerEdgeAAGeometryProcessor_ClassID 
kSeriesFragmentProcessor_ClassID 
kShaderPDXferProcessor_ClassID 
kSurfaceColorProcessor_ClassID 
kSwizzleFragmentProcessor_ClassID 
kTessellate_BoundingBoxShader_ClassID 
kTessellate_GrModulateAtlasCoverageEffect_ClassID 
kTessellate_GrStrokeTessellationShader_ClassID 
kTessellate_HullShader_ClassID 
kTessellate_MiddleOutShader_ClassID 
kTessellate_SimpleTriangleShader_ClassID 
kTessellationTestTriShader_ClassID 
kTestFP_ClassID 
kTestRectOp_ClassID 
kVertexColorSpaceBenchGP_ClassID 
kVerticesGP_ClassID 

Definition at line 24 of file GrProcessor.h.

24 {
25 kNull_ClassID, // Reserved ID for missing (null) processors
26
96 };
@ kPorterDuffXferProcessor_ClassID
Definition: GrProcessor.h:77
@ kTessellate_GrModulateAtlasCoverageEffect_ClassID
Definition: GrProcessor.h:86
@ kEllipticalRRectEffect_ClassID
Definition: GrProcessor.h:46
@ kGrMatrixConvolutionEffect_ClassID
Definition: GrProcessor.h:61
@ kCustomXP_ClassID
Definition: GrProcessor.h:37
@ kDeviceSpace_ClassID
Definition: GrProcessor.h:41
@ kDashingLineEffect_ClassID
Definition: GrProcessor.h:39
@ kBlockInputFragmentProcessor_ClassID
Definition: GrProcessor.h:30
@ kShaderPDXferProcessor_ClassID
Definition: GrProcessor.h:82
@ kGrUnrolledBinaryGradientColorizer_ClassID
Definition: GrProcessor.h:72
@ kGrSkSLFP_ClassID
Definition: GrProcessor.h:69
@ kGrDistanceFieldLCDTextGeoProc_ClassID
Definition: GrProcessor.h:57
@ kCircleGeometryProcessor_ClassID
Definition: GrProcessor.h:32
@ kSurfaceColorProcessor_ClassID
Definition: GrProcessor.h:83
@ kTessellate_HullShader_ClassID
Definition: GrProcessor.h:88
@ kBigKeyProcessor_ClassID
Definition: GrProcessor.h:28
@ kGrDisplacementMapEffect_ClassID
Definition: GrProcessor.h:55
@ kGrMatrixEffect_ClassID
Definition: GrProcessor.h:62
@ kGrDistanceFieldA8TextGeoProc_ClassID
Definition: GrProcessor.h:56
@ kPDLCDXferProcessor_ClassID
Definition: GrProcessor.h:76
@ kTessellate_MiddleOutShader_ClassID
Definition: GrProcessor.h:89
@ kFwidthSquircleTestProcessor_ClassID
Definition: GrProcessor.h:47
@ kSeriesFragmentProcessor_ClassID
Definition: GrProcessor.h:81
@ kGrPerlinNoise2Effect_ClassID
Definition: GrProcessor.h:65
@ kTessellate_GrStrokeTessellationShader_ClassID
Definition: GrProcessor.h:87
@ kGrColorSpaceXformEffect_ClassID
Definition: GrProcessor.h:51
@ kCoverageSetOpXP_ClassID
Definition: GrProcessor.h:36
@ kQuadPerEdgeAAGeometryProcessor_ClassID
Definition: GrProcessor.h:80
@ kPremulFragmentProcessor_ClassID
Definition: GrProcessor.h:78
@ kDefaultGeoProc_ClassID
Definition: GrProcessor.h:40
@ kDashingCircleEffect_ClassID
Definition: GrProcessor.h:38
@ kVertexColorSpaceBenchGP_ClassID
Definition: GrProcessor.h:94
@ kGrMorphologyEffect_ClassID
Definition: GrProcessor.h:64
@ kGrDistanceFieldPathGeoProc_ClassID
Definition: GrProcessor.h:58
@ kGrBicubicEffect_ClassID
Definition: GrProcessor.h:49
@ kGrRRectShadowGeoProc_ClassID
Definition: GrProcessor.h:68
@ kGrQuadEffect_ClassID
Definition: GrProcessor.h:67
@ kEllipseGeometryProcessor_ClassID
Definition: GrProcessor.h:45
@ kDisableColorXP_ClassID
Definition: GrProcessor.h:43
@ kGrSpecularLightingEffect_ClassID
Definition: GrProcessor.h:70
@ kHighPrecisionFragmentProcessor_ClassID
Definition: GrProcessor.h:74
@ kTessellate_SimpleTriangleShader_ClassID
Definition: GrProcessor.h:90
@ kGrMeshTestProcessor_ClassID
Definition: GrProcessor.h:63
@ kDrawAtlasPathShader_ClassID
Definition: GrProcessor.h:44
@ kBlendFragmentProcessor_ClassID
Definition: GrProcessor.h:29
@ kQuadEdgeEffect_ClassID
Definition: GrProcessor.h:79
@ kColorTableEffect_ClassID
Definition: GrProcessor.h:35
@ kCircularRRectEffect_ClassID
Definition: GrProcessor.h:33
@ kVerticesGP_ClassID
Definition: GrProcessor.h:95
@ kAttributeTestProcessor_ClassID
Definition: GrProcessor.h:27
@ kGrConvexPolyEffect_ClassID
Definition: GrProcessor.h:53
@ kLatticeGP_ClassID
Definition: GrProcessor.h:75
@ kClockwiseTestProcessor_ClassID
Definition: GrProcessor.h:34
@ kTestRectOp_ClassID
Definition: GrProcessor.h:93
@ kGrGaussianConvolutionFragmentProcessor_ClassID
Definition: GrProcessor.h:60
@ kGrDiffuseLightingEffect_ClassID
Definition: GrProcessor.h:54
@ kGrFillRRectOp_Processor_ClassID
Definition: GrProcessor.h:59
@ kTessellationTestTriShader_ClassID
Definition: GrProcessor.h:91
@ kButtCapStrokedCircleGeometryProcessor_ClassID
Definition: GrProcessor.h:31
@ kGrTextureEffect_ClassID
Definition: GrProcessor.h:71
@ kGrBitmapTextGeoProc_ClassID
Definition: GrProcessor.h:50
@ kSwizzleFragmentProcessor_ClassID
Definition: GrProcessor.h:84
@ kGrYUVtoRGBEffect_ClassID
Definition: GrProcessor.h:73
@ kGrConicEffect_ClassID
Definition: GrProcessor.h:52
@ kDIEllipseGeometryProcessor_ClassID
Definition: GrProcessor.h:42
@ kTessellate_BoundingBoxShader_ClassID
Definition: GrProcessor.h:85
@ kGrPipelineDynamicStateTestProcessor_ClassID
Definition: GrProcessor.h:66

Constructor & Destructor Documentation

◆ ~GrProcessor()

virtual GrProcessor::~GrProcessor ( )
virtualdefault

◆ GrProcessor() [1/2]

GrProcessor::GrProcessor ( ClassID  classID)
inlineprotected

Definition at line 132 of file GrProcessor.h.

132: fClassID(classID) {}
ClassID classID() const
Definition: GrProcessor.h:129
const ClassID fClassID
Definition: GrProcessor.h:136

◆ GrProcessor() [2/2]

GrProcessor::GrProcessor ( const GrProcessor )
protecteddelete

Member Function Documentation

◆ cast()

template<typename T >
const T & GrProcessor::cast ( ) const
inline

Helper for down-casting to a GrProcessor subclass

Definition at line 127 of file GrProcessor.h.

127{ return *static_cast<const T*>(this); }
#define T
Definition: precompiler.cc:65

◆ classID()

ClassID GrProcessor::classID ( ) const
inline

Definition at line 129 of file GrProcessor.h.

129{ return fClassID; }

◆ name()

virtual const char * GrProcessor::name ( ) const
pure virtual

◆ operator delete() [1/2]

void GrProcessor::operator delete ( void *  target)

Definition at line 49 of file GrProcessor.cpp.

49 {
50 return MemoryPoolAccessor().pool()->release(target);
51}
uint32_t * target

◆ operator delete() [2/2]

void GrProcessor::operator delete ( void *  target,
void *  placement 
)
inline

Definition at line 122 of file GrProcessor.h.

122 {
123 ::operator delete(target, placement);
124 }

◆ operator new() [1/3]

void * GrProcessor::operator new ( size_t  object_size,
size_t  footer_size 
)

Definition at line 45 of file GrProcessor.cpp.

45 {
46 return MemoryPoolAccessor().pool()->allocate(object_size + footer_size);
47}

◆ operator new() [2/3]

void * GrProcessor::operator new ( size_t  size)

Human-readable dump of all information

Definition at line 43 of file GrProcessor.cpp.

43{ return MemoryPoolAccessor().pool()->allocate(size); }
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259

◆ operator new() [3/3]

void * GrProcessor::operator new ( size_t  size,
void *  placement 
)
inline

Definition at line 119 of file GrProcessor.h.

119 {
120 return ::operator new(size, placement);
121 }

◆ operator=()

GrProcessor & GrProcessor::operator= ( const GrProcessor )
protecteddelete

Member Data Documentation

◆ fClassID

const ClassID GrProcessor::fClassID
protected

Definition at line 136 of file GrProcessor.h.


The documentation for this class was generated from the following files: