Ik wilde eens proberen een simpel opengl programmatje te maken voor android. Aangezien ik de nodig ervaring met opengl heb, leek mij dit geen probleem. Nu heb ik echter een class die volgens mij alles doet wat er nodig is om wat op het scherm te tekenen, echter zie ik niets!
Aan de hand van glClearColor kan ik zien dat het scherm weldegelijk gecleared wordt alleen verschijnen er geen polygonen, hoewel er volgens mij toch een vierkant getekend zou moeten worden in de linkerbovenhoek. (25x25px)
Het moet iets simpels zijn dat ik over het hoofd zie, dus ik hoop dat iemand anders het wel ziet
Dit is de testclass:
Aan de hand van glClearColor kan ik zien dat het scherm weldegelijk gecleared wordt alleen verschijnen er geen polygonen, hoewel er volgens mij toch een vierkant getekend zou moeten worden in de linkerbovenhoek. (25x25px)
Het moet iets simpels zijn dat ik over het hoofd zie, dus ik hoop dat iemand anders het wel ziet
Dit is de testclass:
Java:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| package testapp.lang; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.opengl.GLSurfaceView; class glrender implements GLSurfaceView.Renderer { public glrender() { Float tmp[] = { (float)-0.5, (float)-0.5, (float)-0.5, (float) 0.5, (float) 0.5, (float)-0.5, (float) 0.5, (float) 0.5 }; ByteBuffer bb = ByteBuffer.allocateDirect( tmp.length * Float.SIZE ); bb.order( ByteOrder.nativeOrder() ); vertices = bb.asFloatBuffer(); vertices.position( 0 ); } public void onDrawFrame( GL10 gl ) { gl.glClear( GL10.GL_COLOR_BUFFER_BIT ); gl.glMatrixMode( GL10.GL_MODELVIEW ); gl.glLoadIdentity(); gl.glColor4f( 1, 0, 0, 1 ); gl.glScalef( 50, 50, 1 ); gl.glEnableClientState( GL10.GL_VERTEX_ARRAY ); gl.glVertexPointer( 2, GL10.GL_FLOAT, 0, vertices ); gl.glDrawArrays( GL10.GL_TRIANGLE_STRIP, 0, 4 ); gl.glDisableClientState( GL10.GL_VERTEX_ARRAY ); } public void onSurfaceChanged( GL10 gl, int width, int height ) { gl.glViewport( 0, 0, width, height ); gl.glMatrixMode( GL10.GL_PROJECTION ); gl.glLoadIdentity(); gl.glOrthox( 0, width, height, 0, -1, 1 ); } public void onSurfaceCreated( GL10 gl, EGLConfig config ) { gl.glClearColor( 0, 0, 0, 0 ); gl.glDisable( GL10.GL_CULL_FACE ); gl.glDisable( GL10.GL_DEPTH_TEST ); gl.glDisable( GL10.GL_TEXTURE_2D ); } private FloatBuffer vertices; } |
oprecht vertrouwen wordt nooit geschaad