Maison > développement back-end > C++ > le corps du texte

Le code d'initialisation et de sortie OpenGL actuel est-il adapté à Intel HD 3000 et existe-t-il de meilleures façons de gérer plusieurs contextes OpenGL ?

DDD
Libérer: 2024-10-28 10:11:02
original
444 Les gens l'ont consulté

 Is the current OpenGL initialization and exit code suitable for Intel HD 3000, and are there better ways to manage multiple OpenGL contexts?

Quelle est l'initialisation OpenGL appropriée sur Intel HD 3000 ?

Problème :

Sur une carte graphique Intel HD 3000 , la création de plusieurs contextes OpenGL dans une seule application entraîne un comportement imprévisible :

  1. Les anciennes versions de l'application ne parviennent pas à créer un deuxième contexte de rendu.
  2. Après des modifications apportées au logiciel basé sur OpenGL , le deuxième contexte de rendu peut être créé mais devient invalide après la publication.

Initialisation actuelle et code de sortie :

<code class="c++">// Initialization code
int OpenGLscreen::init(void *f, int textures)
{
    // ...
    hrc = wglCreateContext(hdc);
    // ...
    if(wglMakeCurrent(hdc, hrc) == false)
        {
        // ...
        }
    // ...
}

// Exit code
void OpenGLscreen::exit()
{
    if (!_init) return;
    wglMakeCurrent(hdc,hrc);        // use this context if multiple OpenGLs are used
    // ...
    wglMakeCurrent(NULL, NULL);     // release current rendering context
    wglDeleteContext(hrc);          // destroy rendering context
    hrc=NULL;
    _init=0;
}</code>
Copier après la connexion

Questions :

  1. Le code d'initialisation/sortie OpenGL actuel est-il incorrect ?
  2. Existe-t-il une meilleure façon d'initialiser et de quitter OpenGL ?
  3. Comment basculer correctement entre les différents contextes de rendu ?

Réponse :

  1. Le code d'initialisation et de sortie OpenGL actuel semble correct, mais l'utilisation d'une bibliothèque de chargement telle que GLEW est recommandée.
  2. Utilisez une bibliothèque de chargement telle que GLEW ou glfw. Ces bibliothèques simplifient la création de contexte OpenGL et le chargement de fonctions.
  3. Votre utilisation de wglMakeCurrent semble correcte, mais vous devrez peut-être étudier les bizarreries spécifiques à Intel pour le changement de contexte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!