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());
...
}