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

Method createDevice

Engine/source/sfx/sfxSystem.cpp:423–483  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

421//-----------------------------------------------------------------------------
422
423bool SFXSystem::createDevice( const String& providerName, const String& deviceName, bool useHardware, S32 maxBuffers, bool changeDevice )
424{
425 // Make sure we don't have a device already.
426
427 if( mDevice && !changeDevice )
428 return false;
429
430 // Lookup the provider.
431
432 SFXProvider* provider = SFXProvider::findProvider( providerName );
433 if( !provider )
434 return false;
435
436 // If we have already created this device and are using it then no need to do anything.
437
438 if( mDevice
439 && providerName.equal( mDevice->getProvider()->getName(), String::NoCase )
440 && deviceName.equal( mDevice->getName(), String::NoCase )
441 && useHardware == mDevice->getUseHardware() )
442 return true;
443
444 // If we have an existing device remove it.
445
446 if( mDevice )
447 deleteDevice();
448
449 // Create the new device..
450
451 mDevice = provider->createDevice( deviceName, useHardware, maxBuffers );
452 if( !mDevice )
453 {
454 Con::errorf( "SFXSystem::createDevice - failed creating %s device '%s'", providerName.c_str(), deviceName.c_str() );
455 return false;
456 }
457
458 // Print capabilities.
459
460 Con::printf( "SFXSystem::createDevice - created %s device '%s'", providerName.c_str(), deviceName.c_str() );
461 if( mDevice->getCaps() & SFXDevice::CAPS_Reverb )
462 Con::printf( " CAPS_Reverb" );
463 if( mDevice->getCaps() & SFXDevice::CAPS_VoiceManagement )
464 Con::printf( " CAPS_VoiceManagement" );
465 if( mDevice->getCaps() & SFXDevice::CAPS_Occlusion )
466 Con::printf( "\tCAPS_Occlusion" );
467 if( mDevice->getCaps() & SFXDevice::CAPS_MultiListener )
468 Con::printf( "\tCAPS_MultiListener" );
469
470 // Set defaults.
471
472 mDevice->setNumListeners( getNumListeners() );
473 mDevice->setDistanceModel( mDistanceModel );
474 mDevice->setDopplerFactor( mDopplerFactor );
475 mDevice->setRolloffFactor( mRolloffFactor );
476 mDevice->setReverb( mReverb );
477
478 // Signal system.
479
480 getEventSignal().trigger( SFXSystemEvent_CreateDevice );

Callers 1

sfxSystem.cppFile · 0.45

Calls 14

errorfFunction · 0.85
printfFunction · 0.85
getProviderMethod · 0.80
getUseHardwareMethod · 0.80
getCapsMethod · 0.80
equalMethod · 0.45
getNameMethod · 0.45
c_strMethod · 0.45
setNumListenersMethod · 0.45
setDistanceModelMethod · 0.45
setDopplerFactorMethod · 0.45
setRolloffFactorMethod · 0.45

Tested by

no test coverage detected