Graphics Programs Reference
In-Depth Information
Note
Apart from creating
shaders
as string literals, we can also cre-
ate them in separate files. However, since we create
shaders
directly
inside the
GLES20Renderer
class (as string literals), we must ap-
pend some lines of
shaders
with “\n.” We only do this for lines that
contain single line comments or preprocessor directives (yes,
GLSL
supports comments and preprocessor directives).
For most ES 2.0 applications in the source code, you will observe
that all lines of
shaders
are appended with “\n.” This has been done
for readability purposes only, but you should understand which lines
necessarily require “\n.”
In
Listing 3-9
,
instead of directly assigning the value '15.0' to
gl_PointSize
variable, another variable
pointSize
is declared and initialized. Its value is as-
signed to
gl_PointSize
variable using
gl_PointSize = pointSize
.
Listing
3-9.
GL
POINT
BASIC/src/com/apress/android/glpointbasic/
GLES20Renderer.java
private final String _pointVertexShaderCode =
"void main() {"
+ " // declare & initialize float scalar \n"
+ " float pointSize = 15.0;"
+ " gl_PointSize = pointSize;"
+ ""
+ " // using vec3 constructor \n"
+ " vec3 xyz;"
+ " xyz = vec3(0.0,0.0,0.0);"
+ ""
+ " // using vec4 constructor \n"
+ " vec4 position;"
+ " position = vec4(xyz[0],xyz[1],xyz[2],1);"
+ " gl_Position = position;"
+ "}";
A three-component vector, named “xyz,” is first declared, and then it is initialized
using
vec3
constructor
vec3(0.0, 0.0, 0.0)
. One way to access the com-

Search WWH ::

Custom Search