Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
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
@ 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
@ 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
@ 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
const ClassID fClassID

◆ 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

◆ 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); }

◆ 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 }
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=()

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: