Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void InitOpengl(int width, int height)
- {
- m_vpWidth = width;
- m_vpHeight = height;
- float ratio = (float)width / height;
- m_projMatrix = Matrix4.CreateOrthographicOffCenter(-1, 1, -1, 1, 1f, 100f);
- m_viewMatrix = Matrix4.LookAt(Vector3.UnitZ, Vector3.Zero, Vector3.UnitY);
- m_mvpMatrix = m_projMatrix * m_viewMatrix;// Matrix4.Mult(m_viewMatrix, m_projMatrix);
- m_shaderPrograms = new ArrayList();
- string vertexLineShaderSrc =
- @"attribute vec3 vertex_position;
- uniform mat4 mvp;
- void main()
- {
- gl_Position = mvp * vec4(vertex_position, 1.0);
- }";
- string fragLineShaderSrc =
- @"void main()
- {
- gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
- }";
- ShaderProgram lineShader = ShaderProgram.CreateShaderProgram(vertexLineShaderSrc, fragLineShaderSrc, () => { GL.DrawArrays(BeginMode.Lines, 0, verts.Length); });
- if (lineShader != null)
- {
- lineShader.AddAttributeLocationData(new AttributeLocationData(lineShader.ShaderProgramId,
- "vertex_position",
- () =>
- {
- int vertexPosAttrib = GL.GetAttribLocation(lineShader.ShaderProgramId, "vertex_position");
- GL.EnableVertexAttribArray(vertexPosAttrib);
- GL.VertexAttribPointer(vertexPosAttrib, 3, VertexAttribPointerType.Float, false, 0, verts);
- }));
- lineShader.AddUniformLocationData(new UniformLocationData(lineShader.ShaderProgramId,
- "mvp",
- () =>
- {
- int mvpUniform = GL.GetUniformLocation(lineShader.ShaderProgramId, "mvp");
- GL.UniformMatrix4(mvpUniform, false, ref m_mvpMatrix);
- }));
- m_shaderPrograms.Add(lineShader);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement