MCPcopy Create free account
hub / github.com/carbonengine/trinity / AddCBuffer

Function AddCBuffer

shadercompiler/ParserUtils.cpp:481–507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

479
480
481static ASTNode* AddCBuffer( ParserState& state, ASTNode* node, int cbufferIndex, ASTNode*& shadowStruct )
482{
483 shadowStruct = nullptr;
484
485 ScannerToken token;
486 token.fileLocation = node->GetLocation();
487 token.intValue = 0;
488 token.stringValue = MakeInlineString( "cbuffer" );
489 token.type = OP_CBUFFER;
490 ASTNode* cbuffer = new ASTNode( NT_CBUFFER, node->GetLocation(), node->GetScope(), &token );
491
492 Symbol* cbufferName = state.GetSymbolTable().AddBufferSymbol( node->GetSymbol()->name );
493 RegisterSpecifier reg;
494 reg.registerNumber = cbufferIndex;
495 reg.registerType = 'b';
496 reg.shaderProfile.start = nullptr;
497 reg.shaderProfile.end = nullptr;
498 reg.subComponent = -1;
499 reg.space = -1;
500 reg.shaderProfile = MakeInlineString( "" );
501 reg.explicitRegister = true;
502 reg.explicitSpace = false;
503 cbufferName->registerSpecifier[reg.shaderProfile] = reg;
504 cbufferName->definition = cbuffer;
505 cbuffer->SetSymbol( cbufferName );
506 return cbuffer;
507}
508
509bool HasRegisterBinding( const Symbol* symbol, const char* shaderProfile, char registerType, int registerNumber )
510{

Callers 1

PatchCBuffersFunction · 0.85

Calls 5

MakeInlineStringFunction · 0.85
GetScopeMethod · 0.80
AddBufferSymbolMethod · 0.80
GetSymbolMethod · 0.80
SetSymbolMethod · 0.80

Tested by

no test coverage detected