예제 #1
0
        protected override void OnGLRender(object sender, EventArgs args)
        {
            _glsx.SmoothMode  = SmoothMode.Smooth;
            _glsx.StrokeColor = PixelFarm.Drawing.Color.Blue;
            _glsx.ClearColorBuffer();
            //-------------------------------
            if (tmpDrawVersion == 2)
            {
                if (multipartTessResult != null)
                {
                    SvgRenderVx renderVx  = (SvgRenderVx)lionShape.GetRenderVx();
                    int         partCount = renderVx.SvgVxCount;

                    int partIndex = 0;
                    for (int i = 0; i < partCount; ++i)
                    {
                        SvgPart vx = renderVx.GetInnerVx(i);
                        if (vx.Kind != SvgRenderVxKind.Path)
                        {
                            continue;
                        }
                        _glsx.FillRenderVx(vx.FillColor, multipartTessResult, partIndex);
                        partIndex++;
                    }

                    //Color[] colors = lionShape.Colors;
                    //int j = multipartTessResult.PartCount;
                    //for (int i = 0; i < j; ++i)
                    //{

                    //}
                }
            }
            else
            {
                int         j         = lionRenderVxList.Count;
                SvgRenderVx renderVx  = (SvgRenderVx)lionShape.GetRenderVx();
                int         partCount = renderVx.SvgVxCount;
                int         partIndex = 0;
                for (int i = 0; i < partCount; ++i)
                {
                    SvgPart vx = renderVx.GetInnerVx(i);
                    if (vx.Kind != SvgRenderVxKind.Path)
                    {
                        continue;
                    }
                    _glsx.FillRenderVx(vx.FillColor, lionRenderVxList[partIndex]);
                    partIndex++;
                }


                //Color[] colors = lionShape.Colors;
                //for (int i = 0; i < j; ++i)
                //{
                //    _glsx.FillRenderVx(colors[i], lionRenderVxList[i]);
                //}
            }
            //-------------------------------
            SwapBuffers();
        }
예제 #2
0
        void DrawAsScanline(ClipProxyImage imageClippingProxy,
                            AggRenderSurface aggsx,
                            ScanlineRasterizer rasterizer,
                            ScanlineRasToDestBitmapRenderer sclineRasToBmp)
        {
            SvgRenderVx renderVx  = lionShape.GetRenderVx();
            int         num_paths = renderVx.SvgVxCount;

            for (int i = 0; i < num_paths; ++i)
            {
                rasterizer.Reset();
                SvgPart svgPart = renderVx.GetInnerVx(i);

                switch (svgPart.Kind)
                {
                case SvgRenderVxKind.Path:
                {
                    rasterizer.AddPath(new PixelFarm.Drawing.VertexStoreSnap(svgPart.GetVxs(), 0));
                    sclineRasToBmp.RenderWithColor(imageClippingProxy, rasterizer, aggsx.ScanlinePacked8, new Drawing.Color(255, 0, 0));
                }
                break;
                }
            }
        }