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

Function UpdateRtPerObjectData

trinity/Eve/SpaceObject/EveSpaceObject2.cpp:3967–3984  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3965}
3966
3967void UpdateRtPerObjectData( const EveSpaceObjectPSData& psData, const Matrix* instanceTransform, Tr2PrimaryRenderContext& renderContext, Tr2ConstantBufferAL& perObjectData )
3968{
3969 auto size = sizeof( EveSpaceObjectPSData ) + ( instanceTransform ? sizeof( Matrix ) : 0 );
3970
3971 if( !perObjectData.IsValid() || perObjectData.GetSize() != size )
3972 {
3973 perObjectData.Create( uint32_t( size ), renderContext );
3974 }
3975
3976 EveSpaceObjectPSData* bufferPtr;
3977 perObjectData.Lock( (void**)&bufferPtr, renderContext );
3978 *bufferPtr = psData;
3979 if( instanceTransform )
3980 {
3981 *reinterpret_cast<Matrix*>( bufferPtr + 1 ) = Transpose( *instanceTransform );
3982 }
3983 perObjectData.Unlock( renderContext );
3984}
3985
3986void EveSpaceObject2::PushRtGeometry( Tr2RaytracingManager& rtManager ) const
3987{

Callers 3

PushRtGeometryMethod · 0.85
PushRtGeometryMethod · 0.85
PushRtGeometryMethod · 0.85

Calls 6

TransposeFunction · 0.85
IsValidMethod · 0.45
GetSizeMethod · 0.45
CreateMethod · 0.45
LockMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected