Since we rely heavily on GDI+ in .NET1.1 in our company, I was wondering, with the arrival of 2.0, if there has been any far reaching changes in the new version.
One problem we have is that it is sloooooow. I have read that this is due to the lack of graphic acceleration support (which was said to be added in "future verisons").
Another problem are several bugs inside some GDI functions, especially GraphicsContainers and AA (AntiAliasing) seem(ed) to be buggy.
Also, does GDI+ die with WPF/Avalon?
Thanks for your thoughts.
hardball wrote:One problem we have is that it is sloooooow. I have read that this is due to the lack of graphic acceleration support (which was said to be added in "future verisons").
Graphics acceleration support is not somerthing that can be implemented in the software, as far as I understand it:
The meaning "accelerator support" is that a given graphics card implements the given library's command in the hardware - the OpenGL or DirectX command-set, for instance, is implemented natively on most modern 3D graphics cards. GDI is also implemented for 2D acceleration. GDI+, however, is a relatively new command-set and wasn't widely adopted - so graphics chipset manufacturers aren't too keen on spending their time and chip-space on implementing another command-set for a relatively limited set of applications. This means that new GDI+ functionality isn't accelerated, while those elements of GDI+ which are simply wrappers around GDI calls ARE, since the instructions are executed by the GPU directly.
Anyone with a better understanding - feel free to correct or expand here.
I see. Since the GPU isn't used by some/most of GDI+, even though it is wrapped around GDI, there are alot of operations in GDI+ that are simply too slow.
So what is going to happen in that respect? I doubt the GPUs will implement GDI+......
Use DirectX for 2D applications???
What are you using GDI+ for?
We are using it to draw our print products on screen (calendars, photo albums, etc.). The users can drag and drop their pictures onto that virtual calendar, and then manipulate them (rotate, skew, the works), change the position within the printable page, and so on. That is what we use GDI+ for.
We created all the logic and controls ourselves. That reminds me, does anyone know of libraries that already do this kind of stuff, and more? We are looking to add image retouching functions next: red eye, blur, sharpen, etc. Is there anything out there that can do that? Cost don't matter.
I wouldn't bother with DirectX for your needs. It's true that DirectX is hardware-accelerated, but the overhead of getting the graphics out of the 3D card won't be worth your trouble. If you've got code written w/ GDI+ already, you should staty with that.
Re: graphics libraries, I've gotten some experience w/ Lead Tools and it handled what we needed. You'll want to explore it further to see if it fits you.
Andokai suggests WPF -- which is really flexible, but ain't here yet.
Thank you guys,
I'll look into Lead Tools. Sounds good from what I've read so far.
As to WPF, not a chance. We will have such a large customer base, it'll take too much efforts to make the move in the newar future.
But of course I agree with you - its flexibility is second to none.