MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / writeLine

Method writeLine

Engine/source/shaderGen/HLSL/customFeatureHLSL.cpp:258–355  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256}
257
258void CustomFeatureHLSL::writeLine(String format, S32 argc, ConsoleValue *argv)
259{
260 //do the var/arg fetching here
261 Vector<Var*> varList;
262 bool declarationStatement = false;
263
264 for (U32 i = 0; i < argc; i++)
265 {
266 String varName = argv[i].getString();
267 Var* newVar = (Var*)LangElement::find(varName.c_str());
268 if (!newVar)
269 {
270 //ok, check our existing var holders, see if we just haven't utilized it yet
271 for (U32 v = 0; v < mVars.size(); v++)
272 {
273 if (mVars[v].varName == varName)
274 {
275 if (!mVars[v].texCoord)
276 {
277 if (mVars[v].elementId != -1)
278 {
279 ShaderConnector* connectComp = dynamic_cast<ShaderConnector*>(mComponentList[C_CONNECTOR]);
280 Var* newDeclVar = connectComp->getElement((RegisterType)mVars[v].elementId);
281 newDeclVar->setName(mVars[v].varName);
282 newDeclVar->setStructName(mVars[v].structName);
283 newDeclVar->setType(mVars[v].type);
284
285 newVar = newDeclVar;
286 }
287 else
288 {
289 Var* newDeclVar = new Var(mVars[v].varName, mVars[v].type);
290
291 newDeclVar->arraySize = mVars[v].arraySize;
292 newDeclVar->uniform = mVars[v].uniform;
293 newDeclVar->sampler = mVars[v].sampler;
294 newDeclVar->texture = mVars[v].texture;
295 newDeclVar->constNum = mVars[v].constNum;
296 newDeclVar->constSortPos = mVars[v].constSortPos;
297
298 if (!newDeclVar->uniform)
299 {
300 LangElement* newVarDecl = new DecOp(newDeclVar);
301 newVar = (Var*)newVarDecl;
302
303 declarationStatement = true;
304 }
305 else
306 {
307 newVar = newDeclVar;
308 }
309 }
310 }
311 else
312 {
313 newVar = getVertTexCoord(mVars[v].varName);
314 }
315

Callers

nothing calls this directly

Calls 12

setStructNameMethod · 0.80
addStatementMethod · 0.80
findFunction · 0.50
errorfFunction · 0.50
getStringMethod · 0.45
c_strMethod · 0.45
sizeMethod · 0.45
getElementMethod · 0.45
setNameMethod · 0.45
setTypeMethod · 0.45
eraseMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected