public void UpdateText(string text)
        {
            GenRectangle();

            textString = text;

            Ready        = false;
            textMeshData = null;

            textMeshData = createTextMesh();

            GL.BindVertexArray(VAO);

            GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
            GL.BufferData(BufferTarget.ArrayBuffer, textMeshData.getVertexLength() * Vector2.SizeInBytes, textMeshData.getVertexPositions(), BufferUsageHint.DynamicDraw);
            GL.VertexAttribPointer(0, 2, VertexAttribPointerType.Float, false, 0, 0);
            GL.EnableVertexAttribArray(0);

            GL.BindBuffer(BufferTarget.ArrayBuffer, ubo);
            GL.BufferData(BufferTarget.ArrayBuffer, textMeshData.getTextureCoordsLength() * Vector2.SizeInBytes, textMeshData.getTextureCoords(), BufferUsageHint.DynamicDraw);
            GL.VertexAttribPointer(1, 2, VertexAttribPointerType.Float, false, 0, 0);
            GL.EnableVertexAttribArray(1);

            Ready = true;
        }
        private TextMeshData createTextMesh()
        {
            List <Line>  lines = createStructure();
            TextMeshData data  = createQuadVertices(lines);

            return(data);
        }
        public FontRender(string text, float fontsize, string fontName, Vector2 Position, float maxLineLength, Rectangle frec)
        {
            textString       = text;
            fontSize         = fontsize;
            position         = Position;
            lineMaxSize      = maxLineLength;
            FontName         = fontName;
            _ParentRectangle = frec;

            font = AssetsManager.GetFont(FontName);

            GenRectangle();

            textMeshData = createTextMesh();
            SetUpBuffers();
        }
        public void Dispose()
        {
            textMeshData = null;

            /*GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0);
             * GL.BindVertexArray(0);*/

            GL.BindVertexArray(0);
            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
            GL.DisableVertexAttribArray(0);

            GL.BindVertexArray(0);
            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
            GL.DisableVertexAttribArray(0);

            //GL.DeleteBuffer(IBO);
            GL.DeleteBuffer(vbo);
            GL.DeleteBuffer(ubo);
            GL.DeleteVertexArray(VAO);
        }