#[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
impl Clone for PF_ParamUtilsSuite3
Source§fn clone(&self) -> PF_ParamUtilsSuite3
fn clone(&self) -> PF_ParamUtilsSuite3
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more