473,326 Members | 2,010 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,326 software developers and data experts.

GDI+ performance issue

I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
..NET 2.0 ? Has Microsoft solved this performance problem, or we will have to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help

Jul 21 '05 #1
10 2477
Hi,

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
It doesn't matter what language you use when the bottleneck is within
managed library, does it?
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Actually, DX9 redistributable (note *not* SDK as end-user doesn't need SDK)
is quite significantly smaller - around 36Mb if I am not mistaken and it is
a way to go for animations IMO.
And you don't need DDraw - using DirectX3D is actually better and perhaps
easier.

--
Miha Markic [MVP C#] - RightHand .NET consulting & development
SLODUG - Slovene Developer Users Group
www.rthand.com
Thank for help

Jul 21 '05 #2
They are adding another type of back buffer, that is supposed to be faster
for explicit double buffering, and new text drawing functions. I believe
that is it.

The performance is not awful for simple animations. GDI+ must be used
carefully for good performance, it is true, but once you do that, the
performance is fine in most cases. It depends how many pixels you are
animating at once, and how you optimize the screen updates. Make sure you
only redraw the pixels you need to redraw.

Regards,
Frank Hileman

check out VG.net: http://www.vgdotnet.com
Animated vector graphics system
Integrated Visual Studio .NET graphics editor

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help

Jul 21 '05 #3
One more thing: they are getting right of expensive calls to Enum.IsDefined
throughout System.Drawing, thanks to my complaints.
- Frank
Jul 21 '05 #4
Actually GDI+ is not part of the framework at all - its an unmanaged library
with a thin managed wrapper. Just in case you think that might solve your
problem, its also pretty darned slow when called directly from unmanaged
code.

Cheers

Doug Forster

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help

Jul 21 '05 #5
The base problem is whereas the old GDI was graphics card accelerated GDI+
isn't. The "bonus" is that if you can get acceptable performance, you can
get it on any PC. With some knowledge of the system bottlenecks, performance
for business type of applications such as charting, diagramming etc can be
acceptable. For game type apps and large animations etc, managed DX9 is the
recommended route.

You seem to be concerned about a DX download/redistributable but keep in
mind that most users will also have to download .NET framework
redistibutable anyway.

James

--
Create interactive diagrams and flowcharts with ERM Diagram at
http://www.crainiate.net

Take the ERM Tour at http://www.flowchartcontrol.com

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help

Jul 21 '05 #6
The case of supporting GDI+ by hardware is quiet absord. How should i expect
my costumers to buy the latest graphic cards (or update their drivers) while
the applications with GDI* drawings commonly don't have purposes of their DX
counterparts ( like heavy games). No one accepts to do so many system
changes for a simple (but neccessary) animation. Besides, i think it is the
duty of Microsoft to make thier GDI+ compatible with the common graphic
cards of the planet, because GDI+ is a very common technology and more
people will use it than DX.

"James Westgate" <ja***********@nospam.nospam> wrote in message
news:uk**************@TK2MSFTNGP15.phx.gbl...
The base problem is whereas the old GDI was graphics card accelerated GDI+
isn't. The "bonus" is that if you can get acceptable performance, you can
get it on any PC. With some knowledge of the system bottlenecks,
performance for business type of applications such as charting,
diagramming etc can be acceptable. For game type apps and large animations
etc, managed DX9 is the recommended route.

You seem to be concerned about a DX download/redistributable but keep in
mind that most users will also have to download .NET framework
redistibutable anyway.

James

--
Create interactive diagrams and flowcharts with ERM Diagram at
http://www.crainiate.net

Take the ERM Tour at http://www.flowchartcontrol.com

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help


Jul 21 '05 #7
The case of supporting GDI+ by hardware is quiet absurd. How should I expect
my costumers to buy the latest graphic cards (or update their drivers) while
the applications with GDI* drawings commonly don't have purposes of their DX
counterparts ( like heavy games). No one accepts to do so many system
changes for a simple (but necessary) animation. Besides, I think it is the
duty of Microsoft to make their GDI+ compatible with the common graphic
cards of the planet, because GDI+ is a very common technology and more
people will use it than DX.
( i wonder if they have already done this for their framework....Mac. is the
case)

"James Westgate" <ja***********@nospam.nospam> wrote in message
news:uk**************@TK2MSFTNGP15.phx.gbl...
The base problem is whereas the old GDI was graphics card accelerated GDI+
isn't. The "bonus" is that if you can get acceptable performance, you can
get it on any PC. With some knowledge of the system bottlenecks,
performance for business type of applications such as charting,
diagramming etc can be acceptable. For game type apps and large animations
etc, managed DX9 is the recommended route.

You seem to be concerned about a DX download/redistributable but keep in
mind that most users will also have to download .NET framework
redistibutable anyway.

James

--
Create interactive diagrams and flowcharts with ERM Diagram at
http://www.crainiate.net

Take the ERM Tour at http://www.flowchartcontrol.com

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help



Jul 21 '05 #8
The point James was making is that generally it doesn't matter which
graphics card you have, performance is all the same using GDI+. If you can
get good performance on one card by knowing the system and recognising where
the bottlenecks are you can get that same performance on all cards.

AFAIK *only* matrox has a GDI+ acellerated card and I don't even know what
model it is.

--
Bob Powell [MVP]
Visual C#, System.Drawing

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.

"main(){};" <it**********@hotmails.com> wrote in message
news:O6**************@TK2MSFTNGP12.phx.gbl...
The case of supporting GDI+ by hardware is quiet absord. How should i expect my costumers to buy the latest graphic cards (or update their drivers) while the applications with GDI* drawings commonly don't have purposes of their DX counterparts ( like heavy games). No one accepts to do so many system
changes for a simple (but neccessary) animation. Besides, i think it is the duty of Microsoft to make thier GDI+ compatible with the common graphic
cards of the planet, because GDI+ is a very common technology and more
people will use it than DX.

"James Westgate" <ja***********@nospam.nospam> wrote in message
news:uk**************@TK2MSFTNGP15.phx.gbl...
The base problem is whereas the old GDI was graphics card accelerated GDI+ isn't. The "bonus" is that if you can get acceptable performance, you can get it on any PC. With some knowledge of the system bottlenecks,
performance for business type of applications such as charting,
diagramming etc can be acceptable. For game type apps and large animations etc, managed DX9 is the recommended route.

You seem to be concerned about a DX download/redistributable but keep in
mind that most users will also have to download .NET framework
redistibutable anyway.

James

--
Create interactive diagrams and flowcharts with ERM Diagram at
http://www.crainiate.net

Take the ERM Tour at http://www.flowchartcontrol.com

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 + .NET 2.0 ? Has Microsoft solved this performance problem, or we will have to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have to
really stick to the old DX7, which many users don't have, and which makes our application quiet big in size.)
Thank for help



Jul 21 '05 #9
It isn't absurd to support GDI+ in hardware at all. It *isn't*
supported by most, which is why it is slow on most machines. If it were
supported in hardware, it would be faster. There wouldn't be any change
to existing machine's current performance.

Times change, and so does technology. Sometimes, in order to move
forward, you'll have to sacrifice backwards compatibility. Look at what
Apple did with MacOS X, it seems to be working out quite well for them.

main(){}; wrote:
The case of supporting GDI+ by hardware is quiet absurd. How should I expect
my costumers to buy the latest graphic cards (or update their drivers) while
the applications with GDI* drawings commonly don't have purposes of their DX
counterparts ( like heavy games). No one accepts to do so many system
changes for a simple (but necessary) animation. Besides, I think it is the
duty of Microsoft to make their GDI+ compatible with the common graphic
cards of the planet, because GDI+ is a very common technology and more
people will use it than DX.
( i wonder if they have already done this for their framework....Mac. is the
case)

"James Westgate" <ja***********@nospam.nospam> wrote in message
news:uk**************@TK2MSFTNGP15.phx.gbl...
The base problem is whereas the old GDI was graphics card accelerated GDI+
isn't. The "bonus" is that if you can get acceptable performance, you can
get it on any PC. With some knowledge of the system bottlenecks,
performance for business type of applications such as charting,
diagramming etc can be acceptable. For game type apps and large animations
etc, managed DX9 is the recommended route.

You seem to be concerned about a DX download/redistributable but keep in
mind that most users will also have to download .NET framework
redistibutable anyway.

James

--
Create interactive diagrams and flowcharts with ERM Diagram at
http://www.crainiate.net

Take the ERM Tour at http://www.flowchartcontrol.com

"**ham" <fr****@hotmails.com> wrote in message
news:el**************@TK2MSFTNGP11.phx.gbl...
I know that's an old dirty issue; GDI+ almost -the slowest part of the
framework - has bothered many developers using it in animations. Even in
managed C++ the performance is awful.
Now, any dude out there does know any thing about this issue in VS 2005 +
.NET 2.0 ? Has Microsoft solved this performance problem, or we will have
to
again stick to that DX for simple animations in our applications?
( and since Microsoft doesn't support DDraw any more, and also because
managed DX9 SDK is unimaginable for download -200mb - via modem, we have
to
really stick to the old DX7, which many users don't have, and which makes
our application quiet big in size.)
Thank for help



Jul 21 '05 #10

"Mike Newton" <MN*****@discussions.microsoft.com> wrote in message
news:uQ**************@TK2MSFTNGP15.phx.gbl...
It isn't absurd to support GDI+ in hardware at all. It *isn't* supported
by most, which is why it is slow on most machines. If it were supported
in hardware, it would be faster. There wouldn't be any change to existing
machine's current performance.

Times change, and so does technology. Sometimes, in order to move
forward, you'll have to sacrifice backwards compatibility. Look at what
Apple did with MacOS X, it seems to be working out quite well for them.


How many of our customers came crying up until about a year ago about our
stuff not working under OS 9? :-)
MOST of them believed us when we told them it was a decision Apple made, and
that we didn't think it was worth developing backwards, but I know a LOT of
people didn't upgrade for years because popular apps wouldn't run under OS
X. MS has always made backwards compatibility important to it, rightly or
wrongly, and that doesn't look like changing any time soon.

Steve
Jul 21 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: James dean | last post by:
From what i have read and seen the JIT compiler is very efficient and only compiles that code that it needs at runtime therefore it helps, not hinders performance. Does the JIT compiler make Gdi+...
6
by: James dean | last post by:
I have heard that the video drivers in GDI+ are a big performance issue. But is this only an issue with something like Games Programming i think...is this wrong?. What about a drawing application...
1
by: James dean | last post by:
Could someone explain how this works. I think the graphics card is used to do blitting and drawing shapes like rectangles. How does it draw using the Graphics card on the PC and why is this feature...
7
by: | last post by:
We create VC++ programs that does some GDI drawing functionality. I discovered GDI+ and this seems to be a big step forward, and appears to be standard available in Windows XP and Windows Server...
6
by: Phillip N Rounds | last post by:
I have an application which is heavily graphics intensive, all the graphics being custom. Scattered throughout by app, I have MyView->OnDraw( this->GetDC() ); Apparently, each call to ...
10
by: **ham | last post by:
I know that's an old dirty issue; GDI+ almost -the slowest part of the framework - has bothered many developers using it in animations. Even in managed C++ the performance is awful. Now, any dude...
15
by: David Lozzi | last post by:
Howdy, I have a function that uploads an image and that works great. I love ..Nets built in upload, so much easier than 3rd party uploaders! Now I am making a public function that will take the...
7
by: Marcin Rzeznicki | last post by:
Hello, Do you think it is legitimate practice to mix GDI+ and GDI calls (via Get/ReleaseHDC()) in paint event of a control? I've heard there is possibility of performance loss while "locking"...
14
by: James Wong | last post by:
Hi everybody, I'm facing a serious trouble relating to GDI+ generic error. The error message is "A Generic error occured in GDI+" and the following information is stored in Excepton object:...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.