#include <GrSPIRVUniformHandler.h>
|
const GrShaderVar & | getUniformVariable (UniformHandle u) const override |
|
const char * | getUniformCStr (UniformHandle u) const override |
|
uint32_t | getRTFlipOffset () const |
|
int | numUniforms () const override |
|
UniformInfo & | uniform (int idx) override |
|
const UniformInfo & | uniform (int idx) const override |
|
Public Member Functions inherited from GrGLSLUniformHandler |
virtual | ~GrGLSLUniformHandler () |
|
UniformHandle | addUniform (const GrProcessor *owner, uint32_t visibility, SkSLType type, const char *name, const char **outName=nullptr) |
|
UniformHandle | addUniformArray (const GrProcessor *owner, uint32_t visibility, SkSLType type, const char *name, int arrayCount, const char **outName=nullptr) |
|
GrShaderVar | getUniformMapping (const GrProcessor &owner, SkString rawName) const |
|
GrShaderVar | liftUniformToVertexShader (const GrProcessor &owner, SkString rawName) |
|
|
SamplerHandle | addSampler (const GrBackendFormat &, GrSamplerState, const skgpu::Swizzle &, const char *name, const GrShaderCaps *) override |
|
const char * | samplerVariable (SamplerHandle handle) const override |
|
skgpu::Swizzle | samplerSwizzle (SamplerHandle handle) const override |
|
void | appendUniformDecls (GrShaderFlags visibility, SkString *) const override |
|
UniformHandle | internalAddUniformArray (const GrProcessor *owner, uint32_t visibility, SkSLType type, const char *name, bool mangleName, int arrayCount, const char **outName) override |
|
Definition at line 21 of file GrSPIRVUniformHandler.h.
◆ UniformInfoArray
◆ anonymous enum
Enumerator |
---|
kUniformBinding | |
kUniformDescriptorSet | |
kSamplerTextureDescriptorSet | |
Definition at line 32 of file GrSPIRVUniformHandler.h.
◆ addSampler()
Implements GrGLSLUniformHandler.
Definition at line 227 of file GrSPIRVUniformHandler.cpp.
232 {
234
235 int binding = fSamplers.
count() * 2;
236
240 binding,
241 binding + 1);
242
243 SPIRVUniformInfo& uniformInfo = fSamplers.
emplace_back();
249 std::move(layoutQualifier),
251
253 uniformInfo.fOwner = nullptr;
255 uniformInfo.fUBOOffset = 0;
256
259
260 return GrGLSLUniformHandler::SamplerHandle(fSamplers.
count() - 1);
261}
static SkSLType SkSLCombinedSamplerTypeForTextureType(GrTextureType type)
SK_API SkString static SkString SkStringPrintf()
SkString nameVariable(char prefix, const char *name, bool mangle=true)
T & emplace_back(Args &&... args)
◆ appendUniformDecls()
Implements GrGLSLUniformHandler.
Definition at line 273 of file GrSPIRVUniformHandler.cpp.
273 {
274 for (const SPIRVUniformInfo& sampler : fSamplers.items()) {
275 if (sampler.fVisibility & visibility) {
278 }
279 }
281 for (
const UniformInfo&
uniform : fUniforms.items()) {
284 uniformsString.
append(
";\n");
285 }
286 }
287 if (!uniformsString.
isEmpty()) {
288 out->appendf(
"layout (set = %d, binding = %d) uniform UniformBuffer\n{\n",
290 out->appendf(
"%s\n};\n", uniformsString.
c_str());
291 }
292}
const GrShaderCaps * shaderCaps() const
void appendDecl(const GrShaderCaps *, SkString *out) const
void append(const char text[])
const char * c_str() const
◆ getRTFlipOffset()
uint32_t GrSPIRVUniformHandler::getRTFlipOffset |
( |
| ) |
const |
◆ getUniformCStr()
const char * GrSPIRVUniformHandler::getUniformCStr |
( |
UniformHandle |
u | ) |
const |
|
overridevirtual |
◆ getUniformVariable()
◆ internalAddUniformArray()
Implements GrGLSLUniformHandler.
Definition at line 188 of file GrSPIRVUniformHandler.cpp.
195 {
199 }
201
202 int offset = get_ubo_offset(&fCurrentUBOOffset,
type, arrayCount);
205
206 SPIRVUniformInfo tempInfo;
207 tempInfo.fVariable =
GrShaderVar{std::move(resolvedName),
210 arrayCount,
211 std::move(layoutQualifier),
213
214 tempInfo.fVisibility = visibility;
215 tempInfo.fOwner = owner;
217 tempInfo.fUBOOffset =
offset;
218
220
221 if (outName) {
223 }
225}
const char * c_str() const
void void void appendf(const char format[],...) SK_PRINTF_LIKE(2
◆ numUniforms()
int GrSPIRVUniformHandler::numUniforms |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ samplerSwizzle()
skgpu::Swizzle GrSPIRVUniformHandler::samplerSwizzle |
( |
SamplerHandle |
handle | ) |
const |
|
overrideprivatevirtual |
◆ samplerVariable()
const char * GrSPIRVUniformHandler::samplerVariable |
( |
SamplerHandle |
handle | ) |
const |
|
overrideprivatevirtual |
◆ uniform() [1/2]
◆ uniform() [2/2]
◆ GrD3DPipelineStateBuilder
◆ GrDawnProgramBuilder
friend class GrDawnProgramBuilder |
|
friend |
◆ kUniformsPerBlock
const int GrSPIRVUniformHandler::kUniformsPerBlock = 8 |
|
static |
The documentation for this class was generated from the following files: