Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

composition animation doesn't take effect until next frame transfer #3874

Closed
dankamongmen opened this issue Jul 27, 2021 · 4 comments
Closed
Labels

Comments

@dankamongmen
Copy link
Contributor

dankamongmen commented Jul 27, 2021

Describe the bug
I might be missing something major here, but I've been playing around for a few hours, and can't get anywhere. My initial composition tests worked beautifully, but some secondary tests I ran had some failures (see dankamongmen/notcurses#1990, if you'd like). At first I thought this related to moving the image being edited, but further experimentation eliminated that as a factor. Here's the minimal test case I've winnowed this down to (I've elided seemingly uninteresting arguments; all save the first command are specifying the same i= image id):

  • _Ga=d to clear all images -- result is expected clear screen
  • _Gf=32,p=1,a=t;DATA -- no result, image has only been loaded
  • _Ga=p,p=1 -- result is expected opaque image, as frame 1
  • _Ga=f,X=1,r=2,c=1;ZEROEDDATA -- no result, frame 2 has been prepared with transparent cell
  • _Ga=a,c=2 -- result is expected frame 2, missing transparent cell

up through here we're all good. then:

  • _Ga=c,r=2,c=1,C=1 -- i expect this to change frame 2, using data from frame 1 (filling back in the cell)
  • _Ga=a,c=2 -- i expect the change to be visible by now

but the change is not yet visible. i think that second line is a no-op, but have included it for completeness.

however, i can then do:

  • _Ga=f,[some other rectangle],X=1,r=2,c=2;DATA

and both this change, and the previous composition, become visible.

So sorry for missing this earlier. The test case I was running rapidly iterated over all cells of the image, erasing and then restoring them. Since each restore (save the last) was immediately followed by an erase elsewhere, everything works in that test. On more complex ones, however, I'm never seeing my restores.

This analysis might still be incomplete. It's been a perplexing few hours. I'm happy to run whatever tests you'd like.

I can attach the textfle chunks I'm using to test this, if it would be helpful.

This is with 0.22.0, and it may very well be my bug still.

@kovidgoyal
Copy link
Owner

Most likely the frame is not being dirtied till another change. Does preceding _Ga=a,c=2 by _Ga=a,c=1 fix it?

@dankamongmen
Copy link
Contributor Author

Most likely the frame is not being dirtied till another change. Does preceding _Ga=a,c=2 by _Ga=a,c=1 fix it?

it does not seem so. i can play around with some things there if that's your initial thought, though.

@kovidgoyal
Copy link
Owner

Let me know if the fix works for you

@dankamongmen
Copy link
Contributor Author

fix confirmed, nice work cap'n. i'll reenable the new code for kitty versions >= 0.22.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants