[..] OpenGl et gluPickMatrix

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
perycles
Niveau 2
Niveau 2
Messages : 20
Enregistré le : jeu. 19 avr. 2012 22:21
Localisation : NORD
Status : Hors ligne

[..] OpenGl et gluPickMatrix

#1

Message par perycles »

Bonsoir à tous,
bon me revoila avec mes questions sur OpenGL.
Je dois utiliser la fonction gluPickMatrix().
Voici comment je l'ai codée avec Autoit:

Code : Tout sélectionner

;GLAPI void APIENTRY gluPickMatrix (double x, double y, double delX, double delY, int *viewport);
Func _gluPickMatrix($x,$y,$delX,$delY,$viewport)
    DllCall($__GLU_hDLL,"none","gluPickMatrix","double",$x,"double",$y,"double",$delX,"double",$delY,"int",$viewport)
endfunc
j'ai un doute sur le codage de (int *viewpot).
Pouvez vous me corrigé si j'ai fait une erreur car l'appel de la fonction crash autoit ?
Sinon,quelqu'un a t'il un exemple d'utilisation?

Merci d'avance.
Cédric
Modifié en dernier par perycles le lun. 11 juin 2012 20:40, modifié 2 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] OpenGl et gluPickMatrix

#2

Message par matwachich »

C'est vrai que je n'ai pas tout coder dans mon UDF, mais voila comment moi je l'aurai fait, je ne l'ai pas testé et je ne sais même pas exactement à quoi elle sert cette fonction (j'utilise principalement OpenGL pour de la 2D), mais d'après la doc ça devrait être comme cela.

Code : Tout sélectionner

;GLAPI void APIENTRY gluPickMatrix (double x, double y, double delX, double delY, int *viewport);
Func _gluPickMatrix($fX, $fY, $fDelX, $fDelY)
    Local $ret = DllCall($__GLU_hDLL, "none", "gluPickMatrix", "double", $fX, "double", $fY, "double", $fDelX, "double", $fDelY, "int*", 0)
    If @error Then Return SetError(@error, @extended, $ret)
    ; ---
    Local $struct = DllStructCreate("int[4]", $ret[5])
    If @error Then Return SetError(@error, @extended, 0)
    ; ---
    Local $aRet[4] = [ _
        DllStructGetData($struct, 1, 0), _
        DllStructGetData($struct, 1, 1), _
        DllStructGetData($struct, 1, 2), _
        DllStructGetData($struct, 1, 3)
    ]
    Return $aRet
EndFunc
Comme on le voit, le dernier paramètre doit être rempli par un tableau de 4 int (en C), en AutoIt, un array à 4 éléments est retourné par cette fonction.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
perycles
Niveau 2
Niveau 2
Messages : 20
Enregistré le : jeu. 19 avr. 2012 22:21
Localisation : NORD
Status : Hors ligne

Re: [..] OpenGl et gluPickMatrix

#3

Message par perycles »

Bonjour et merci pour ta réponse rapide (je me doutais bien que c'est toi qui allait répondre :D ).

A première vue, Autoit ne "crash" plus, donc c'est plutot une bonne nouvelle.
Le resultat escompté n'est cependant pas la.Je vais revoir mon code.

Pour infos, cette fonction permet de définir une zone autour du curseur de la sourie pour sélectionner des objets dans une fenêtre OpenGL.

Je ne clos pas le sujet pour l'istant en entendant la solution définitive.
Encore merci matwachich, je peux avancer grace à toi.

Cédric
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] OpenGl et gluPickMatrix

#4

Message par matwachich »

No problémo! J'suis un grand loveur d'OpenGL aussi!!!

Dis moi, pour que je puisse t'aider un peut plus, qu'est-tu sensé trouver dans le dernier paramètre (int* viewport)?
Car d'après la doc OpenGL, c'est un array à 4 éléments, donc si c'est bien ça, ma fonction devrai fonctionner correctement. Sinon, c'est que je me suis gouré en lisant la doc.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Répondre