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

Method Validate

trinity/Eve/EveSpaceSceneRenderDriver.cpp:299–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

297
298
299bool EveSpaceSceneRenderDriver::Validate( const Span<const Tr2BitmapDimensions>& destDimensions, const Span<const BlueSharedString>& outputs, Be::Time realTime, Be::Time simTime )
300{
301 if( destDimensions.size == 0 )
302 {
303 CCP_ASSERT_M( false, "EveSpaceSceneRenderDriver requires at least one destination texture" );
304 return false;
305 }
306 if( !m_enableRendering )
307 {
308 return true;
309 }
310 if( !m_scene )
311 {
312 CCP_LOG( "EveSpaceSceneRenderDriver::Validate failed because the render driver does not have a valid scene" );
313 return false;
314 }
315 bool hasCamera = m_camera || ( m_view && m_projection );
316 if( !hasCamera )
317 {
318 CCP_LOG( "EveSpaceSceneRenderDriver::Validate failed because the render driver does not have a valid camera" );
319 return false;
320 }
321 const TextureSize2D displaySize = destDimensions[0];
322
323 SetupUpscaling( displaySize );
324 const auto renderSize = GetRenderSize( displaySize );
325
326 if( m_background )
327 {
328 auto bgDimensions = Tr2BitmapDimensions( renderSize.width, renderSize.height, 1, m_internalPixelFormat );
329 if( !m_background->Validate( { &bgDimensions, 1 }, {}, realTime, simTime ) )
330 {
331 return false;
332 }
333 }
334 if( m_sceneOverlay )
335 {
336 Tr2BitmapDimensions overlayDimensions[] = {
337 Tr2BitmapDimensions( renderSize.width, renderSize.height, 1, m_internalPixelFormat ),
338 Tr2BitmapDimensions( renderSize.width, renderSize.height, 1, ImageIO::PIXEL_FORMAT_R16G16_FLOAT )
339 };
340 if( !m_sceneOverlay->Validate( { overlayDimensions, 2 }, {}, realTime, simTime ) )
341 {
342 return false;
343 }
344 }
345
346 for( auto& output : outputs )
347 {
348 if( strcmp( output.c_str(), "DepthMap" ) != 0 &&
349 strcmp( output.c_str(), "VelocityMap" ) != 0 &&
350 strcmp( output.c_str(), "NormalMap" ) != 0 &&
351 strcmp( output.c_str(), "CustomStencilMap" ) != 0 )
352 {
353 CCP_LOGERR( "EveSpaceSceneRenderDriver does not support the output '%s'", output.c_str() );
354 return false;
355 }
356 }

Callers 1

ExecuteMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected