The new WonderBrush

Blog post by stippi on Thu, 2012-10-25 10:59

Some of you may know that for quite some time, on and off, I am working on a rewrite of WonderBrush, the graphics tool that comes bundled with Haiku releases. Since I have last demonstrated the prototype publically, I have occasionally found the time to work on it some more. I've ported over most brush tool related code from the original WonderBrush. And in the past weeks, I have specifically worked on a new text tool (written from scratch).

The new text tool will address some of the shortcommings of the one in the original WonderBrush: On canvas editing and support for style ranges. In the current WonderBrush, a text object has one global font, font size, color and so on. And editing text works indirectly by entering it into a separate BTextView in the tool setup area. Both of these issues will be addressed by the new text tool. Different fonts, font sizes, colors and so on can be applied to individual ranges of the text and editing can happen directly on the canvas. Generally, I think a separate, regular text widget to enter the text is not such a bad idea. The text object on the canvas may be hard to see and read, either because it is partially behind other objects on the canvas, or because of applied effects or simply the current zoom setting of the canvas. So there is still a dedicated text entering widget inside the tool configuration area.

But progress on WonderBrush comes also from another direction. Ingo is on bord again :-). He recently picked up a lot of experience coding in the Qt framework, and is working on a port of WonderBrush to the tool kit. To keep the effort of this undertaking in check, he is often directly importing public Haiku classes into the port. The majority of the WonderBrush code stays unmodified, targeting the Haiku API only. Some of that API may just be implemented on top of Qt where it is necessary for the port. It's a very practical approach that is already showing good results, although the Qt port is still far behind the Haiku version.

During the upcoming BeGeistert event in Düsseldorf, I plan to demonstrate the progress on the WonderBrush rewrite and the Qt port.

Unfortunately, at the current rate of development, it will still be a while before the new WonderBruch can replace the old one. But when it does, it will offer some cool professional features that are lacking from a lot of graphics tools for other platforms:

  • Nested layer tree
  • Full 16-Bit per color channel, linear RGB internal color format
  • Heavily multi-threaded design from the ground up
  • Powerful document model featuring global styles and global resources

I look forward to meeting fellow Haiku enthusiast and developers at BeGeistert, to celebrate the old times and the future! :-)

Comments

Re: The new WonderBrush

Coolio!

So there are going to be BeAPI and QT versions of WonderBrush? Seems quite beneficial to people not running Haiku yet that which to contribute artwork and such.

Re: The new WonderBrush

"Going to be" doesn't quite fit the situation. :-) Ingo is mostly doing this for the fun and the technical challenge. I think he wants to see how far he can take this. I have no idea if the Qt port will ever be on par with the Haiku version. If it wasn't clear from the post, I am also doing this in my very limited spare time. No idea if there will ever be a new release. I sure hope so...

Re: The new WonderBrush

Great seeing you are working on this, it has some really nice features like non-destructive editing which is only coming to Gimp now thanks to gegl.

Also it serves as a great example of a full-featured native application for Haiku, of which there are sadly few.

Speaking of gegl, have you had any thought of leveraging it for Wonderbrush?. You already have non-destructive editing but gegl also offers 16-bit channel (actually 32-bit internally IIRC) support and likely some other features which can be of use. It's LGPL licenced so you won't have to re-licence Wonderbrush in order to use it.

Re: The new WonderBrush

Wonderful! I hope the Qt Port can be finished and slowly catch up to the Haiku version. I hope this will be difficult, because of fast paced development of the next generation WonderBrush4Haiku. :)

Seriously, a Qt version (excuse my ignorance: will that also run on Windows?) could be a fantastic option for my workplace. ATM we all have Photoshop installed to do "mockups". Management always wants to cut costs naturally, and the GIMP is looming. A short trial in the department showed that everybody there loathes GIMP...

Anyways... I'll update the BG026 event calender. :)

Regards,
Humdinger

Re: The new WonderBrush

A Qt port would mean it basically runs anywhere. But it is not using truly native widgets. Looks and behaves close enough, though.