[haiku-bugs] Re: [Haiku] #10214: WebPositive: border-radius make border color overwrite background.

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Wed, 05 Mar 2014 14:38:31 -0000

#10214: WebPositive: border-radius make border color overwrite background.
----------------------------------------+----------------------------
   Reporter:  dsjonny                   |      Owner:  pulkomandy
       Type:  bug                       |     Status:  assigned
   Priority:  normal                    |  Milestone:  R1
  Component:  Applications/WebPositive  |    Version:  R1/Development
 Resolution:                            |   Keywords:
 Blocked By:                            |   Blocking:  10311, 10319
Has a Patch:  0                         |   Platform:  All
----------------------------------------+----------------------------

Comment (by pulkomandy):

 Problem identified, I think.
 When the border is only 1 pixel big, it is drawn using line drawing
 primitives. When it is bigger, it is drawn as a BShape made of 2 parts:
 * An "outside" polygon that marks the outside limit of the border
 * An "inside" polygon that marks the inside limit (where the contents
 starts)

 The idea is that these should "cancel" each other, so the BShape is filled
 with a hole in the middle, letting the contents shine through. There are
 two ways to do this:
 * Use the even/odd fill rule, or
 * Use the "winding"/"non-zero" rule, and make sure the two polygons are in
 opposite directions (one should be clockwise, and the other counter-
 clockwise). This way the winding of the intersection part will be 0, not
 1. Note that such a polygon would also work with the even/odd rule.

 In Haiku, we don't have an API for using the even/odd rule. Unfortunately,
 WebKit apparently expects us to use the first way.

 I'll see if I can change this in WebKit. However, supporting both winding
 rules in Haiku will be required at some later point, anyway. (they are
 part of the canvas API).

--
Ticket URL: <https://dev.haiku-os.org/ticket/10214#comment:7>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: