Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Friends | List of all members
SkSL::SPIRVCodeGenerator Class Reference
Inheritance diagram for SkSL::SPIRVCodeGenerator:
SkSL::CodeGenerator

Classes

class  LValue
 
struct  Word
 

Public Member Functions

 SPIRVCodeGenerator (const Context *context, const ShaderCaps *caps, const Program *program, OutputStream *out)
 
bool generateCode () override
 
- Public Member Functions inherited from SkSL::CodeGenerator
 CodeGenerator (const Context *context, const ShaderCaps *caps, const Program *program, OutputStream *stream)
 
virtual ~CodeGenerator ()=default
 
OutputStreamoutputStream ()
 
void setOutputStream (OutputStream *output)
 

Static Public Attributes

static constexpr SpvId NA = (SpvId)-1
 

Friends

class PointerLValue
 
class SwizzleLValue
 

Additional Inherited Members

- Protected Attributes inherited from SkSL::CodeGenerator
const ProgramfProgram
 
Context fContext
 
const ShaderCapsfCaps
 
OutputStreamfOut
 
- Static Protected Attributes inherited from SkSL::CodeGenerator
static constexpr float kSharpenTexturesBias = -.475f
 

Detailed Description

Definition at line 112 of file SkSLSPIRVCodeGenerator.cpp.

Constructor & Destructor Documentation

◆ SPIRVCodeGenerator()

SkSL::SPIRVCodeGenerator::SPIRVCodeGenerator ( const Context context,
const ShaderCaps caps,
const Program program,
OutputStream out 
)
inline

Definition at line 144 of file SkSLSPIRVCodeGenerator.cpp.

148 : INHERITED(context, caps, program, out) {}

Member Function Documentation

◆ generateCode()

bool SkSL::SPIRVCodeGenerator::generateCode ( )
overridevirtual

Implements SkSL::CodeGenerator.

Definition at line 5296 of file SkSLSPIRVCodeGenerator.cpp.

5296 {
5298 this->writeWord(SpvMagicNumber, *fOut);
5299 this->writeWord(SpvVersion, *fOut);
5300 this->writeWord(SKSL_MAGIC, *fOut);
5301 StringStream buffer;
5302 this->writeInstructions(fProgram, buffer);
5303 this->writeWord(fIdCount, *fOut);
5304 this->writeWord(0, *fOut); // reserved, always zero
5306 return fContext.fErrors->errorCount() == 0;
5307}
#define SkASSERT(cond)
Definition SkAssert.h:116
const Program & fProgram
ErrorReporter * fErrors
Definition SkSLContext.h:36
static const uint8_t buffer[]
static const int32_t SKSL_MAGIC
void write_stringstream(const StringStream &s, OutputStream &out)
Definition SkSLUtil.cpp:41
static const unsigned int SpvMagicNumber
Definition spirv.h:56
static const unsigned int SpvVersion
Definition spirv.h:57

Friends And Related Symbol Documentation

◆ PointerLValue

friend class PointerLValue
friend

Definition at line 658 of file SkSLSPIRVCodeGenerator.cpp.

◆ SwizzleLValue

friend class SwizzleLValue
friend

Definition at line 659 of file SkSLSPIRVCodeGenerator.cpp.

Member Data Documentation

◆ NA

constexpr SpvId SkSL::SPIRVCodeGenerator::NA = (SpvId)-1
staticconstexpr

Definition at line 115 of file SkSLSPIRVCodeGenerator.cpp.


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