Giter VIP home page Giter VIP logo

Comments (8)

tig avatar tig commented on May 25, 2024 2

@BDisp if you're going to look into making Clip more sophisticated, I found the PR I thought I lost where I started down that path:

#2606

Nevermind. That branch does not have all the really awesome code I wrote in it. I must have never pushed. Long gone. Sad.

from terminal.gui.

tig avatar tig commented on May 25, 2024 1

I'm done trying to debug this flicker thing for now. So frustrating!

That's true, it's really frustrating. I have also analyzed the cause and I am almost certain that it is necessary to limit the drawing of decorations to their thickness. It could also be someone from Label at Border who is cleaning outside of his area.

Note that in #3323, someone has to directly set Driver.Clip to cause Driver.AddRune or Driver.FIllRect to do any drawing outside of Viewport.

The only code still in the library (outside of ViewDrawing.cs that still does that is:

image

Based on this, I'm skeptical it has to do with someone clearing outside of their Viewport.

from terminal.gui.

tig avatar tig commented on May 25, 2024

@BDisp if you're going to look into making Clip more sophisticated, I found the PR I thought I lost where I started down that path:

#2606

from terminal.gui.

BDisp avatar BDisp commented on May 25, 2024

I'm done trying to debug this flicker thing for now. So frustrating!

That's true, it's really frustrating. I have also analyzed the cause and I am almost certain that it is necessary to limit the drawing of decorations to their thickness. It could also be someone from Label at Border who is cleaning outside of his area.

from terminal.gui.

BDisp avatar BDisp commented on May 25, 2024

@BDisp if you're going to look into making Clip more sophisticated, I found the PR I thought I lost where I started down that path:

#2606

I've seen it, but it has a lot of unrelated changes and I'd rather start from scratch.

from terminal.gui.

BDisp avatar BDisp commented on May 25, 2024

I have already made the changes to use an array of Rectangles and the same problem continues to persist.
Using conhost directly from VS2022 this flickering does not happen, even though we are using True Color. Just using Windows Terminal this flickering continues and I already suspect if it is a problem with it.
Still, do you want me to submit a PR with the changes to Driver.Clip?

from terminal.gui.

tig avatar tig commented on May 25, 2024

I have already made the changes to use an array of Rectangles and the same problem continues to persist. Using conhost directly from VS2022 this flickering does not happen, even though we are using True Color. Just using Windows Terminal this flickering continues and I already suspect if it is a problem with it. Still, do you want me to submit a PR with the changes to Driver.Clip?

I don't think an array of Rectangles is the right approach. I think we want to build the next-gen clipping support on a Region class that is either directly this:

https://learn.microsoft.com/en-us/dotnet/api/system.drawing.region?view=dotnet-plat-ext-8.0

Or, is a clone of it.

So, unless you built your experiment on Region, no.

from terminal.gui.

BDisp avatar BDisp commented on May 25, 2024

I don't think an array of Rectangles is the right approach. I think we want to build the next-gen clipping support on a Region class that is either directly this:

https://learn.microsoft.com/en-us/dotnet/api/system.drawing.region?view=dotnet-plat-ext-8.0

Or, is a clone of it.

So, unless you built your experiment on Region, no.

By chance I noticed the Region class but I didn't use it to avoid having to add another library. I created a RectangleExtensions class to manipulate its Rectangle methods with the array. But since it didn't solve the problem with flickering and I didn't use the Region class, I'm going to give up on continuing with my PR.

from terminal.gui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.