Exemple #1
0
        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());
            }
        }