Flutter Engine
The Flutter Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | List of all members
GrVkPipelineStateBuilder Class Reference

#include <GrVkPipelineStateBuilder.h>

Inheritance diagram for GrVkPipelineStateBuilder:
GrGLSLProgramBuilder

Public Member Functions

const GrCapscaps () const override
 
GrVkGpugpu () const
 
void finalizeFragmentSecondaryColor (GrShaderVar &outputColor) override
 
- Public Member Functions inherited from GrGLSLProgramBuilder
virtual ~GrGLSLProgramBuilder ()
 
virtual const GrCapscaps () const =0
 
const GrShaderCapsshaderCaps () const
 
GrSurfaceOrigin origin () const
 
const GrPipelinepipeline () const
 
const GrGeometryProcessorgeometryProcessor () const
 
bool snapVerticesToPixelCenters () const
 
bool hasPointSize () const
 
const GrProgramDescdesc () const
 
void appendUniformDecls (GrShaderFlags visibility, SkString *) const
 
const char * samplerVariable (SamplerHandle handle) const
 
skgpu::Swizzle samplerSwizzle (SamplerHandle handle) const
 
const char * inputSamplerVariable (SamplerHandle handle) const
 
skgpu::Swizzle inputSamplerSwizzle (SamplerHandle handle) const
 
void addRTFlipUniform (const char *name)
 
SkString nameVariable (char prefix, const char *name, bool mangle=true)
 
bool emitTextureSamplersForFPs (const GrFragmentProcessor &fp, GrFragmentProcessor::ProgramImpl &impl, int *samplerIndex)
 
void advanceStage ()
 
void writeFPFunction (const GrFragmentProcessor &fp, GrFragmentProcessor::ProgramImpl &impl)
 
std::string invokeFP (const GrFragmentProcessor &fp, const GrFragmentProcessor::ProgramImpl &impl, const char *inputColor, const char *destColor, const char *coords) const
 
bool fragmentProcessorHasCoordsParam (const GrFragmentProcessor *) const
 
virtual GrGLSLUniformHandleruniformHandler ()=0
 
virtual const GrGLSLUniformHandleruniformHandler () const =0
 
virtual GrGLSLVaryingHandlervaryingHandler ()=0
 
virtual void finalizeFragmentSecondaryColor (GrShaderVar &outputColor)
 

Static Public Member Functions

static GrVkPipelineStateCreatePipelineState (GrVkGpu *, const GrProgramDesc &, const GrProgramInfo &, VkRenderPass compatibleRenderPass, bool overrideSubpassForResolveLoad)
 

Additional Inherited Members

- Public Types inherited from GrGLSLProgramBuilder
using UniformHandle = GrGLSLUniformHandler::UniformHandle
 
using SamplerHandle = GrGLSLUniformHandler::SamplerHandle
 
- Public Attributes inherited from GrGLSLProgramBuilder
GrGLSLVertexBuilder fVS
 
GrGLSLFragmentShaderBuilder fFS
 
const GrProgramDescfDesc
 
const GrProgramInfofProgramInfo
 
GrGLSLBuiltinUniformHandles fUniformHandles
 
std::unique_ptr< GrGeometryProcessor::ProgramImplfGPImpl
 
std::unique_ptr< GrXferProcessor::ProgramImplfXPImpl
 
std::vector< std::unique_ptr< GrFragmentProcessor::ProgramImpl > > fFPImpls
 
SamplerHandle fDstTextureSamplerHandle
 
GrSurfaceOrigin fDstTextureOrigin
 
- Static Public Attributes inherited from GrGLSLProgramBuilder
static const int kVarsPerBlock = 8
 
- Protected Member Functions inherited from GrGLSLProgramBuilder
 GrGLSLProgramBuilder (const GrProgramDesc &, const GrProgramInfo &)
 
void addFeature (GrShaderFlags shaders, uint32_t featureBit, const char *extensionName)
 
bool emitAndInstallProcs ()
 
void finalizeShaders ()
 
bool fragColorIsInOut () const
 

Detailed Description

Definition at line 25 of file GrVkPipelineStateBuilder.h.

Member Function Documentation

◆ caps()

const GrCaps * GrVkPipelineStateBuilder::caps ( ) const
overridevirtual

Implements GrGLSLProgramBuilder.

Definition at line 59 of file GrVkPipelineStateBuilder.cpp.

59 {
60 return fGpu->caps();
61}
const GrCaps * caps() const
Definition: GrGpu.h:73

◆ CreatePipelineState()

GrVkPipelineState * GrVkPipelineStateBuilder::CreatePipelineState ( GrVkGpu gpu,
const GrProgramDesc desc,
const GrProgramInfo programInfo,
VkRenderPass  compatibleRenderPass,
bool  overrideSubpassForResolveLoad 
)
static

Generates a pipeline state.

The return GrVkPipelineState implements the supplied GrProgramInfo.

Returns
the created pipeline if generation was successful; nullptr otherwise

Definition at line 26 of file GrVkPipelineStateBuilder.cpp.

31 {
32
33 GrVkResourceProvider& resourceProvider = gpu->resourceProvider();
34
35 resourceProvider.pipelineStateCache()->stats()->incShaderCompilations();
36
37 // ensure that we use "." as a decimal separator when creating SkSL code
38 GrAutoLocaleSetter als("C");
39
40 // create a builder. This will be handed off to effects so they can use it to add
41 // uniforms, varyings, textures, etc
43
44 if (!builder.emitAndInstallProcs()) {
45 return nullptr;
46 }
47
48 return builder.finalize(desc, compatibleRenderPass, overrideSubpassForResolveLoad);
49}
const GrProgramDesc & desc() const
GrVkResourceProvider & resourceProvider()
Definition: GrVkGpu.h:83
GrThreadSafePipelineBuilder * pipelineStateCache()

◆ finalizeFragmentSecondaryColor()

void GrVkPipelineStateBuilder::finalizeFragmentSecondaryColor ( GrShaderVar outputColor)
overridevirtual

Reimplemented from GrGLSLProgramBuilder.

Definition at line 63 of file GrVkPipelineStateBuilder.cpp.

63 {
64 outputColor.addLayoutQualifier("location = 0, index = 1");
65}
void addLayoutQualifier(const char *layoutQualifier)
Definition: GrShaderVar.h:103

◆ gpu()

GrVkGpu * GrVkPipelineStateBuilder::gpu ( ) const
inline

Definition at line 41 of file GrVkPipelineStateBuilder.h.

41{ return fGpu; }

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