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

Function IsVectorReferenceParameter

shadercompiler/OutputHLSL.cpp:1206–1224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1204}
1205
1206static bool IsVectorReferenceParameter( const Symbol* functionSymbol, size_t paramIndex, Type& paramType, AddressSpace& addressSpace )
1207{
1208 if( functionSymbol && functionSymbol->definition )
1209 {
1210 auto params = functionSymbol->definition->GetChild( 0 );
1211 auto param = params->GetChildOrNull( paramIndex );
1212 if( param && param->GetToken() && param->GetToken()->type != OP_IN && param->GetType().IsScalarOrVector() )
1213 {
1214 paramType = param->GetType();
1215 addressSpace = AddressSpace::Thread;
1216 if( param->GetSymbol() )
1217 {
1218 addressSpace = param->GetSymbol()->addressSpace;
1219 }
1220 return true;
1221 }
1222 }
1223 return false;
1224}
1225
1226static const char* MSLAddressMode( uint8_t addressMode )
1227{

Callers 1

OutputHLSL.cppFile · 0.85

Calls 6

GetChildOrNullMethod · 0.80
GetTokenMethod · 0.80
IsScalarOrVectorMethod · 0.80
GetSymbolMethod · 0.80
GetChildMethod · 0.45
GetTypeMethod · 0.45

Tested by

no test coverage detected