<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Geschwindigkeitsoptimierung GDI]]></title><description><![CDATA[<p>Hallo Leutz</p>
<p>Habe einige animierte Bewegungen mit der GDI erstellt Und habe eine Probleme mit der Geschwindigkeit. Mir ist durchaus bekannt, dass diese Möglichkeit nicht zu den schnellsten gehört, aber ich kann ja schlecht wegen jedem bisschen gleich mit DirectX anfangen. Schließlich ist ja nicht jedes Spiel auf dieser Welt in DirectX erstellt worden.<br />
Lade alle Bitmaps bereits in der WM_CREATE. Klassenzugriffe die nur Werte zurückgeben sind bei mir schon als &quot;inline&quot;. Gibt es weitere Optimierungsmöglichkeiten?</p>
<blockquote>
<p>&gt; Bitte keine Verweiße auf DirectX, dafür ist es nicht umfangreich genug <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/102631/geschwindigkeitsoptimierung-gdi</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 16:57:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/102631.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Feb 2005 11:04:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 11:04:00 GMT]]></title><description><![CDATA[<p>Hallo Leutz</p>
<p>Habe einige animierte Bewegungen mit der GDI erstellt Und habe eine Probleme mit der Geschwindigkeit. Mir ist durchaus bekannt, dass diese Möglichkeit nicht zu den schnellsten gehört, aber ich kann ja schlecht wegen jedem bisschen gleich mit DirectX anfangen. Schließlich ist ja nicht jedes Spiel auf dieser Welt in DirectX erstellt worden.<br />
Lade alle Bitmaps bereits in der WM_CREATE. Klassenzugriffe die nur Werte zurückgeben sind bei mir schon als &quot;inline&quot;. Gibt es weitere Optimierungsmöglichkeiten?</p>
<blockquote>
<p>&gt; Bitte keine Verweiße auf DirectX, dafür ist es nicht umfangreich genug <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/734162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734162</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Mon, 28 Feb 2005 11:04:00 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 11:45:29 GMT]]></title><description><![CDATA[<p>double buffering<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=14713" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=14713</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/734186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734186</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 28 Feb 2005 11:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 12:55:29 GMT]]></title><description><![CDATA[<p>DoubleBuffering ist bereits schon geschehen.<br />
Mein Bild läuft supe flimmerfrei, aber die CPU-Auslastung liegt bei 100%<br />
daraus folgt, das es ab und zu stockt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/734239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734239</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Mon, 28 Feb 2005 12:55:29 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 14:46:18 GMT]]></title><description><![CDATA[<p>Kann man sich dein Programm inklusive Source-Code mal anschauen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/734342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734342</guid><dc:creator><![CDATA[*guck*]]></dc:creator><pubDate>Mon, 28 Feb 2005 14:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 15:25:13 GMT]]></title><description><![CDATA[<p>BasicMan01 schrieb:</p>
<blockquote>
<p>DoubleBuffering ist bereits schon geschehen.<br />
Mein Bild läuft supe flimmerfrei, aber die CPU-Auslastung liegt bei 100%<br />
daraus folgt, das es ab und zu stockt</p>
</blockquote>
<p>genau das problem hab ich auch<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?p=730421" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?p=730421</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/734388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734388</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Mon, 28 Feb 2005 15:25:13 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Mon, 28 Feb 2005 15:29:09 GMT]]></title><description><![CDATA[<p>Also 100 % CPU Auslastung hat ja nichts zu sagen. Kommt doch drauf an wie ihr eure Nachrichtenschleife programmiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/734392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/734392</guid><dc:creator><![CDATA[100%]]></dc:creator><pubDate>Mon, 28 Feb 2005 15:29:09 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Tue, 01 Mar 2005 16:44:17 GMT]]></title><description><![CDATA[<p>100% schrieb:</p>
<blockquote>
<p>Also 100 % CPU Auslastung hat ja nichts zu sagen. Kommt doch drauf an wie ihr eure Nachrichtenschleife programmiert.</p>
</blockquote>
<p>die habe ich so programmiert, dass sie auch, bei geringer auslastung, wenig cpu-auslastung zeiht. (mit sleep() und sowas)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735258</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Tue, 01 Mar 2005 16:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Tue, 01 Mar 2005 17:24:13 GMT]]></title><description><![CDATA[<p>joomoo schrieb:</p>
<blockquote>
<p>100% schrieb:</p>
<blockquote>
<p>Also 100 % CPU Auslastung hat ja nichts zu sagen. Kommt doch drauf an wie ihr eure Nachrichtenschleife programmiert.</p>
</blockquote>
<p>die habe ich so programmiert, dass sie auch, bei geringer auslastung, wenig cpu-auslastung zeiht. (mit sleep() und sowas)</p>
</blockquote>
<p>das hört sich ja schonmal scheisse an</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735293</guid><dc:creator><![CDATA[100%]]></dc:creator><pubDate>Tue, 01 Mar 2005 17:24:13 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Tue, 01 Mar 2005 21:19:36 GMT]]></title><description><![CDATA[<p>Mich wundert, das WinXP die GDI-Funktionen nicht rüber nach DirectDraw wrapped.<br />
Außerdem scheint mir WS_EX_COMPOSITED (quasi WinXP eigenes Double-Buffering) recht lahmarschig zu sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/735526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735526</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Tue, 01 Mar 2005 21:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Tue, 01 Mar 2005 21:33:14 GMT]]></title><description><![CDATA[<p>vielleicht kannste damit was erreichen:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_8ed0.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_8ed0.asp</a><br />
und:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_0enc.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_0enc.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/735542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735542</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 01 Mar 2005 21:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Tue, 01 Mar 2005 22:28:40 GMT]]></title><description><![CDATA[<p>Die beiden betroffenen sollten ihren Code zeigen. Vielleicht machen sie ja irgendwo große Fehler und es liegt überhaupt nicht an der Geschwindigkeit von GDI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735584</guid><dc:creator><![CDATA[.........]]></dc:creator><pubDate>Tue, 01 Mar 2005 22:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 07:20:11 GMT]]></title><description><![CDATA[<p>*G* Mir schon klar, dass hier einige den Code gerne sehen würden, aber erstens sind 1000 Zeilen plus x - Header unangebracht, hier zu drucken und zweitens stellt nicht jeder gerne den Code von größeren Projekten gerne zur Verfügung. Aber wen es hilft, hier einige kleine Daten.<br />
Timer auf 10 Millisekunden eingestellt --&gt; also etwa 99 -100 Bilder pro Sekunde<br />
Rechner 2,4 Ghz 99 Bilder Optimaler Bildaufbau bei 0-1% CPU-Auslastung<br />
Rechner 1,6 GhZ 55 Bilder ruckelt bei 100% CPU-Auslastung<br />
Rechner 0,8 Ghz 24 Bilder &quot;&quot;</p>
<p>Problem liegt definitiv an meinem Zeichnen, denn die Schleife dauert etwas 133 millisekunden. Hab das mit dem PerformansCounter gemessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735654</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Wed, 02 Mar 2005 07:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 08:59:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5798">@BasicMan01</a>,<br />
machst du wirklich nur Zeichenoperationen (BitBlt usw) in deiner Schleife? Wenn du jedesmal z.B. GetDC, GetSysColor usw. aufrufst, könnte das deinen Rechner in die Knie zwingen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735706</guid><dc:creator><![CDATA[Herrmann]]></dc:creator><pubDate>Wed, 02 Mar 2005 08:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 11:23:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Timer auf 10 Millisekunden eingestellt
</code></pre>
<p>Timer? Welchen Timer und warum einen Timer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735837</guid><dc:creator><![CDATA[ROFL.]]></dc:creator><pubDate>Wed, 02 Mar 2005 11:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 13:51:22 GMT]]></title><description><![CDATA[<p>@ROFL., ich nehme mal an: SetTimer. Warum sollte man auch keinen Timer verwenden? Wenn du ohne Timer arbeitest, hast du letztendlich das gleiche Problem wie alte DOS-Spiele die du auf modernen Rechnern ausführen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/735969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/735969</guid><dc:creator><![CDATA[Herrmann]]></dc:creator><pubDate>Wed, 02 Mar 2005 13:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 14:23:26 GMT]]></title><description><![CDATA[<p>Also wenn man schon Timer benutzt dann bitte Multimedia Timer oder sowas. Die Timer die man mit SetTimer erzeugt sind nicht für Spiele geeignet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/736000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/736000</guid><dc:creator><![CDATA[ROFL.]]></dc:creator><pubDate>Wed, 02 Mar 2005 14:23:26 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 14:24:15 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn du ohne Timer arbeitest, hast du letztendlich das gleiche Problem wie alte DOS-Spiele die du auf modernen Rechnern ausführen willst.</p>
</blockquote>
<p>Das löst man anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/736002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/736002</guid><dc:creator><![CDATA[ROFL.]]></dc:creator><pubDate>Wed, 02 Mar 2005 14:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 17:29:07 GMT]]></title><description><![CDATA[<p>@ROFL., wie denn? Kenne mich in dem Gebiet nicht besonder aus, daher frage ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/736203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/736203</guid><dc:creator><![CDATA[Herrmann]]></dc:creator><pubDate>Wed, 02 Mar 2005 17:29:07 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 02 Mar 2005 19:45:22 GMT]]></title><description><![CDATA[<p>Das ist das Fachgebiet der Spieleprogrammierer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39430-and-start-is-0.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39430-and-start-is-0.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/736364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/736364</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 02 Mar 2005 19:45:22 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Fri, 04 Mar 2005 09:07:40 GMT]]></title><description><![CDATA[<p>OK, ich habe mir mal die Seite reingezogen.<br />
An sich ist das alles ja super.<br />
Eine Frage habe ich aber dazu. Wo muss ich das in meinem Programm hinzufügen, wenn das WM_TIMER Ereignis dann nicht mehr existiert.<br />
Es muss ja eine Schleife sein, die sich ständig wiederholt. Da fällt mir im Moment nur die hier ein:</p>
<pre><code class="language-cpp">while( GetMessage(&amp;msg, NULL, 0, 0) ) 
{
     TranslateMessage( &amp;msg );
     DispatchMessage( &amp;msg );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/737260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/737260</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Fri, 04 Mar 2005 09:07:40 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Fri, 04 Mar 2005 09:35:44 GMT]]></title><description><![CDATA[<p>ich würd' sowas mit multithreading machen. z.b. ein thread mit höchster priorität der freiwillig rechenzeit abgibt (mit 'Sleep()') könnte den bildaufbau übernehmen. die freie rechenzeit käme dem rest des programms zu gute.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/737286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/737286</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 04 Mar 2005 09:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Fri, 04 Mar 2005 10:27:40 GMT]]></title><description><![CDATA[<p>So ist eine Spielenachrichtenschleife IMHO am elegantesten gelöst:</p>
<pre><code class="language-cpp">while(1){
		if(PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE)){ // müssen irgendwo Nachrichten verarbeitet werden?
			if(msg.message==WM_QUIT)break;
			TranslateMessage(&amp;msg);
			DispatchMessage(&amp;msg);
		}
		else{
			// keine Nachrichten in den Warteschlangen
			// hier kannst du jetzt machen was du willst, ohne
			// anderen Prozessen die Prozessor-Resourcen zu klauen
			// z.B. den nächsten Frame berechnen und anzeigen

			// ...
			// dein Code hier
			//
		}
	}
</code></pre>
<p>Falls du dort BitBlt aufrufen solltest, empfehle ich dir danach auch GdiFlash aufzurufen, da BitBlt sonst evtl. gepuffert wird und das Programm so ins stocken kommen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/737325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/737325</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Fri, 04 Mar 2005 10:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Fri, 04 Mar 2005 12:05:44 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">// hier kannst du jetzt machen was du willst, ohne
// anderen Prozessen die Prozessor-Resourcen zu klauen
</code></pre>
</blockquote>
<p>Wie meinst du diesen Kommentar? So kriegst du eine Prozessorauslastung von 100%. ABER das ist auch okay so. So arbeiten fast alle Spiele. Auf jeden Fall die Fullscreen stattfinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/737391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/737391</guid><dc:creator><![CDATA[hmmmmmmmm]]></dc:creator><pubDate>Fri, 04 Mar 2005 12:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Fri, 04 Mar 2005 12:32:01 GMT]]></title><description><![CDATA[<p>Ja, du kriegst die ganze Prozessorzeit, die nicht gebraucht wird, wenn alle anderen Programme zusammen 10% brauchen, kriegst du die restlichen 90, wenn irgendein Programm plötzlich mehr braucht, bekommst du eben ein bischen weniger, in der Summe ergibt es immer 100%. Auf die Art können noch andere Programme im Hintergrund laufen, dessen Ausführung von deinem Programm nicht beeinträchtigt wird (wie es i.A. gewollt ist) und dein Programm (Spiel) läuft mir maximaler Performance (Framerate).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/737417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/737417</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Fri, 04 Mar 2005 12:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to Geschwindigkeitsoptimierung GDI on Wed, 09 Mar 2005 10:52:29 GMT]]></title><description><![CDATA[<p>Merci für die Hilfe</p>
<p>Musste jedoch die Schleife ein bisschen nach meinen Bedürfnissen abändern, da ich sonst nicht schnell genug die Tastaturnachrichten abarbeiten konnte.</p>
<p>Das folgende hat sehr gut geholfen</p>
<pre><code class="language-cpp">while(msg.message!=WM_QUIT)
{
    while(PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE))
    {
       TranslateMessage(&amp;msg);
       DispatchMessage(&amp;msg);
    }
    // my nice code
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/741203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/741203</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Wed, 09 Mar 2005 10:52:29 GMT</pubDate></item></channel></rss>