Bug 205645
Summary: | Gradient doesn't fill entire area in Java2D demo | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Andrew Overholt <overholt> | ||||||||||
Component: | gcc | Assignee: | Francis Kung <francis.kung> | ||||||||||
Status: | CLOSED UPSTREAM | QA Contact: | |||||||||||
Severity: | medium | Docs Contact: | |||||||||||
Priority: | medium | ||||||||||||
Version: | rawhide | CC: | fitzsim | ||||||||||
Target Milestone: | --- | ||||||||||||
Target Release: | --- | ||||||||||||
Hardware: | All | ||||||||||||
OS: | Linux | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2006-09-14 20:49:07 UTC | Type: | --- | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Attachments: |
|
Description
Andrew Overholt
2006-09-07 19:59:01 UTC
Created attachment 135806 [details]
image illustrating the problem
Created attachment 135807 [details]
stack trace
This problem only appears on Cairo 1.2, and seems to be related to cairo's treatment of gradient control vectors. Created attachment 136008 [details]
narrowing down the problem
classpath + cairo 1.0 acts the same way as the reference implementation (points
beyond the defined gradient vector are filled as opaque), but classpath + cairo
1.2 does not extend the fill beyond the gradient vector.
Created attachment 136025 [details]
fix
This patch to GNU Classpath fixes the problem, but requires cairo 1.2; it will
break the build if compiled against cairo 1.0.
(In reply to comment #5) > Created an attachment (id=136025) [edit] > fix > > This patch to GNU Classpath fixes the problem, but requires cairo 1.2; it will > break the build if compiled against cairo 1.0. Does Cairo provide compatibility defines? I'm thinking: #if CAIRO_VERSION >= CAIRO_1_2 extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_PAD; #else extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_NONE; #endif Thanks, that was what I was looking for. This has now been fixed upstream in GNU Classpath. |