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

Method createDevice

Engine/source/sfx/sfxSystem.cpp:417–480  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

sfxSystem.cppFile · 0.45

Calls 15

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

Tested by

no test coverage detected