2013-04-18 1 views
2

Je veux faire un affichage visuel minimal dans la console avec openGL, mais pour autant que je sache, il doit y avoir un système de fenêtre impliqué (rassasiement, glfw, sdl, etc ..). J'ai vu omxplayer créer un environnement graphique (je suppose que c'est OpenGL ou quelque chose de similaire, alors corrigez-moi si je me trompe) de la console, afin d'économiser de la puissance de traitement, et rendre les films regardables pi. Je me demandais comment font-ils? Y a-t-il de la littérature sur le sujet? Je suis surtout intéressé par les solutions en C/C++, mais tout langage avec ces capacités serait génial à connaître!Créer contexte openGL dans la console linux (Raspbian)

Je fouillaient dans le code source, mais n'a pas pu trouver la moindre idée de cette tâche particulière. Toute aide ou pointeur serait apprécié!

Répondre

3

Remarque: le Raspberry Pi ne OpenGL ES, pas OpenGL.

Vous pouvez trouver des exemples de fabrication console applications OpenGL ES dans le SDK VideoCore:

/opt/vc/src/hello_pi

Je ne sais pas ce que vous entendez par « système de fenêtre », d'autant plus que vous mentionnez SDL. Vous pouvez absolument utiliser SDL + OpenGL ES dans la console. C'est ce que le port Quake3 (et le port Quake2 que j'ai fait) utilise.

2

Il utilise l'interface de plate-forme native EGL.

est Voici une partie de la classe SubtitleRenderer:

void SubtitleRenderer::initialize_vg() { 
    // get an EGL display connection 
    display_ = eglGetDisplay(EGL_DEFAULT_DISPLAY); 
    ENFORCE(display_); 

    // initialize the EGL display connection 
    ENFORCE(eglInitialize(display_, NULL, NULL)); 

    // get an appropriate EGL frame buffer configuration 
    static const EGLint attribute_list[] = { 
    EGL_RED_SIZE, 8, 
    EGL_GREEN_SIZE, 8, 
    EGL_BLUE_SIZE, 8, 
    EGL_ALPHA_SIZE, 8, 
    EGL_SURFACE_TYPE, EGL_WINDOW_BIT, 
    EGL_NONE 
    }; 
    EGLConfig config{}; 
    EGLint num_config{}; 

    ENFORCE(eglChooseConfig(display_, attribute_list, &config, 1, &num_config));