<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>6564</bug_id>
          
          <creation_ts>2006-01-15 11:22:10 -0800</creation_ts>
          <short_desc>SVGPaintServer system needs to be redesigned to fill &amp; stroke simultaneously</short_desc>
          <delta_ts>2011-05-18 10:10:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>6553</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Kellett">a</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ian</cc>
    
    <cc>krit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28522</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Kellett">a</who>
    <bug_when>2006-01-15 11:22:10 -0800</bug_when>
    <thetext>KCanvas needs to be redesigned to fill &amp; stroke at once

This is a continuation of 6553.

Items remaining:

1.  Update PaintServers to not paint directly, but rather have an apply(STROKE | FILL) method which 
applies their stoke/fill properties to the current context.
2.  Change RenderPathQuartz to call CGContextDrawPath, and thus both stroke and fill a path in a 
single call (large perf. gain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30202</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-26 16:13:57 -0800</bug_when>
    <thetext>This could be a big performance win on large SVGs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39734</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-12-26 17:23:25 -0800</bug_when>
    <thetext>This is nearly possible today.  Just a few adjustments would be necessary.  Here&apos;s some pseudo code:

fill = fillPaintServer()
stroke = strokePaintServer()

if (fill == stroke) {
    fill-&gt;setup()
    fill-&gt;renderPath(FILL_MODE | STROKE_MODE)
    fill-&gt;teardown()
} else {
    fill-&gt;setup()
    fill-&gt;renderPath(FILL_MODE)
    fill-&gt;teardown()
    
    stroke-&gt;setup()
    stroke-&gt;renderPath(STROKE_MODE)
    stroke-&gt;teardown()
}

I&apos;m not certain how huge of a performance win this would be, but now that we have an SVG PLT we can check. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405796</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-18 10:10:55 -0700</bug_when>
    <thetext>I doubt that it makes sense to implement it. We need to be able to apply different transforms to the context for fill or stroke (because of gradients, patterns, non-scaling-stroke). And IIRC this won&apos;t be able with drawing fill and stroke at once for CG. Also just CG could make use of this. Because of the cost to implement it and the fact that just CG could make use of it. I mark this as WONTFIX. Feel free to reopen the bug if you want to work on that.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>