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

Method writeLine

Engine/source/shaderGen/GLSL/customFeatureGLSL.cpp:241–338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

239}
240
241void CustomFeatureGLSL::writeLine(String format, S32 argc, ConsoleValue * argv)
242{
243 //do the var/arg fetching here
244 Vector<Var*> varList;
245 bool declarationStatement = false;
246
247 for (U32 i = 0; i < argc; i++)
248 {
249 String varName = argv[i].getString();
250 Var* newVar = (Var*)LangElement::find(varName.c_str());
251 if (!newVar)
252 {
253 //ok, check our existing var holders, see if we just haven't utilized it yet
254 for (U32 v = 0; v < mVars.size(); v++)
255 {
256 if (mVars[v].varName == varName)
257 {
258 if (!mVars[v].texCoord)
259 {
260 if (mVars[v].elementId != -1)
261 {
262 ShaderConnector* connectComp = dynamic_cast<ShaderConnector*>(mComponentList[C_CONNECTOR]);
263 Var* newDeclVar = connectComp->getElement((RegisterType)mVars[v].elementId);
264 newDeclVar->setName(mVars[v].varName);
265 newDeclVar->setStructName(mVars[v].structName);
266 newDeclVar->setType(mVars[v].type);
267
268 newVar = newDeclVar;
269 }
270 else
271 {
272 Var* newDeclVar = new Var(mVars[v].varName, mVars[v].type);
273
274 newDeclVar->arraySize = mVars[v].arraySize;
275 newDeclVar->uniform = mVars[v].uniform;
276 newDeclVar->sampler = mVars[v].sampler;
277 newDeclVar->texture = mVars[v].texture;
278 newDeclVar->constNum = mVars[v].constNum;
279 newDeclVar->constSortPos = mVars[v].constSortPos;
280
281 if (!newDeclVar->uniform)
282 {
283 LangElement* newVarDecl = new DecOp(newDeclVar);
284 newVar = (Var*)newVarDecl;
285
286 declarationStatement = true;
287 }
288 else
289 {
290 newVar = newDeclVar;
291 }
292 }
293 }
294 else
295 {
296 newVar = getVertTexCoord(mVars[v].varName);
297 }
298

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