MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / setTextureStages

Method setTextureStages

Engine/source/materials/processedCustomMaterial.cpp:330–436  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330void ProcessedCustomMaterial::setTextureStages( SceneRenderState *state, const SceneData &sgData, U32 pass )
331{
332 LightManager* lm = state ? LIGHTMGR : NULL;
333 ShaderRenderPassData* rpd = _getRPD(pass);
334 ShaderConstHandles* handles = _getShaderConstHandles(pass);
335 GFXShaderConstBuffer* shaderConsts = _getShaderConstBuffer(pass);
336
337 const NamedTexTarget *texTarget;
338 GFXTextureObject *texObject;
339
340 for( U32 i=0; i<mMaxTex; i++ )
341 {
342 U32 currTexFlag = rpd->mTexType[i];
343 if ( !lm || !lm->setTextureStage(sgData, currTexFlag, i, shaderConsts, handles ) )
344 {
345 GFXShaderConstHandle* handle = handles->mTexHandlesSC[i];
346 if ( !handle->isValid() )
347 continue;
348
349 S32 samplerRegister = handle->getSamplerRegister();
350
351 switch( currTexFlag )
352 {
353 case 0:
354 default:
355 break;
356
357 case Material::Mask:
358 case Material::Standard:
359 case Material::Bump:
360 case Material::Detail:
361 {
362 GFX->setTexture( samplerRegister, rpd->mTexSlot[i].texObject );
363 break;
364 }
365
366 case Material::Lightmap:
367 {
368 GFX->setTexture( samplerRegister, sgData.lightmap );
369 break;
370 }
371 case Material::Cube:
372 {
373 GFX->setCubeTexture( samplerRegister, rpd->mCubeMap );
374 break;
375 }
376 case Material::SGCube:
377 {
378 GFX->setCubeTexture( samplerRegister, sgData.cubemap );
379 break;
380 }
381 case Material::BackBuff:
382 {
383 GFX->setTexture( samplerRegister, sgData.backBuffTex );
384 //if ( sgData.reflectTex )
385 // GFX->setTexture( samplerRegister, sgData.reflectTex );
386 //else
387 //{

Callers

nothing calls this directly

Calls 8

setCubeTextureMethod · 0.80
setTextureStageMethod · 0.45
isValidMethod · 0.45
getSamplerRegisterMethod · 0.45
setTextureMethod · 0.45
getTextureMethod · 0.45
getSizeMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected