Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
GrDistanceFieldLCDTextGeoProc::Impl Class Reference
Inheritance diagram for GrDistanceFieldLCDTextGeoProc::Impl:
GrGeometryProcessor::ProgramImpl

Public Member Functions

void setData (const GrGLSLProgramDataManager &pdman, const GrShaderCaps &shaderCaps, const GrGeometryProcessor &geomProc) override
 
- Public Member Functions inherited from GrGeometryProcessor::ProgramImpl
virtual ~ProgramImpl ()=default
 
std::tuple< FPCoordsMap, GrShaderVaremitCode (EmitArgs &, const GrPipeline &pipeline)
 
void emitTransformCode (GrGLSLVertexBuilder *vb, GrGLSLUniformHandler *uniformHandler)
 
virtual void setData (const GrGLSLProgramDataManager &, const GrShaderCaps &, const GrGeometryProcessor &)=0
 

Additional Inherited Members

- Public Types inherited from GrGeometryProcessor::ProgramImpl
using UniformHandle = GrGLSLProgramDataManager::UniformHandle
 
using SamplerHandle = GrGLSLUniformHandler::SamplerHandle
 
using FPCoordsMap = std::unordered_map< const GrFragmentProcessor *, FPCoords >
 
- Static Public Member Functions inherited from GrGeometryProcessor::ProgramImpl
static uint32_t ComputeMatrixKey (const GrShaderCaps &caps, const SkMatrix &mat)
 
static uint32_t ComputeMatrixKeys (const GrShaderCaps &shaderCaps, const SkMatrix &viewMatrix, const SkMatrix &localMatrix)
 
static uint32_t AddMatrixKeys (const GrShaderCaps &shaderCaps, uint32_t flags, const SkMatrix &viewMatrix, const SkMatrix &localMatrix)
 
- Static Public Attributes inherited from GrGeometryProcessor::ProgramImpl
static constexpr int kMatrixKeyBits = 2
 
- Protected Member Functions inherited from GrGeometryProcessor::ProgramImpl
void setupUniformColor (GrGLSLFPFragmentBuilder *fragBuilder, GrGLSLUniformHandler *uniformHandler, const char *outputName, UniformHandle *colorUniform)
 
- Static Protected Member Functions inherited from GrGeometryProcessor::ProgramImpl
static void SetTransform (const GrGLSLProgramDataManager &, const GrShaderCaps &, const UniformHandle &uniform, const SkMatrix &matrix, SkMatrix *state=nullptr)
 
static void WriteOutputPosition (GrGLSLVertexBuilder *, GrGPArgs *, const char *posName)
 
static void WriteOutputPosition (GrGLSLVertexBuilder *, GrGLSLUniformHandler *, const GrShaderCaps &, GrGPArgs *, const char *posName, const SkMatrix &viewMatrix, UniformHandle *viewMatrixUniform)
 
static void WriteLocalCoord (GrGLSLVertexBuilder *, GrGLSLUniformHandler *, const GrShaderCaps &, GrGPArgs *, GrShaderVar localVar, const SkMatrix &localMatrix, UniformHandle *localMatrixUniform)
 

Detailed Description

Definition at line 580 of file GrDistanceFieldGeoProc.cpp.

Member Function Documentation

◆ setData()

void GrDistanceFieldLCDTextGeoProc::Impl::setData ( const GrGLSLProgramDataManager ,
const GrShaderCaps ,
const GrGeometryProcessor  
)
inlineoverridevirtual

A ProgramImpl instance can be reused with any GrGeometryProcessor that produces the same key. This function reads data from a GrGeometryProcessor and updates any uniform variables required by the shaders created in emitCode(). The GrGeometryProcessor parameter is guaranteed to be of the same type and to have an identical processor key as the GrGeometryProcessor that created this ProgramImpl.

Implements GrGeometryProcessor::ProgramImpl.

Definition at line 582 of file GrDistanceFieldGeoProc.cpp.

584 {
585 SkASSERT(fDistanceAdjustUni.isValid());
586
588 GrDistanceFieldLCDTextGeoProc::DistanceAdjust wa = dflcd.fDistanceAdjust;
589 if (wa != fDistanceAdjust) {
590 pdman.set3f(fDistanceAdjustUni, wa.fR, wa.fG, wa.fB);
591 fDistanceAdjust = wa;
592 }
593
594 const SkISize& atlasDimensions = dflcd.fAtlasDimensions;
595 SkASSERT(SkIsPow2(atlasDimensions.fWidth) && SkIsPow2(atlasDimensions.fHeight));
596 if (fAtlasDimensions != atlasDimensions) {
597 pdman.set2f(fAtlasDimensionsInvUniform,
598 1.0f / atlasDimensions.fWidth,
599 1.0f / atlasDimensions.fHeight);
600 fAtlasDimensions = atlasDimensions;
601 }
602 SetTransform(pdman, shaderCaps, fLocalMatrixUniform, dflcd.fLocalMatrix, &fLocalMatrix);
603 }
#define SkASSERT(cond)
Definition: SkAssert.h:116
constexpr bool SkIsPow2(T value)
Definition: SkMath.h:51
static void SetTransform(const GrGLSLProgramDataManager &, const GrShaderCaps &, const UniformHandle &uniform, const SkMatrix &matrix, SkMatrix *state=nullptr)
const T & cast() const
Definition: GrProcessor.h:127
Definition: SkSize.h:16
int32_t fHeight
Definition: SkSize.h:18
int32_t fWidth
Definition: SkSize.h:17

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