bonjour,
Je cherche le moyen de recharger un texture. en fait j'utilise une tecture pour afficher un matrice de couleur. cette matrice change est je veux donc rafraichir l'affichage de cette matrice en updatant ma texture.
voici comment je charge ma texture:
et voici ce que je fait pour la mettre à jour mais ca ne marche pas:
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 /** * Load texture to OpenGl * * @param gl * @param Tex */ private void Load_Opengl_Texture(GL gl, Measure_Texture Tex){ int[] TexId = new int[1]; gl.glGenTextures(TexId.length, TexId, 0); Tex.Id = TexId[0]; gl.glBindTexture(GL.GL_TEXTURE_2D, Tex.Id); gl.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_S, GL.GL_CLAMP); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_T, GL.GL_CLAMP); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); if (Tex.hasAlpha()){ gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, Tex.getWidth(), Tex.getHeight(), 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, Tex.convImg2Bytes()); } else{ gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, Tex.getWidth(), Tex.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, Tex.convImg2Bytes()); } }
comment puis je modifier ma texture après chargement?
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 /** * Update texture to OpenGl * * @param NumTex * @param Tex */ public void Update_Opengl_Texture(int NumTex, Measure_Texture Tex){ GL gl = getGL(); Texture[NumTex].Set_BufferedImage(Tex.Get_BufferedImage()); gl.glBindTexture(GL.GL_TEXTURE_2D, Texture[NumTex].Id); /*gl.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_S, GL.GL_CLAMP); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_T, GL.GL_CLAMP); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); */ if (Texture[NumTex].hasAlpha()){ gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, Texture[NumTex].getWidth(), Texture[NumTex].getHeight(), 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, Texture[NumTex].convImg2Bytes()); } else{ gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, Texture[NumTex].getWidth(), Texture[NumTex].getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, Texture[NumTex].convImg2Bytes()); } }
Merci de votre aide.
TiTi.
Partager