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

selection flicker #56

Open
rjkroege opened this issue May 26, 2018 · 5 comments
Open

selection flicker #56

rjkroege opened this issue May 26, 2018 · 5 comments
Assignees
Labels
in progress Work has started... UX polish UX improvements

Comments

@rjkroege
Copy link
Owner

When text is selected, scrolling is slower. There is obviously too much work being done. I should make it better. In particular, there is no point in redrawing the selected text multiple times.

@rjkroege rjkroege self-assigned this May 26, 2018
@rjkroege
Copy link
Owner Author

I spent a little bit of time trying to understand the scheduling behaviour between the draw library and devdraw program. It doesn't seem like devdraw has a particularly good way to express the two separate ideas of:

  • permit subsequent pixel reads to depend on previous pixel writes
  • show on screen at the next vblank all draw operations up to this point in the command stream.

The way that I simplified the selection painting code also overdraws.

@rjkroege
Copy link
Owner Author

I have a wip design for a revised Frame drawing path that:

  • supports varying text styles Support display of styled text #70 (though with devdraw perf limitations)
  • eliminates selection flicker
  • removes selection overdraw
  • works with existing devdraw
  • has fewer display bugs (though other than selection flicker, it appears that I've fixed almost all of the Frame bugs now)

@rjkroege rjkroege added the UX polish UX improvements label Jul 15, 2018
@Superpat
Copy link

Superpat commented Feb 1, 2019

Not sure if it's the same thing, but under OpenBSD 6.4-current, I find Edwood to be noticeably slower than plan9port Acme when playing with selections.

@rjkroege
Copy link
Owner Author

rjkroege commented Feb 2, 2019

Indeed. Fixing that is the point of the bug. I know why this is. I made a simplifying assumption in the implementation of Frame that was regrettable. There are a lot of opportunities to improve the Frame drawing code.

@rjkroege rjkroege added the in progress Work has started... label Dec 22, 2021
rjkroege added a commit that referenced this issue Dec 31, 2021
To help with #56 and other frame.Frame improvements, update the draw
mock to record the commands sent to 9fans.net/go/draw. Further use
this in some simple tests of frame.Insert to demonstrate that the
mocks work and significantly expand test coverage of the frame unit
tests.
rjkroege added a commit that referenced this issue Dec 31, 2021
To help with #56 and other frame.Frame improvements, update the draw
mock to record the commands sent to 9fans.net/go/draw. Further use
this in some simple tests of frame.Insert to demonstrate that the
mocks work and significantly expand test coverage of the frame unit
tests.
rjkroege added a commit that referenced this issue Jan 7, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert.
rjkroege added a commit that referenced this issue Jan 8, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert.
rjkroege added a commit that referenced this issue Jan 13, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert.
rjkroege added a commit that referenced this issue Jan 13, 2022
Further increase test coverage on frame.Insert. Helps with #56. Added
width equality match tests.
rjkroege added a commit that referenced this issue Jan 13, 2022
Further increase test coverage on frame.Insert. Helps with #56. Added
width equality match tests.
@rjkroege
Copy link
Owner Author

Also note several points in the code where I'm redrawing unnecessarily.

rjkroege added a commit that referenced this issue Mar 21, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert and
frame.Delete.
rjkroege added a commit that referenced this issue Mar 22, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert and
frame.Delete.
rjkroege added a commit that referenced this issue Mar 22, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert and
frame.Delete.
rjkroege added a commit that referenced this issue Mar 22, 2022
Ongoing preparatory work to address issue #56: improve the frame test
harness, simplify the edwoodtest mock display code's output (to make
it easier to reason about) and expand test coverage on frame.Insert and
frame.Delete.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress Work has started... UX polish UX improvements
Projects
None yet
Development

No branches or pull requests

2 participants