Pour les pointeurs, visiblement un truc comme
unsafe { int a = 1; int* p_a = &a; }
|
semble fonctionner chez moi.
Pour opengl, nul besoin des pointeurs car en fait, j'ai decouvert hier des objets qui les remplacent.
Donc, en fouillant la faq de csgl, j'ai trouvé le remlacant des pointeurs :
c'est dans CsGL.Pointeurs
une classepar type de données c# :
PFloat pour float[],
PInt8 pour sbyte[],
PDouble pour double[],
...
vraisemblablement, il sagit de pointeurs fixes auquels est alloué un espace defini.
voci un exemple qui affiche tros points blancs :
static void affichepolygons() {
float[] p1 = { 1.0f, 1.0f, 1.0f, -0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, -0.5f, 0.0f, 1.0f, 1.0f, 1.0f, 0.5f, 0.0f, 0.0f };
sbyte[] p4 = {0, 1, 2};
PFloat p_p1 = new PFloat(9); PInt8 p_p4 = new CsGL.Pointers.PInt8(3); //copier le contenu des tableaux p1 et p4 dans les nouveaux tableaux PFloat.Copy(p_p1, 0, p1, 0, 9); PInt8.Copy(p_p4, 0, p4, 0, 3);
//je passe par la ; il parait que c'est plus rapide GL.glInterleavedArrays(GL.GL_C3F_V3F, 0, p_p1); GL.glDrawElements(GL.GL_POINTS, 3, GL.GL_UNSIGNED_BYTE, p_p4); }
|
Si ca interresse, je mettrai le source complet sur le site.