macvim-dev / macvim-dev/macvim

Implement Metal renderer for MacVim

Ouverte
#1,262 0 commentaires 6 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Investigation Renderer
Langage dominant
Vim Script
Étoiles
7.9k
Forks
691
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner le travail de rendu décrit dans l’issue #858 et le problème de performances signalé dans #1259, puis inspectez le chemin actuel de rendu logiciel de MacVim. L’issue est terminée lorsqu’un moteur de rendu basé sur Metal prend en charge un défilement natif fluide et fournit les fondations de rendu nécessaires aux fonctionnalités d’animation en aval mentionnées ici.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
macos, vim
Domaine
computer-graphics, desktop, performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
22/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.