macvim-dev / macvim-dev/macvim

Implement Metal renderer for MacVim

Offen
#1,262 0 Kommentare 6 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Investigation Renderer
Vorherrschende Sprache
Vim Script
Sterne
7.9k
Forks
691
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

We should implement a Metal-based text renderer for MacVim. #858 fixed a lot of the issues with the previous way MacVim rendered text and laid the grounds work by storing the buffer of the text so it could be redrawn. However, it is not as fast as it could be because it relies on software rendering and on scrolling (or other events) it needs to redraw quite a fair amount of texts, leading to scrolling not being as smooth as it could be.

Implementing a proper Metal renderer would allow us to get the native scrolling performance back as it's trivial to submit redraws.

There are also other downstream features (some in experimentation) that would need the Metal renderer to work properly. For example, if we want per-pixel scrolling (#273), we need a high-enough frame rate to be able to generate a smooth animation. Other special animation effects such as locating cursors, or cursor animations would all benefit from a Metal renderer.

Also see #1259 for performance issue with it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Durchsicht der in Issue #858 beschriebenen Rendering-Arbeiten und des in #1259 angesprochenen Performance-Problems. Untersuche anschließend den aktuellen Software-Rendering-Pfad von MacVim. Das Issue ist abgeschlossen, wenn ein Metal-basierter Renderer flüssiges natives Scrollen unterstützt und die für die hier erwähnten nachgelagerten Animationsfunktionen erforderliche Rendering-Grundlage bereitstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
macos, vim
Bereich
computer-graphics, desktop, performance
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
22/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.