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

Method OnPrepareResources

trinity/Sprite2d/Tr2Sprite2dScene.cpp:1212–1314  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1210}
1211
1212bool Tr2Sprite2dScene::OnPrepareResources()
1213{
1214 if( m_vertexDecl == Tr2EffectStateManager::UNINITIALIZED_DECLARATION )
1215 {
1216 if( s_vertexDesc.empty() )
1217 {
1218 // This vertex declaration matches the Tr2Sprite2dD3DVertex defined in ITr2Sprite2dRenderer.h
1219 s_vertexDesc.Add( s_vertexDesc.FLOAT32_3, s_vertexDesc.POSITION );
1220 s_vertexDesc.Add( s_vertexDesc.FLOAT32_4, s_vertexDesc.COLOR, 0 );
1221
1222 // Texture coordinates, primary texture
1223 s_vertexDesc.Add( s_vertexDesc.FLOAT32_2, s_vertexDesc.TEXCOORD, 0 );
1224
1225 // Texture coordinates, secondary texture
1226 s_vertexDesc.Add( s_vertexDesc.FLOAT32_2, s_vertexDesc.TEXCOORD, 1 );
1227
1228 // Clip rect
1229 s_vertexDesc.Add( s_vertexDesc.FLOAT32_4, s_vertexDesc.TEXCOORD, 2 );
1230
1231 // Glow brightness
1232 s_vertexDesc.Add( s_vertexDesc.FLOAT32_1, s_vertexDesc.TEXCOORD, 3 );
1233
1234 // Matrix index
1235 s_vertexDesc.Add( s_vertexDesc.UBYTE_4, s_vertexDesc.BLENDINDICES );
1236
1237 // Outline color
1238 s_vertexDesc.Add( s_vertexDesc.FLOAT32_4, s_vertexDesc.COLOR, 1 );
1239
1240 // Outline threshold
1241 s_vertexDesc.Add( s_vertexDesc.FLOAT32_1, s_vertexDesc.TEXCOORD, 4 );
1242 }
1243
1244 m_vertexDecl = Tr2EffectStateManager::GetVertexDeclarationHandle( s_vertexDesc );
1245 }
1246
1247 unsigned int indexCount = m_maxSpriteCount * 6;
1248 unsigned int ibSize = indexCount * sizeof( uint32_t );
1249 unsigned int vbSize = m_maxSpriteCount * 4 * sizeof( Tr2Sprite2dD3DVertex );
1250
1251 if( !m_vertexBuffer.Create( vbSize ) )
1252 {
1253 CCP_LOGERR( "Tr2Sprite2dScene::OnPrepareResources failed to create streaming vertex buffer" );
1254 return false;
1255 }
1256 m_vertexBuffer.SetName( "UI Vertex Buffer" );
1257
1258 if( !m_indexBuffer.Create( indexCount, 4 ) )
1259 {
1260 CCP_LOGERR( "Tr2Sprite2dScene::OnPrepareResources failed to create streaming index buffer" );
1261 return false;
1262 }
1263 m_indexBuffer.SetName( "UI Index Buffer" );
1264
1265 m_vertexBufferData.resize( "Tr2Sprite2dScene::m_vertexBufferData", vbSize );
1266 if( m_vertexBufferData.empty() )
1267 {
1268 CCP_LOGERR( "Tr2Sprite2dScene::OnPrepareResources failed to allocate vertex buffer mirror" );
1269 return false;

Callers

nothing calls this directly

Calls 10

emptyMethod · 0.80
FindAtlasMethod · 0.80
AddAtlasMethod · 0.80
LockBufferMethod · 0.80
UnlockBufferMethod · 0.80
AddMethod · 0.45
CreateMethod · 0.45
SetNameMethod · 0.45
CreateTextureMethod · 0.45

Tested by

no test coverage detected