Struct PF_ParamUtilsSuite3

Source
#[repr(C)]
pub struct PF_ParamUtilsSuite3 { pub PF_UpdateParamUI: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, defP: *const PF_ParamDef) -> PF_Err>, pub PF_GetCurrentState: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, startPT0: *const A_Time, durationPT0: *const A_Time, stateP: *mut PF_State) -> PF_Err>, pub PF_AreStatesIdentical: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, state1P: *const PF_State, state2P: *const PF_State, samePB: *mut A_Boolean) -> PF_Err>, pub PF_IsIdenticalCheckout: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, what_time1: A_long, time_step1: A_long, time_scale1: A_u_long, what_time2: A_long, time_step2: A_long, time_scale2: A_u_long, identicalPB: *mut PF_Boolean) -> PF_Err>, pub PF_FindKeyframeTime: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, what_time: A_long, time_scale: A_u_long, time_dir: PF_TimeDir, foundPB: *mut PF_Boolean, key_indexP0: *mut PF_KeyIndex, key_timeP0: *mut A_long, key_timescaleP0: *mut A_u_long) -> PF_Err>, pub PF_GetKeyframeCount: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_countP: *mut PF_KeyIndex) -> PF_Err>, pub PF_CheckoutKeyframe: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_index: PF_KeyIndex, key_timeP0: *mut A_long, key_timescaleP0: *mut A_u_long, paramP0: *mut PF_ParamDef) -> PF_Err>, pub PF_CheckinKeyframe: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, paramP: *mut PF_ParamDef) -> PF_Err>, pub PF_KeyIndexToTime: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_indexP: PF_KeyIndex, key_timeP: *mut A_long, key_timescaleP: *mut A_u_long) -> PF_Err>, }
Expand description

PF_ParamUtilsSuite3

PF_UpdateParamUI()

You can call this function for each param whose UI settings you want to change when handling a PF_Cmd_USER_CHANGED_PARAM or PF_Cmd_UPDATE_PARAMS_UI. These changes are cosmetic only, and don’t go into the undo buffer.

The ONLY fields that can be changed in this way are:

PF_ParamDef ui_flags: PF_PUI_ECW_SEPARATOR, PF_PUI_DISABLED only (and PF_PUI_INVISIBLE in Premiere). ui_width ui_height name flags: PF_ParamFlag_COLLAPSE_TWIRLY only

PF_ParamDefUnion: slider_min, slider_max, precision, display_flags of any slider type

For PF_PUI_STD_CONTROL_ONLY params, you can also change the value field by setting PF_ChangeFlag_CHANGED_VALUE before returning. But you are not allowed to change the value during PF_Cmd_UPDATE_PARAMS_UI.

PF_GetCurrentState() / PF_AreStatesIdentical() This API lets you determine if a set of your inputs (either layers, other properties, or both) are different between when you first called PF_GetCurrentState() and a current call, so it can be used for caching. You can specify a range of time to consider or all of time.

For effects that do simulation across time and therefore set PF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT, when you ask about a time range, it will be expanded to include any times needed to produce that range.

See doc on the old PF_HaveInputsChangedOverTimeSpan() for historical context.

Fields§

§PF_UpdateParamUI: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, defP: *const PF_ParamDef) -> PF_Err>§PF_GetCurrentState: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, startPT0: *const A_Time, durationPT0: *const A_Time, stateP: *mut PF_State) -> PF_Err>§PF_AreStatesIdentical: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, state1P: *const PF_State, state2P: *const PF_State, samePB: *mut A_Boolean) -> PF_Err>§PF_IsIdenticalCheckout: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, what_time1: A_long, time_step1: A_long, time_scale1: A_u_long, what_time2: A_long, time_step2: A_long, time_scale2: A_u_long, identicalPB: *mut PF_Boolean) -> PF_Err>§PF_FindKeyframeTime: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, what_time: A_long, time_scale: A_u_long, time_dir: PF_TimeDir, foundPB: *mut PF_Boolean, key_indexP0: *mut PF_KeyIndex, key_timeP0: *mut A_long, key_timescaleP0: *mut A_u_long) -> PF_Err>§PF_GetKeyframeCount: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_countP: *mut PF_KeyIndex) -> PF_Err>§PF_CheckoutKeyframe: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_index: PF_KeyIndex, key_timeP0: *mut A_long, key_timescaleP0: *mut A_u_long, paramP0: *mut PF_ParamDef) -> PF_Err>§PF_CheckinKeyframe: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, paramP: *mut PF_ParamDef) -> PF_Err>§PF_KeyIndexToTime: Option<unsafe extern "C" fn(effect_ref: PF_ProgPtr, param_index: PF_ParamIndex, key_indexP: PF_KeyIndex, key_timeP: *mut A_long, key_timescaleP: *mut A_u_long) -> PF_Err>

Trait Implementations§

Source§

impl Clone for PF_ParamUtilsSuite3

Source§

fn clone(&self) -> PF_ParamUtilsSuite3

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PF_ParamUtilsSuite3

Source§

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

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

impl Copy for PF_ParamUtilsSuite3

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.