示例#1
0
        public SimpleCanvas(int view_width, int view_height)
        {
            FillColor   = Color.Black;
            StrokeColor = Color.Black;

            //dimension
            _view_width  = view_width;
            _view_height = view_height;
            _max         = Math.Max(view_width, view_height);
            //------------
            //matrix
            ////square viewport
            _orthoView        = MyMat4.ortho(0, _max, 0, _max, 0, 1);
            _flipVerticalView = MyMat4.scale(1, -1) * MyMat4.translate(new OpenTK.Vector3(0, -_max, 0));
            _orthoAndFlip     = _orthoView * _flipVerticalView;
            //-----------------------------------------------------------------------
            //shader
            _shaderRes           = new CanvasToShaderSharedResource();
            _shaderRes.OrthoView = _orthoView;
            //
            _fillShader = new GlyphFillShader(_shaderRes);
            //------------
            //tools
            Tesselate.Tesselator tt = new Tesselate.Tesselator();
            _tessTool       = new TessTool(tt);
            _curveFlattener = new SimpleCurveFlattener();
            ClearColor      = Color.White;
            //--------
            //set blend mode
            GL.Enable(EnableCap.Blend);
            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
        }