Struct SystemBuilder

Source
pub struct SystemBuilder { /* private fields */ }
Available on crate feature studio only.
Expand description

A builder for creating and initializing a System.

Handles setting values that can only be set before initialization for you.

Implementations§

Source§

impl SystemBuilder

Source

pub unsafe fn new() -> Result<Self>

Creates a new SystemBuilder.

§Safety

Calling this function concurrently with any FMOD Studio API function (including this function) may cause undefined behavior. External synchronization must be used if calls to SystemBuilder::new or System::release could overlap other FMOD Studio API calls. All other FMOD Studio API functions are thread safe and may be called freely from any thread unless otherwise documented.

Source

pub unsafe fn synchronous_update(&mut self)

Available on non-crate feature thread-unsafe only.
§Safety

This function sets up FMOD Studio to run all commands on the calling thread, and FMOD Studio expects all calls to be issued from a single thread.

This has the side effect of making EVERY Studio Struct in this crate !Send and !Sync without marking them as !Send and !Sync. This means that there are no handrails preventing you from using FMOD Studio across multiple threads, and you must ensure this yourself!

Source

pub fn settings(&mut self, settings: &AdvancedSettings) -> Result<&mut Self>

Sets advanced settings.

Source

pub fn build( self, max_channels: c_int, studio_flags: InitFlags, flags: InitFlags, ) -> Result<System>

Builds the Studio System.

The core system used by the studio system is initialized at the same time as the studio system.

Source

pub fn core_builder(&mut self) -> &mut SystemBuilder

Returns the FMOD core SystemBuilder.

This function only returns a &mut reference to prevent building the core System as building the studio System will handle that for you.

Source

pub unsafe fn build_with_extra_driver_data( self, max_channels: c_int, studio_flags: InitFlags, flags: InitFlags, driver_data: *mut c_void, ) -> Result<System>

§Safety

See the FMOD docs explaining driver data for more safety information.

Trait Implementations§

Source§

impl Debug for SystemBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Send for SystemBuilder

Available on non-crate feature thread-unsafe only.
Source§

impl Sync for SystemBuilder

Available on non-crate feature thread-unsafe only.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.