Necesito acceder a datos sobre la GPU y la resolución de la pantalla en C, sin usar system_profiler
porque tarda demasiado(.3s-.5s system_profiler SPDisplaysDataType
), y necesita greping y corte, que tampoco es tan rápido.
El almacenamiento en caché sería la respuesta, pero muy miope, ya que alguien puede utilizar diferentes monitores, etc.
Por desgracia, system_profiler es de código cerrado.
EDIT: He utilizado CGDisplayPixelsWide y CGDisplayPixelsHigh para obtener la resolución. Durante la compilación tuve que compilar con -framework Cocoa -framework IOKit
. El único inconveniente es que obtiene la resolución del sistema en lugar de la resolución de la pantalla. Así que la función se ve así.
static char *get_resolution()
{
int screen_width = CGDisplayPixelsWide(CGMainDisplayID());
int screen_height = CGDisplayPixelsHigh(CGMainDisplayID());
...
}