Comment connaître la version d'OpenGL Windows 10. Est-il possible de déterminer la version d'Office et du Service Pack à partir de VBA ? Dois-je installer OpenGL ?

Dans la plupart des cas, les utilisateurs ont besoin d'un package de fichiers appelé OpenGL pour exécuter correctement certains jeux sur un ordinateur exécutant le système d'exploitation Windows 7. Si ce pilote est manquant ou si sa version est obsolète, les programmes ne s'allumeront tout simplement pas et un la notification correspondante s'affichera sur l'écran demandant l'installation ou la mise à jour BY. Dans cet article, nous parlerons de manière aussi détaillée que possible du chargement de nouvelles bibliothèques OpenGL.

Tout d’abord, il convient de comprendre comment le composant en question est installé sur un PC. Tous les fichiers nécessaires sont installés avec les pilotes de la carte graphique. Par conséquent, vous devez d'abord mettre à jour le logiciel de ce composant, puis passer à l'analyse de la méthode alternative.

Lorsque le dernier pilote est installé sur votre carte vidéo et qu'il n'y a plus de mises à jour, mais qu'une notification concernant la nécessité de mettre à jour OpenGL apparaît toujours, passez immédiatement à la troisième méthode. Si cette option n'apporte aucun résultat, cela signifie que votre matériel ne prend pas en charge les dernières bibliothèques. Nous vous recommandons de penser à choisir une nouvelle carte vidéo.

Méthode 1 : mettre à jour les pilotes de la carte vidéo sous Windows 7

Comme mentionné ci-dessus, les composants OpenGL sont installés avec les fichiers de l'adaptateur graphique. Windows 7 propose plusieurs méthodes pour les mettre à jour. Chacun d'eux convient à différentes situations et nécessite que l'utilisateur effectue certaines actions. Accédez à l'article sur le lien ci-dessous pour vous familiariser avec toutes les méthodes en détail. Choisissez celui qui vous convient et suivez les instructions fournies. Une fois le processus terminé, redémarrez simplement votre ordinateur et vérifiez les fonctionnalités des jeux ou autres programmes nécessitant une nouvelle version de la bibliothèque.

Méthode 2 : mise à jour des composants dans l'utilitaire propriétaire de la carte vidéo

Actuellement, les principaux fabricants d'adaptateurs graphiques sont AMD et NVIDIA. Chacun possède son propre logiciel qui assure le bon fonctionnement du système d'exploitation et permet de mettre à jour le logiciel. Il est conseillé aux propriétaires de cartes vidéo NVIDIA de se référer au matériel disponible sur le lien suivant pour comprendre comment installer la nouvelle version du pilote OpenGL dans GeForce Experience.

Les propriétaires de cartes AMD doivent lire d'autres articles, car dans ce cas, toutes les actions sont effectuées dans le Catalyst Control Center ou dans Radeon Software Adrenalin Edition, selon le type de logiciel installé.

Méthode 3 : mise à jour DirectX

La méthode la plus efficace, mais parfois efficace, consiste à installer de nouveaux composants de bibliothèque DirectX. Parfois, il contient des fichiers appropriés qui permettent aux jeux ou programmes nécessaires de fonctionner normalement. Vous devez d’abord savoir quel DirectX est déjà installé sur votre ordinateur. Pour ce faire, lisez les instructions dans l'article ci-dessous.

À l'heure actuelle, la dernière version du système d'exploitation Windows 7 est DirectX 11. Si une bibliothèque antérieure est installée, nous vous recommandons de la mettre à jour et de vérifier la fonctionnalité du logiciel. En savoir plus sur ce sujet dans un autre article.

Comme vous pouvez le constater, il n'y a rien de compliqué dans la mise à jour d'OpenGL ; le principal problème est uniquement la prise en charge des derniers fichiers de ce composant par votre carte vidéo. Nous vous recommandons de tester toutes les méthodes, car l'efficacité de chacune dépend de circonstances différentes. Lisez les instructions et suivez-les, vous réussirez certainement.

  1. Les pilotes des cartes vidéo NVIDIA incluses avec le système d'exploitation Windows ne prennent généralement pas en charge OpenGL. Les applications utiliseront le rendu du logiciel Windows OpenGL (un wrapper dans Direct3D sous Windows Vista). Vous pouvez vérifier la présence d'un pilote OpenGL dans le système à l'aide des utilitaires OpenGL Extensions Viewer et GPU Caps Viewer. S'ils montrent que le fournisseur OpenGL est Microsoft, alors le système ne dispose pas de pilote OpenGL. Téléchargez et installez le dernier pilote de carte graphique à partir du site Web de NVIDIA.
  2. Une nouvelle version du pilote peut avoir ajouté la prise en charge d'une nouvelle version de l'API OpenGL inconnue de l'application. Par exemple, le pilote indique aux applications qu'il prend en charge OpenGL version 2.0, et l'application/le jeu vérifie la prise en charge d'OpenGL version 1.X. Pour résoudre le problème, vous pouvez utiliser RivaTuner dans les paramètres OpenGL sur l'onglet « Compatibilité » pour forcer le remplacement de la chaîne de version OpenGL signalée par le pilote par celle prise en charge par l'application, par exemple 1.5. Cette option n'affecte pas l'exécution d'OpenGL par la carte vidéo, mais pour la même raison, les applications nécessitant la version 2.0 d'OpenGL peuvent cesser de fonctionner. Un moyen plus flexible consiste à créer un profil de pilote pour l'application problématique à l'aide de l'utilitaire nHancer, en spécifiant la version requise dans l'option « Version OpenGL signalée » dans l'onglet « Compatibilité ».
  3. Le problème peut survenir si plusieurs pilotes OpenGL sont installés sur le système pour une raison quelconque. Dans le registre à l'adresse HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers (HKLM\Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers pour Windows 9x-ME), vérifiez qu'il existe une seule sous-clé RIVATNT et que la clé Dll dans cette section a la valeur nvoglnt (il existe une seule clé avec la valeur nvopengl.dll pour Windows 9x-ME). S'il existe d'autres sous-sections, par exemple ati2dvag (pilote ATI OpenGL), elles doivent être supprimées en les exportant d'abord vers un fichier .reg.
  4. L'implémentation d'OpenGL 2.0 pour GeForce FX et les GPU supérieurs dans le pilote NVIDIA nécessite la prise en charge du processeur pour les extensions SSE. Si ces extensions ne sont pas disponibles, le pilote OpenGL ICD ne sera pas initialisé, les applications OpenGL se fermeront ou le rendu logiciel sera utilisé. Vous pouvez vérifier l'initialisation du pilote à l'aide des utilitaires OpenGL Extensions Viewer et GPU Caps Viewer ; vous pouvez vérifier les extensions prises en charge par le processeur à l'aide des utilitaires CPU-Z ou Sandra. Si le processeur ne prend pas en charge SSE, vous pouvez soit utiliser des versions antérieures du pilote (jusqu'à 75.XX), soit utiliser RivaTuner dans les paramètres OpenGL sur l'onglet « Compatibilité », activer le « Mode d'émulation NV25 » au lieu de celui par défaut. "Accélération maximale" " En dernier recours, vous pouvez utiliser le wrapper OpenGL -> Direct3D GLDirect ou TitaniumGL. Parfois, le processeur prend en charge SSE, mais la prise en charge ne fonctionne pas en raison d'un BIOS de carte mère obsolète. Ce problème est particulièrement typique des systèmes équipés de processeurs AMD Athlon XP et Duron. La mise à jour du BIOS de la carte mère peut restaurer la prise en charge de SSE.
  5. Si le système dispose de plusieurs cartes vidéo basées sur différents GPU NVIDIA, le pilote OpenGL ne prendra en charge que la version OpenGL prise en charge par toutes les cartes vidéo.


découvrir la version d'opengl linux (4)

Le moyen le plus simple et le plus rapide consiste à utiliser un outil de diagnostic tel que GPU Caps Viewer.

Vous pouvez également utiliser glGetString(GL_VERSION) mais rappelez-vous que la version que vous souhaitez afficher est la version du contexte OpenGL donné, ce qui n'est pas nécessairement la version la plus élevée que votre GPU puisse faire. Cependant, si vous créez un contexte avec les paramètres par défaut, vous obtiendrez probablement le contexte OpenGL le plus grand possible dans le profil de compatibilité, donc oui, cette méthode peut être utile.

De plus, puisque glGetString(GL_VERSION) est spécifique à un contexte OpenGL donné, vous devez le créer à l'avance. En fait pour l'appel n'importe lequel La fonction gl* nécessite un contexte GL.

En effet, mise à jour du pilote Peut être vous donne une version GL supérieure, mais il est peu probable que la version majeure change. Par exemple, si vous disposez du support GL 3.1, il est très probable que les derniers pilotes vous fourniront GL 3.3 mais pas GL 4.0.

J'utilise Windows 7. Je programme avec OpenGL. Mais j’ai découvert qu’il existe certaines possibilités que je peux utiliser. Je souhaite donc vérifier la version OpenGL sur mon système. J'utilise le code ci-dessous pour le tester

Const char* version = (const char*)glGetString(GL_VERSION);

Mais je reçois un pointeur nul. Et si je veux mettre à jour OpenGL, que dois-je faire ?

essayez d'utiliser le code suivant, cela fonctionne pour moi :

Cout<< "OpenGL Version: " << glGetString(GL_VERSION) << endl;

Assurez-vous d'inclure string et iostream dans votre programme.

Vous avez besoin du contexte GL actuel avant de pouvoir demander de quelle version vous disposez.

Créez donc d’abord un contexte, appelez wglMakeCurrent dessus et après cela, vous pouvez appeler glGetString.

La version signalée provient du pilote que vous avez installé. La version d'OpenGL que votre matériel peut prendre en charge n'est pas elle-même « mise à jour » (car certaines fonctionnalités matérielles manqueront pour prendre en charge les dernières et meilleures fonctionnalités).

La meilleure chose que vous puissiez faire est donc de mettre à jour votre pilote, mais ne vous attendez pas à d’excellents résultats, cela entraînera un nouvel OpenGL.

Vous avez besoin créer un contexte OpenGL(WGL) avant d'appeler glGetString(GL_VERSION) :

#inclure #inclure #pragma comment (lib, "opengl32.lib") LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); int WinMain (__in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd) ( MSG msg = (0); WNDCLASS wc = (0); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND); wc.lpszClassName = L"oglversionchecksample"; wc.style = CS_OWNDC; if(!RegisterClass(&wc)) renvoie 1; CreateWindowW(wc.lpszClassName,L"opengllversioncheck",WS_OVERLAPPEDWINDOW|WS_VISIBLE,0, 0,640,480,0,0,hInstance,0); while(GetMessage(&msg, NULL, 0, 0) > 0) DispatchMessage(&msg); return 0; ) LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) ( switch(message) ( case WM_CREATE: ( PIXELFORMATDESCRIPTOR pfd = ( sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Drapeaux PFD_TYPE_RGBA, //Le type de framebuffer. RGBA ou palette. 32, //Profondeur de couleur de le framebuffer. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, //Nombre de bits pour le deepbuffer 8, //Nombre de bits pour le stencilbuffer 0 , //Nombre de tampons Aux dans le framebuffer. PFD_MAIN_PLANE, 0, 0, 0, 0 ); HDC ourWindowHandleToDeviceContext = GetDC(hWnd); int letWindowsChooseThisPixelFormat; letWindowsChooseThisPixelFormat = ChoosePixelFormat(ourWindowHandleToDeviceContext, &pfd); SetPixelFormat (ourWindowHandleToDeviceContext,letWindowsChooseThisPixelFormat, &pfd); HGLRC ourOpenGLRenderingContext = wglCreateContext(ourWindowHandleToDeviceContext); wglMakeCurrent (ourWindowHandleToDeviceContext, ourOpenGLRenderingContext); MessageBoxA(0,(char*)glGetString(GL_VERSION), "OPENGL VERSION",0); wglDeleteContext(ourOpenGLRenderingContext); PostQuitMessage(0); ) casser; par défaut : return DefWindowProc(hWnd, message, wParam, lParam) ; ) renvoie 0 ; )

Question : Déterminer la version d'OpenGL


Besoin de code pour opengl es 2,
et le réseau regorge de code pour la première version
comment déterminer rapidement la version d'OpenGL par code ?
Est-il nécessaire d’avoir une marque noire dans les premières étapes ?

Répondre: doit d’abord utiliser VBO. c'est-à-dire glGenBuffers, glBindBuffer, etc. bien que cette chose soit supportée depuis la version 1.5. Deuxièmement, vous devez utiliser des shaders. c'est-à-dire glCreateProgram, glLinkProgram, glSetShader, etc. Eh bien, le code devrait également inclure le code du shader (bien que jusqu'à la version 3.3, il n'y ait aucune exigence pour les shaders, mais sans les shaders de la version 2.0, cela ne sert à rien à partir de la version 1.5).

Question : Quelle version d'OpenGL dois-je choisir pour que l'application prenne en charge le plus grand nombre de cartes vidéo ?


Bonjour! La question est exactement la même que dans le sujet : quelle version d'OpenGL dois-je choisir pour que l'application prenne en charge le plus grand nombre de cartes vidéo ?

Répondre: En général, c'est ce que je pense.
Au début, le nombre d'utilisateurs de PC a augmenté de façon exponentielle et je pense que cette croissance a atteint son apogée entre 2008 et 2011 (pour chaque pays, ce pic s'est produit à des moments différents, mais dans certains autres pays, il n'a peut-être pas atteint) et maintenant cette croissance décroît.

En fait, je partirais de ce sommet, c'est-à-dire... Je regarderais quelle version d'OpenGL était à ce moment-là et je l'utiliserais à mes fins si j'avais probablement besoin d'assistance. Eh bien, peut-être encore moins quelques mois... c'est-à-dire le temps qu'il faut au PC pour passer du fabricant à l'acheteur.

Question : Choisir la version optimale d'OpenGL


La question est : quelle devrait être la configuration système requise pour un simple jeu 2D en 2016 ? Il existe une idée selon laquelle il serait incorrect de créer un projet de niveau Flappy Bird sur OpenGL 4.x en raison de l'incompatibilité de nombreuses cartes vidéo avec cette version. La version minimale d'OpenGL, à mon avis, est la 2.0, puisque d'une part elle couvre le matériel des anciennes générations, d'autre part elle permet d'utiliser des shaders GLSL. Le post-traitement à l'aide d'un framebuffer est pris en charge par les extensions. Mais je ne suis pas satisfait de la limitation associée à la fonction glTexImage2D. Toutes les cartes vidéo OpenGL 2.0 ne permettent pas de créer des textures en mémoire supérieures à 1024px*1024px. Cela nécessite également plus d’efforts pour optimiser un tel matériel. Je serai heureux de recevoir des conseils. Il serait également bien d'avoir des statistiques sur cette question.

Répondre:

message de 8Observateur8

J'ai une telle situation que je collectionne (en exe) des jeux sur un ordinateur portable moderne sous Win7 OS.

Peu importe ce sur quoi vous collectez.
Pour le moteur, la configuration de la machine sur laquelle il tourne est importante.

message de 8Observateur8

Il s'avère que le moteur compile l'exe de telle manière que lorsque l'exe est lancé, l'application elle-même choisira quoi utiliser : OpenGL 2.0 ou OpenGL 4.x ?

L'exe contient le moteur.
C'est lui qui assemble dynamiquement sa configuration lorsqu'il est lancé depuis des modules existants.

Question : version OpenGL


Bonsoir, chers membres du forum. Est-il possible d'utiliser les versions 1.0 à 1.5 d'OpenGL (cette limitation a été fixée par un enseignant de l'institut) en installant, par exemple, GLUT (ou d'autres bibliothèques) ? Merci d'avance pour votre réponse.
PS : langage de programmation C ou C++.

Répondre: Si vous n'utilisez pas d'extensions et de fonctions comme glCreateShaderObjectARB(..), glAttachObjectARB(..), etc. (c'est-à-dire se passer complètement de shaders), alors ce sera OpenGL 1.5

Question : Déterminer la version de Windows


Salutations à tous.
J'ai rencontré le problème suivant : je dois déterminer la version du système d'exploitation sans utiliser GetVersionEx. Le fait est que sur msdn il est écrit à propos de cette fonction :

Citation

Les applications non manifestées pour Windows 8.1 ou Windows 10 renverront la valeur de la version du système d'exploitation Windows 8 (6.2). Une fois qu'une application est manifestée pour une version donnée du système d'exploitation, GetVersionEx renverra toujours la version pour laquelle l'application est manifestée dans les versions futures.

Mais j'ai juste besoin que mon application détecte qu'elle fonctionne sous Windows 10.
L'option permettant d'ajouter des applications Windows 10 au manifeste ne fonctionne pas.

Voici en fait la question : existe-t-il des moyens de déterminer la version de Windows en utilisant uniquement les fonctions en mode utilisateur (RtlGetVersion ne convient pas, car il fonctionne en mode noyau).

Ce message a été édité par Rudolf Ninja - 13.8.2015, 12:16

Question : Déterminer la version d'ASP.NET installée


Bonjour! J'écris un programme pour collecter des informations sur l'environnement.
Dites-moi comment déterminer la version d'ASP.NET installée sur un PC
J'ai déjà déterminé la version du framework .NET et bien plus encore, mais il y a des problèmes avec ASP.NET.

Répondre:

message de nevbie

ou correspond-il à la version de NET Framework ?

Il ne peut pas manquer, car il s'agit du NET Framework, juste quelques assemblages de sa composition.