Bookstore

Recent

Author Topic: Advanced Vector Canvas  (Read 5804 times)

AJGenius

  • New Member
  • *
  • Posts: 10
Advanced Vector Canvas
« on: September 25, 2003, 08:50:01 pm »
I have been wondering what the thoughts on creating an advanced AA vector based canvas like the gnome canvas, which could have multiple backends dependent upon what was available, are. 8)

For instance it could use libart and gdkpixbuf under gtk1.2/gnome1.4, or gtk2, and under windows libart could be used, or it could have its own fallback solution faking it much like Tony Maro has done with some of his graphs.

Also a Cairo back end could be written once the api has stabalized and a good pascal header and OO bindings have been generated.

Obviously it would have to start small but much of what is needed could be added to the LCL interface itself, and math to graphmath,and would allow using lazarus to do things support advanced graphics manipulation such as svg etc.

And if this was done similarly to the LCL Interfaces then the front end would not be dependent on anything LCL interface or its own rendering backend directly, so new ones could be easily added.

To begin with perhaps the actual full back end could have a nice api to allow using on a standard paintbox on expose, with a call to render the cached canvas pixmap/pixbuf through, so it wouldn't even be so much a custom control at that point but a consistant sane wrappers. But once that was in place we could have an actual component which could store paths in the lfm etc, and allow using it for custom shaped controls and so forth.

So what do people think? comments or suggestions? :?:

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3541
Re: Advanced Vector Canvas
« Reply #1 on: April 30, 2006, 02:00:30 pm »
Quote from: "AJGenius"
I have been wondering what the thoughts on creating an advanced AA vector based canvas like the gnome canvas, which could have multiple backends dependent upon what was available, are. 8)

....

So what do people think? comments or suggestions? :?:


Seams really good =)

It think it could start as a separate component, and if developers agree, be added to Lazarus in the future.

If you want, you can make a Canvas and then a PaintBox for that canvas, so it can become a component.

Also, please add a wiki page for it here:

http://wiki.lazarus.freepascal.org/index.php/Components_and_Code_examples

Explaining how to use it. If you upload the component to Vincent (you can find him on the mailling list) he will put it on the Lazarus Code and Components repository.