Comments (8)
@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:
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.
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:
Based on this, I'm skeptical it has to do with someone clearing outside of their Viewport.
from terminal.gui.
@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:
from terminal.gui.
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 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:
I've seen it, but it has a lot of unrelated changes and I'd rather start from scratch.
from terminal.gui.
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.
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.
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)
- Not always getting `Button1Clicked` events on `Netdriver` or `CursesDriver`
- NetDriver sometimes isn't decoding the correct color value HOT 2
- `Dialog` width sometimes increases before it close. HOT 3
- WindowsDriver is sending mouse button pressed only on moving. HOT 4
- `WindowsDriver` emits spurious Button press mouse events HOT 1
- `WindowsDriver` makes it impossible for an app to get fast mouse clicks HOT 1
- v2: Application.Top is null HOT 2
- Title Centering HOT 3
- Button clicked event is raised even with mouse button pressed on another view. HOT 3
- View.Dispose doen't call UngrabMouse if MouseGrabView is the view itself. HOT 6
- `ListViewWIthSelection` scenario does not show all rows and other issues HOT 1
- Does Terminal.GUI supports aarch64 arhitecture? HOT 3
- Mouse doubleclick stops continous pressed events. HOT 2
- Fix focus and keyboard nav with `Adornments`
- Refactor `Border` to use subviews for title, lines, and close button
- `Content Scrolling` Scenario doesn't illustrate `ClearContentOnly` properly
- Improve redraw performance by making `Clip` be a `Region` instead of `Rectangle` HOT 22
- `TextFormatter` bugs HOT 35
- Add internal analyzers and source generators HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terminal.gui.