• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

struggling with passing sequence_data

Contributor ,
May 13, 2022 May 13, 2022

Copy link to clipboard

Copied

Dear AE fellows,

I have some problem with passing sequence_data  between functions serving different calls.

I start with supervisor example plugin. I added additional integer field into my sequence data structure:

int test_int;

with default value 0:

SequenceSetup (PF_InData *in_data, PF_OutData *out_data, int init_num = 0)

 

 

 

 And then I set it in my UpdateParameterUI function:

my_sequence_dataP	seqP = reinterpret_cast<my_sequence_dataP>(DH(out_data->sequence_data));
seqP->test_int = 57;

After AE effects leaves  UpdateParameterUI it calls SequenceResetup.

However, when I check the contents of in_data-sequence_data entering  SequenceResetup

PF_Handle flatSequenceDataH = in_data->sequence_data;
flatSequenceData* flatSequenceDataP = static_cast<flatSequenceData*>(DH(flatSequenceDataH));

I see that flatSequenceDataP->test_int  is not updated and is equal to its default value (i.e. 0).

How could that be? What do I miss here?

Yaroslav.

 

 

 

TOPICS
SDK

Views

373

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , May 14, 2022 May 14, 2022

from the docs:

"FORCE_RERENDER works when set during PF_Cmd_USER_CHANGED_PARAM. It also works in CLICK and DRAG events, but only if PF_Cmd_GET_FLATTENED_SEQUENCE_DATA is implemented. This is required to prevent flattening and loss of UI state in the middle of mouse operations. Without GET_FLATTENED, the new FORCE_RERENDER behavior will NOT be turned on."

no UpdateParameterUI  for you!!

Votes

Translate

Translate
Community Expert ,
May 13, 2022 May 13, 2022

Copy link to clipboard

Copied

probably the resetup call is happening on the render thread. to update the sequence data of the render thread from changes made in the ui thread you need to set the FORCE_RERENDER out flag. this is valid only during certain commands, and i think UpdateParameterUI is indeed one of them.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 14, 2022 May 14, 2022

Copy link to clipboard

Copied

Dear Sachar,

the point is, this flag  out_data->out_flags |= PF_OutFlag_FORCE_RERENDER;

is already present  in UpdateParameterUI function.(!)

 

P.S. I did notice that when I modify my seq_data inside my PF_Cmd_USER_CHANGED_PARAM function, the seq_data does get updated.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 14, 2022 May 14, 2022

Copy link to clipboard

Copied

from the docs:

"FORCE_RERENDER works when set during PF_Cmd_USER_CHANGED_PARAM. It also works in CLICK and DRAG events, but only if PF_Cmd_GET_FLATTENED_SEQUENCE_DATA is implemented. This is required to prevent flattening and loss of UI state in the middle of mouse operations. Without GET_FLATTENED, the new FORCE_RERENDER behavior will NOT be turned on."

no UpdateParameterUI  for you!!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 18, 2022 May 18, 2022

Copy link to clipboard

Copied

LATEST

Thank you, Shachar!

I found  a way to circumvent this complication.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines