You are not logged in.
Pages: 1
In near future I'll need to work with the TBitmap, TCanvas, TPen and TBrush type objects and such type objects I'll have many. I don't estimate requirement for the PNG, JPG formats (but you know how it happens), so should I use GDI+ for more optimized work with the graphics? or should I look into graphics library for that (they have TBitmap32 & etc)? or there is already optimized TBitmap version?
it would be nice to use everything from one source - memory manager, RTL, graphics, controls
LVCL also looks great and promising, but it provide only (minor?) subset of original VCL control (dropdowns, buttons, checkbox, forms/dialogs, panels) capabilities
Last edited by Starkis (2011-01-16 16:05:55)
--- we no need no water, let the ... burn ---
Offline
GDI will work very well, about speed and memory consumption.
GDI+ could allow better rendering quality, with anti-aliasing. See http://en.wikipedia.org/wiki/Spatial_anti-aliasing.
GDI is used when you call TBitmap, TCanvas, TPen and TBrush type objects.
GDI+ would use dedicated classes, not the standard TCanvas. The most advanced classes I found out was http://www.bilsen.com/gdiplus/index.shtml for Delphi 2009 and later.
With our SynGDI library, you can write your code using "classic" TCanvas/TPen/TBrush classes, then render it using GDI+. You can even render any component (using the PaintTo method assigned to a TMetaFileCanvas) and draw it with the anti-aliasing of GDI+.
We use these technologies to provide a full reporting workflow: reports using SQLite3Pages (with anti-aliasing), PDF generation using SynPDF. From the same code using "regular" TCanvas methods.
The problem with using GDI+ dedicated classes or TBitmap32 or the great AggPas - see http://www.crossgl.com/aggpas - is that you'll have to use dedicated classes, not TCanvas methods.
I would like (but I need some time for it) to implement a TMetaFile enumerator using AggPas as backend, instead of GDI+.
I guess the result will be interesting, faster than GDI+, perhaps with even better quality.
LVCL is only a subset... because it's a LightVCL.
Offline
Pages: 1