Bonjour

Je teste mon application et plus particulièrement sa partie picking. Je pique des objet dans le but de les bouger ou d'obtenir des propriétés.
Or, il me semble que si je charge un nombre important d'objets (> à 127), mon picking m'indique que je ne peux piquer que les objets <= à 127.
Voici comment je génère mes noms (PS, je code en Java6 avec JOGL 1.1.1):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
    private void drawNodes(GL gl, int mode) {
        gl.glDisable(GL.GL_TEXTURE_2D);
        gl.glDisable(GL.GL_LIGHTING);
 
        gl.glInitNames();
        gl.glPushMatrix();
        for (int i = 0; i < this.nodes.size(); i++) {
            if (mode == gl.GL_SELECT)
                gl.glPushName(i);
            displayNode(gl, i);
        }
        gl.glPopMatrix();
 
 
        gl.glEnable(GL.GL_TEXTURE_2D);
        gl.glEnable(GL.GL_LIGHTING);
    }
Et voici la fonction de picking:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
    private void pickPoint(GL gl) {
        GLU glu = new GLU();
        int selectBuf[] = new int[BUFSIZE];
        IntBuffer selectBuffer = BufferUtil.newIntBuffer(BUFSIZE);
        int hits;
        int viewport[] = new int[4];
 
        gl.glGetIntegerv(GL.GL_VIEWPORT, viewport, 0);
 
        gl.glSelectBuffer(BUFSIZE, selectBuffer);
        gl.glRenderMode(GL.GL_SELECT);
 
        gl.glMatrixMode(GL.GL_PROJECTION);
        gl.glPushMatrix();
        gl.glLoadIdentity();
 
        glu.gluPickMatrix((double) this.point.x,
                (double) (viewport[3] - this.point.y),//
                Math.floor(1.0 * zoom), Math.floor(1.0 * zoom), viewport, 0);
        gl.glOrtho(-10f, 10f, -10f, 10f, -10f, 10f);
 
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glInitNames();
        drawWorld(gl, GL.GL_SELECT);
 
        gl.glMatrixMode(GL.GL_PROJECTION);
        gl.glPopMatrix();
        gl.glFlush();
 
        hits = gl.glRenderMode(GL.GL_RENDER);
        selectBuffer.get(selectBuf);
 
        if(gl.glGetError()>0)
            System.err.println("pickPoints 1: "+gl.glGetError());
 
        processHits(hits, selectBuf);
 
        if(gl.glGetError()>0)
            System.err.println("pickPoints 2: "+gl.glGetError());
    }
Donc, est-il possible d'augmenter la taille de ma pile de noms ? Si oui comment ?
A moins que je ne me sois trompé dans mon implémentation ?

Merci d'avance de votre aide.

@++