Opened 11 years ago

Closed 3 years ago

#2925 closed bug (no change required)

Gobe Prod. ugly display of gradients

Reported by: nutela Owned by: axeld
Priority: normal Milestone: R1
Component: Servers/app_server Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86


Haiku rev. 28302

  • how to reproduce

fill a vector graphic object in GP with a radial gradient or check all default gradient rendering

  • experienced behavior see screenshots, not all gradients are rendered badly
  • expected behavior, IMHO gradients should be rendered at least as good as the R5 ones, screenshots with good rendering show improvement over R5 rendering (well done!)

Attachments (5)

beos.png (14.1 KB ) - added by nutela 11 years ago.
beos3.png (14.3 KB ) - added by nutela 11 years ago.
haiku.png (59.9 KB ) - added by nutela 11 years ago.
haiku1.png (64.6 KB ) - added by nutela 11 years ago.
haiku2.png (26.1 KB ) - added by nutela 11 years ago.

Download all attachments as: .zip

Change History (11)

by nutela, 11 years ago

Attachment: beos.png added

by nutela, 11 years ago

Attachment: beos3.png added

by nutela, 11 years ago

Attachment: haiku.png added

by nutela, 11 years ago

Attachment: haiku1.png added

by nutela, 11 years ago

Attachment: haiku2.png added

comment:1 by nutela, 11 years ago

Note that the png transform did not alter any of the images visually from what I can tell (I checked with the bitmap and rendering)

comment:2 by jackburton, 11 years ago

Could be caused by the fact that haiku drawing is antialiased ?

comment:3 by stippi, 11 years ago

As far as I can tell, there is no elegant way to fix this. The reason is indeed the anti-aliased line drawing in Haiku, and GoBe seems to be using stroked primitives to implement gradients. That's also the reason why it's so slow. If there would ever be a new version of GoBe Productive, I guess it would simply use the new BGradients, and be indeed much faster than R5 as a side effect. It used to be possible to turn off anti-aliasing in the app_server code, but doing this at runtime will make every graphics operation a tiny bit slower again. I don't feel like doing that. So until I or someone else has a better idea, this is likely a "won't fix", sorry.

comment:4 by BNickName, 11 years ago

Maybe it uses the BeginLineArray/AddLine/EndLineArray for gradients, it might make sense not to anti-alias such lines as this API is often used for linear gradients, no?

comment:5 by nutela, 11 years ago

Hm perhaps not for the radial gradient as in haiku.png BNickName?

comment:6 by axeld, 3 years ago

Resolution: no change required
Status: newclosed

One possible solution would be to have entirely different drawing backends, one that uses anti-aliasing, one that doesn't. BeOS apps could trigger the compatible one, Haiku apps wouldn't. But in any case, that's a lot of work for ugly gradients :-)

If someone feels tempted to work on it, please reopen.

Note: See TracTickets for help on using tickets.