0 votes

MacOS 11 : Obtenir des informations sur le système (GPU, résolution) par programmation (en C)

J'ai besoin d'accéder à des données sur le GPU et la résolution de l'écran en C, sans utiliser le système de gestion des données. system_profiler parce que cela prend trop de temps (.3s-.5s system_profiler SPDisplaysDataType ), et nécessite un greping et un cutting, ce qui n'est pas non plus très rapide.

La mise en cache serait une réponse, mais très peu prévoyante, car les gens peuvent utiliser différents écrans, etc.

Malheureusement, system_profiler est une source fermée.

EDIT : J'ai utilisé CGDisplayPixelsWide et CGDisplayPixelsHigh pour obtenir la résolution. Pendant la compilation, j'ai dû compiler avec -framework Cocoa -framework IOKit . Le seul inconvénient est qu'il prend la résolution du système plutôt que celle de l'écran. La fonction ressemble donc à ceci.

static char *get_resolution()
{
        int screen_width = CGDisplayPixelsWide(CGMainDisplayID());
        int screen_height = CGDisplayPixelsHigh(CGMainDisplayID());
        ...
}

1voto

nohillside Points 82672

Plaque d'affichage permet de lire et d'écrire les paramètres d'affichage et est open source. Je ne suis pas sûr des détails concernant le GPU.

L'API utilisée semble être définie dans IOKit/graphics/IOGraphicsLib.h .

0voto

JohnoBoy Points 16435

Je ne suis pas certain des API spécifiques, mais regarder le code source d'une application open source qui fonctionne avec les résolutions d'affichage ou les GPU peut être bénéfique. Voici deux exemples auxquels je pense RDM y gSwitch (RDM n'a pas été mis à jour depuis un certain temps mais il y a des forks à jour disponibles).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X