Graphics Programs Reference
In-Depth Information
Figure 3-12 . Using varying in vertex shaders
To use a varying variable, it should be declared in a vertex and fragment shader
such that it has same type in both shaders. To understand this, import the archive file
glvarying.zip from the Chapter3 folder. This will load the GL VARYING ap-
plication into your workspace. If you browse through the contents of the Renderer
class, you will see right away that it is for rendering a line primitive.
First, notice the initShapes method inside the Renderer class. Apart from the
float array for vertex positions ( lineVFA ), it contains another array— lineCFA .
The first four elements in this array (0, 0, 1, 1) represent blue color, whereas
the last four elements (1, 1, 0, 1) represent yellow color. This per-vertex
color data is passed to the attribute variable aColor (recall that float array for
an attribute is passed as FloatBuffer ) using the ES 2.0 function glVertexAt-
tribPointer , as shown in Listing 3-21 .
Listing 3-21. GL VARYING/src/com/apress/android/glvarying/GLES20Render-
er.java
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT |
GLES20.GL_DEPTH_BUFFER_BIT);
GLES20.glUseProgram(_lineProgram);
GLES20.glVertexAttribPointer(_lineAVertexLocation, 3,
GLES20.GL_FLOAT, false, 0, _lineVFB);
GLES20.glEnableVertexAttribArray(_lineAVertexLocation);
 
 
 
Search WWH ::




Custom Search