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(); }
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; } } }