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

Method init

Engine/source/util/imposterCapture.cpp:97–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97void ImposterCaptureMaterialHook::init( BaseMatInstance *inMat )
98{
99 // We cannot capture impostors on custom materials
100 // as we don't know how to get just diffuse and just
101 // normals rendering.
102 if ( dynamic_cast<CustomMaterial*>( inMat->getMaterial() ) )
103 return;
104
105 // Tweak the feature data to include just what we need.
106 FeatureSet features;
107 features.addFeature( MFT_VertTransform );
108 features.addFeature( MFT_DiffuseMap );
109 features.addFeature( MFT_OverlayMap );
110 features.addFeature( MFT_DetailMap );
111 features.addFeature( MFT_DiffuseColor );
112 features.addFeature( MFT_AlphaTest );
113 features.addFeature( MFT_IsTranslucent );
114
115 const String &matName = inMat->getMaterial()->getName();
116
117 mDiffuseMatInst = MATMGR->createMatInstance( matName );
118 mDiffuseMatInst->getFeaturesDelegate().bind( &ImposterCaptureMaterialHook::_overrideFeatures );
119 mDiffuseMatInst->init( features, inMat->getVertexFormat() );
120
121 features.addFeature( MFT_IsBC3nm );
122 features.addFeature( MFT_NormalMap );
123 features.addFeature( MFT_NormalsOut );
124 features.addFeature( MFT_AccuMap );
125 mNormalsMatInst = MATMGR->createMatInstance( matName );
126 mNormalsMatInst->getFeaturesDelegate().bind( &ImposterCaptureMaterialHook::_overrideFeatures );
127 mNormalsMatInst->init( features, inMat->getVertexFormat() );
128}
129
130void ImposterCaptureMaterialHook::_overrideFeatures( ProcessedMaterial *mat,
131 U32 stageNum,

Callers 1

_getOrCreateHookMethod · 0.45

Calls 6

addFeatureMethod · 0.80
getMaterialMethod · 0.45
getNameMethod · 0.45
createMatInstanceMethod · 0.45
bindMethod · 0.45
getVertexFormatMethod · 0.45

Tested by

no test coverage detected