void IMVP.SetShaderProgram(mat4 mvp) { ShaderProgram shaderProgram = this.currentShaderProgram; shaderProgram.Bind(); if (shaderProgram == this.pickingShaderProgram) { shaderProgram.SetUniform("pickingBaseID", ((IColorCodedPicking)this).PickingBaseID); shaderProgram.SetUniformMatrix4(strMVP, mvp.to_array()); } else { shaderProgram.SetUniformMatrix4(strMVP, mvp.to_array()); } }
protected override void DoRender(RenderEventArgs e) { mat4 projectionMatrix, viewMatrix, modelMatrix; { IUILayout element = this as IUILayout; element.GetMatrix(out projectionMatrix, out viewMatrix, out modelMatrix, e.Camera); } this.mvp = projectionMatrix * viewMatrix * modelMatrix; this.shaderProgram.Bind(); this.shaderProgram.SetUniformMatrix4(strMVP, mvp.to_array()); GL.BindVertexArray(vao[0]); GL.DrawArrays(this.axisPrimitiveMode, 0, this.axisVertexCount); GL.BindVertexArray(0); this.shaderProgram.Unbind(); }