Utilisation d'une fonction issu d'une extension opengl

Soyez le premier à donner votre avis sur cette source.

Snippet vu 1 768 fois - Téléchargée 16 fois

Contenu du snippet

un petit bout de code pour montrer comment
utiliser une fonction issue d'une extension de la carte graphique;

(ici la fonction GLSL "glCreateShader" qui permet de créer un objet
shader vide opengl,les fonctions glsl sont décrites dans le fichier glext.h disponible sur le site d'openGL)

Source / Exemple :


GL_VERTEX_SHADER              equ     08B31h

.data
	Name_glCreateShader  BYTE "glCreateShader",0

.data?
	glCreateShaderID	dword ?	
	ID_vertex_shader	dword ?

.code

 ;recherche de l'adresse mémoire de la fonction
 
 invoke wglGetProcAddress,offset Name_glCreateShader
 mov glCreateShaderID,eax ;eax 
                           
 ;appel de la fonction

 push GL_VERTEX_SHADER
 call glCreateShaderID
 mov ID_vertex_shader,eax	;eax contient handle du nouveau shader

A voir également

Ajouter un commentaire

Commentaires

Messages postés
75
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 mars 2019

effectivement,je pense que ça fonctionne de cette façon.
Messages postés
557
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
30 septembre 2020
2
Merci pour la réponse.
Si j'ai bien compris,la fonction se charge de trouver la dll en fonction du matériel installé ?.
Messages postés
75
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 mars 2019

où peut être que la dll qui contient les extensions opengl issues du pilote de la carte graphique est chargée automatiquement en mémoire des que l'on inclue dans le prog les dll classiques OpenGl (opengl32.dll et glu32.dll),je n'ai pas vérifié.
Messages postés
75
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 mars 2019

d'après ce que j'ai constaté sur mon pc,tout dépend du type
de la carte graphique (et de son pilote qui doit étre à jour)

quand j'utilise wglGetProcAddress,j'obtient en retour pour la fonction GLSL glCreateShader un pointeur situé dans la DLL
nvogl.dll (j'ai une carte NVidiae),mais je n'inclue pas cette dll dans mon prog,elle est chargée automatiquement en memoire dès que je demande un pointeur sur la fonction glCreateShader
par l'intermédiare de wglGetProcAddress.(ou peut être dès que je call glCreateShader)

Tout ça pour dire que cela marche sans écrire "INCLUDELIB nvogl.ddl"

je suppose que si j'avais une carte ATI j'aurais une dll chargée en memoire du type atiogl.dll,...
Messages postés
557
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
30 septembre 2020
2
Le code est incomplet !!!!!!!!!!!!!!!
Quel est le nom de la dll chargé ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.