public void Render(float x, float y, float width, float height, Vector4 colour) { float[] verts = { x, y, x, y + height, x + width, y + height, x, y, x + width, y + height, x + width, y }; _vao.StoreData(verts, 0, 2, GLEnum.Float); _gl.Enable(EnableCap.Blend); _gl.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha); _shader.Start(); _shader.LoadMatrix("transformation", Matrix4x4.Identity); _shader.LoadVector("viewSize", new Vector2(_game.Witdh, _game.Height)); _shader.LoadVector("colour", colour); _vao.Bind(); _gl.EnableVertexAttribArray(0); _gl.DrawArrays(GLEnum.Triangles, 0, 6); _gl.DisableVertexAttribArray(0); _vao.Unbind(); _shader.Stop(); _gl.Disable(EnableCap.Blend); }
public TextureQuadRenderer(Game game, GL gl) { _game = game; _gl = gl; _shader = ResourceManager.LoadShader("texturedQuadVertexShader", "texturedQuadFragmentShader"); _vao = ResourceManager.CreateVao(); _vao.StoreData(TEX_COORDS, 1, 2, GLEnum.Float); }
private void InitRenderData() { _vao.StoreData(Tile.VERTICES, 0, 2, GLEnum.Float); uint[] tcoords = { 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1 }; _vao.StoreData(tcoords, 1, 2, GLEnum.UnsignedInt); for (int i = 1; i <= 9; i++) { _numbers[i - 1] = ResourceManager.LoadTexture("Numbers/" + i.ToString()); } }