pub struct PHASEEngine { /* private fields */ }PHASEEngine only.Expand description
Implementations§
Source§impl PHASEEngine
impl PHASEEngine
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
pub unsafe fn new() -> Retained<Self>
Sourcepub unsafe fn initWithUpdateMode(
this: Allocated<Self>,
update_mode: PHASEUpdateMode,
) -> Retained<Self>
Available on crate feature PHASETypes only.
pub unsafe fn initWithUpdateMode( this: Allocated<Self>, update_mode: PHASEUpdateMode, ) -> Retained<Self>
PHASETypes only.Initialize a new engine with an update mode.
Parameter updateMode: Defines how the engine will be updated.
Sourcepub unsafe fn initWithUpdateMode_renderingMode(
this: Allocated<Self>,
update_mode: PHASEUpdateMode,
rendering_mode: PHASERenderingMode,
) -> Retained<Self>
Available on crate feature PHASETypes only.
pub unsafe fn initWithUpdateMode_renderingMode( this: Allocated<Self>, update_mode: PHASEUpdateMode, rendering_mode: PHASERenderingMode, ) -> Retained<Self>
PHASETypes only.Initialize a new engine with an update mode.
Parameter updateMode: Defines how the engine will be updated.
Parameter renderingMode: Defines where the engine applies rendering. See PHASERenderingMode for more info.
Sourcepub unsafe fn startAndReturnError(&self) -> Result<(), Retained<NSError>>
pub unsafe fn startAndReturnError(&self) -> Result<(), Retained<NSError>>
Start or resume the engine.
Returns: YES for success.
Sourcepub unsafe fn update(&self)
pub unsafe fn update(&self)
Manually update the engine instance on the calling thread.
This will kick off all of the API commands called since the last call to update, update any systems and objects that need to be kept current, and call any registered handlers.
Note: This function has no effect if the engine’s update mode is PHASEUpdateModeAutomatic.
Sourcepub unsafe fn outputSpatializationMode(&self) -> PHASESpatializationMode
Available on crate feature PHASETypes only.
pub unsafe fn outputSpatializationMode(&self) -> PHASESpatializationMode
PHASETypes only.When set to a value other than PHASESpatializationModeAutomatic, overrides the default output spatializer and uses the specified one instead.
Sourcepub unsafe fn setOutputSpatializationMode(
&self,
output_spatialization_mode: PHASESpatializationMode,
)
Available on crate feature PHASETypes only.
pub unsafe fn setOutputSpatializationMode( &self, output_spatialization_mode: PHASESpatializationMode, )
PHASETypes only.Setter for outputSpatializationMode.
Sourcepub unsafe fn renderingState(&self) -> PHASERenderingState
Available on crate feature PHASETypes only.
pub unsafe fn renderingState(&self) -> PHASERenderingState
PHASETypes only.The engine’s current rendering state.
Sourcepub unsafe fn rootObject(&self) -> Retained<PHASEObject>
Available on crate feature PHASEObject only.
pub unsafe fn rootObject(&self) -> Retained<PHASEObject>
PHASEObject only.The root object of the engine’s scene graph.
Attach objects to the engine’s rootObject or one of its children to make them active within the engine’s scene graph. This will ensure they take part in the simulation.
Note: The rootObject is created and owned by the engine. The rootObject may not be set as the child of another object. This will cause an error to be thrown. The rootObject’s transform may not be changed. This will cause an error to be thrown. The rootObject may not be copied. This will cause an error to be thrown.
Sourcepub unsafe fn defaultMedium(&self) -> Retained<PHASEMedium>
Available on crate feature PHASEMedium only.
pub unsafe fn defaultMedium(&self) -> Retained<PHASEMedium>
PHASEMedium only.The default medium in the engine.
The default value is PHASEMediumPresetAir.
Sourcepub unsafe fn setDefaultMedium(&self, default_medium: &PHASEMedium)
Available on crate feature PHASEMedium only.
pub unsafe fn setDefaultMedium(&self, default_medium: &PHASEMedium)
PHASEMedium only.Setter for defaultMedium.
Sourcepub unsafe fn defaultReverbPreset(&self) -> PHASEReverbPreset
Available on crate feature PHASETypes only.
pub unsafe fn defaultReverbPreset(&self) -> PHASEReverbPreset
PHASETypes only.The default reverb preset in the engine.
The default value is PHASEReverbPresetNone.
Sourcepub unsafe fn setDefaultReverbPreset(
&self,
default_reverb_preset: PHASEReverbPreset,
)
Available on crate feature PHASETypes only.
pub unsafe fn setDefaultReverbPreset( &self, default_reverb_preset: PHASEReverbPreset, )
PHASETypes only.Setter for defaultReverbPreset.
Sourcepub unsafe fn unitsPerSecond(&self) -> c_double
pub unsafe fn unitsPerSecond(&self) -> c_double
The number of units in a second.
The unitsPerSecond is used internally to scale time/duration values passed to the API. This allows clients to pass time/duration values in their own native time scale.
Note: Values are clamped to the range (0, inf]. Default value is 1.
Sourcepub unsafe fn setUnitsPerSecond(&self, units_per_second: c_double)
pub unsafe fn setUnitsPerSecond(&self, units_per_second: c_double)
Setter for unitsPerSecond.
Sourcepub unsafe fn unitsPerMeter(&self) -> c_double
pub unsafe fn unitsPerMeter(&self) -> c_double
The number of units in a meter.
The unitsPerMeter is used internally to scale metric values passed to the API. This allows clients to pass metric values in their own native spatial scale.
Note: Values are clamped to the range (0, inf]. Default value is 1.
Sourcepub unsafe fn setUnitsPerMeter(&self, units_per_meter: c_double)
pub unsafe fn setUnitsPerMeter(&self, units_per_meter: c_double)
Setter for unitsPerMeter.
Sourcepub unsafe fn assetRegistry(&self) -> Retained<PHASEAssetRegistry>
Available on crate feature PHASEAssetRegistry only.
pub unsafe fn assetRegistry(&self) -> Retained<PHASEAssetRegistry>
PHASEAssetRegistry only.A registry for assets available to the engine
Sourcepub unsafe fn soundEvents(&self) -> Retained<NSArray<PHASESoundEvent>>
Available on crate feature PHASESoundEvent only.
pub unsafe fn soundEvents(&self) -> Retained<NSArray<PHASESoundEvent>>
PHASESoundEvent only.An array of the active sound event objects in the system
Returns a dictionary of the sound events at the time it is retrieved. This includes all sound events that are registered with the engine, including those that are preparing, playing, paused or stopping.
Sourcepub unsafe fn groups(&self) -> Retained<NSDictionary<NSString, PHASEGroup>>
Available on crate feature PHASEGroup only.
pub unsafe fn groups(&self) -> Retained<NSDictionary<NSString, PHASEGroup>>
PHASEGroup only.A dictionary of the groups in the system
Returns a dictionary of the groups at the time it is retrieved.
Sourcepub unsafe fn duckers(&self) -> Retained<NSArray<PHASEDucker>>
Available on crate feature PHASEDucker only.
pub unsafe fn duckers(&self) -> Retained<NSArray<PHASEDucker>>
PHASEDucker only.An array of the ducker objects in the system
Returns a dictionary of the ducker objects at the time it is retrieved.
Sourcepub unsafe fn activeGroupPreset(&self) -> Option<Retained<PHASEGroupPreset>>
Available on crate feature PHASEGroupPreset only.
pub unsafe fn activeGroupPreset(&self) -> Option<Retained<PHASEGroupPreset>>
PHASEGroupPreset only.The active group mixer preset in the system
Returns nil if there are no active group presets in the engine. Activate or Deactivate the preset via [PHASEGroupPreset activate] and [PHASEGroupPreset deactivate]
Sourcepub unsafe fn lastRenderTime(&self) -> Option<Retained<AVAudioTime>>
Available on crate feature objc2-avf-audio only.
pub unsafe fn lastRenderTime(&self) -> Option<Retained<AVAudioTime>>
objc2-avf-audio only.Obtain the time for which the engine most recently rendered.
Will return nil if the engine is not running
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for PHASEEngine
impl AsRef<AnyObject> for PHASEEngine
Source§impl AsRef<NSObject> for PHASEEngine
impl AsRef<NSObject> for PHASEEngine
Source§impl AsRef<PHASEEngine> for PHASEEngine
impl AsRef<PHASEEngine> for PHASEEngine
Source§impl Borrow<AnyObject> for PHASEEngine
impl Borrow<AnyObject> for PHASEEngine
Source§impl Borrow<NSObject> for PHASEEngine
impl Borrow<NSObject> for PHASEEngine
Source§impl ClassType for PHASEEngine
impl ClassType for PHASEEngine
Source§const NAME: &'static str = "PHASEEngine"
const NAME: &'static str = "PHASEEngine"
Source§type ThreadKind = <<PHASEEngine as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<PHASEEngine as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for PHASEEngine
impl Debug for PHASEEngine
Source§impl Deref for PHASEEngine
impl Deref for PHASEEngine
Source§impl Hash for PHASEEngine
impl Hash for PHASEEngine
Source§impl Message for PHASEEngine
impl Message for PHASEEngine
Source§impl NSObjectProtocol for PHASEEngine
impl NSObjectProtocol for PHASEEngine
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref