[V4 Beta3] OpenGL avec double en paramètre [Résolu/Reporté]
[V4 Beta3] OpenGL avec double en paramètre [Résolu/Reporté]
Toujours pas possible d'appeler les fonctions Opengl comme gluPerspective() sans Wraper ?
Ou est mon erreur, ça me répond "POLINK: error: Unresolved external symbol 'gluxxxxxx' ?
Code : Tout sélectionner
Import "glu32.lib"
gluPerspective__(fovy.d, aspect.d, zNear.d, zFar.d) As "gluPerspective"
gluPickMatrix__(x.d, y.d, Width.d, Height.d, viewport.l(1)) As "gluPickMatrix"
gluCylinder__(*qobj.l, baseRadius.d, topRadius.d, Height.d, slices.l, stacks.l) As "gluCylinder"
gluDisk__(*qobj.l, innerRadius.d, outerRadius.d, slices.l, loops.l) As "gluDisk"
EndImport
Code : Tout sélectionner
Import "glu32.lib"
gluPerspective.l(fovy.d, aspect.d, zNear.d, zFar.d) As "_gluPerspective@32"
gluPickMatrix.l(x.d, y.d, Width.d, Height.d, viewport.l(1)) As "_gluPickMatrix@36"
gluCylinder.l(*qobj.l, baseRadius.d, topRadius.d, Height.d, slices.l, stacks.l) As "_gluCylinder@36"
gluDisk.l(*qobj.l, innerRadius.d, outerRadius.d, slices.l, loops.l) As "_gluDisk@28"
EndImport
Debug gluPerspective(0,0,0,0)
Tu peux définir le type de la valeur de retour d'une fonction (.l, .d, etc...)
C'est à dire gluPerspective.l() plutot que gluPerspective__()
Ca te servira surement.
2/
Tu dois définir le nom exact de la fonction et au format classique çà ressemble plus souvent à çà : _fonction@8 où 8 est la taille mémoire occupé par toutes les arguments...
Voilà

Le probleme c'est que tu n'y accedes pas directement, tu passes par un .lib (OpenGL32.lib dans ce cas) qui se trouve dans PureLibraries\Windows\Libraries\ . Edite le et tu devrais voir les symbols exportés.Niffo a écrit :Ces fonctions ne retournent pas de valeur (void)
Sinon, j'avais ouvert les DLL avec "Dependency Walker" en pensant voir le bon nom des fonctions, mais visiblement ce n'est pas le cas
Merci à tous les deux en tous cas, ça marche bien et sans wrapper maintenant 
D'autre part, c'est un vrai bonheur maintenant d'accéder aux extensions Opengl grâce aux prototypes et sans CallFunctionFast !
Exemple :

D'autre part, c'est un vrai bonheur maintenant d'accéder aux extensions Opengl grâce aux prototypes et sans CallFunctionFast !
Exemple :
Code : Tout sélectionner
Prototype PFNGLBINDBUFFERARBPROC(target.l, Buffer.l)
Global glBindBufferARB_.PFNGLBINDBUFFERARBPROC
glBindBufferARB_ = wglGetProcAddress_("glBindBufferARB")