<?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[FillRect() und BitBlt() - flackern?]]></title><description><![CDATA[<p>Moin,</p>
<p>gibt es eine bessere Methode als FillRect und BitBlt für DoubleBufferung?</p>
<p>Hintergrund:<br />
1. Ich habe eine DIBSection in der ich via WM_TIMER ein Fraktal zeichne, diese schiebe ich dann in WM_PAINT mit BitBlt() in den DC des Fensters. Soweit das DoubleBuffering.</p>
<p>2. Jetzt muss ich den zuvor gezeichnetet Bereich löschen (schwarz machen), dies mach ich mit FillRect(). Funktioniert alles klasse, solange das Fraktal nicht mehr als 40-50% des Bildschirms einnimmt - ab dann fängst an zu flackern!</p>
<p>Ich vermute, dass die BitBlt() Routine ab einer bestimmten Größe nicht schnell genug ist. Immerhin werden auf meinem Laptop bis zu 3,6MB (1200 HR x 800 VR x 4 Bytes Pix.) pro Durchgang geblittet, zuvor noch ein FilleRect() in den Buffer! Wer weiß, vielleicht daher?</p>
<p>Folgendes funktioniert bis auf das Flackern ganz gut! Gibt es andere Lösungsvorschläge?</p>
<pre><code class="language-cpp">case WM_TIMER:
	switch (wParam) {
		case IDT_TIMER1:
			// maximale Ausdehnung holen
			xmin = ifs_st-&gt;xmin;
			xmax = ifs_st-&gt;xmax;
			ymin = ifs_st-&gt;ymin;
			ymax = ifs_st-&gt;ymax

			////////////////////////////////////////////
			// Alles was zuvor gezeichnet wurde löschen
			//
			if (xmin &lt;= xmax &amp;&amp; ymin &lt;= ymax) {
				rect.left = xmin;
				rect.top = ymin;
				rect.right = xmax + 1;
				rect.bottom = ymax + 1;
				FillRect(myBackBuffer, &amp;rect, hbrBlack);  //&lt;------- löschen des zuvor gez. Bereichs

				ifs_st-&gt;xmin = ifs_st-&gt;width 	+  1;
				ifs_st-&gt;xmax = ifs_st-&gt;ymax 	= -1;
				ifs_st-&gt;ymin = ifs_st-&gt;height	+  1;
			}
			//////////////////////////////////////////////////////
			// Punkte des aktuellen Frames berechnen und zeichnen
			//
			memset(ifs_st-&gt;board, 0, ifs_st-&gt;widthb * ifs_st-&gt;height * sizeof(*ifs_st-&gt;board));

			if (ifs_st-&gt;recurse) {
				recurse(ifs_st, ifs_st-&gt;width &lt;&lt; 7, ifs_st-&gt;height &lt;&lt; 7, ifs_st-&gt;length);
			} else {
				iterate(ifs_st, (int)(pow((float)ifs_st-&gt;lensnum, ifs_st-&gt;length)));
			}
			if (ifs_st-&gt;npoints) {
				drawpoints(ifs_st);
			}

			// WM_PAINT aufrufen
			InvalidateRect(hWnd, &amp;rect, false);

			for(int i = 0; i &lt; ifs_st-&gt;lensnum; i++){
				mutate(ifs_st, &amp;ifs_st-&gt;lenses[i]);
			}
		return 0;

		(... Schnipp Timer2 und Timer3 ...)

	};

case WM_PAINT:
	myDevCon = BeginPaint(hWnd, &amp;ps);
	BitBlt(	myDevCon,
			xmin, ymin,
			xmax - xmin + 1, ymax - ymin + 1,
			myBackBuffer,
			xmin, ymin,
			SRCCOPY);
	EndPaint(hWnd, &amp;ps);
	return 0;

case WM_ERASEBKGND:
	return true;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/162545/fillrect-und-bitblt-flackern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 18:54:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162545.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Oct 2006 16:02:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Thu, 19 Oct 2006 16:02:56 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>gibt es eine bessere Methode als FillRect und BitBlt für DoubleBufferung?</p>
<p>Hintergrund:<br />
1. Ich habe eine DIBSection in der ich via WM_TIMER ein Fraktal zeichne, diese schiebe ich dann in WM_PAINT mit BitBlt() in den DC des Fensters. Soweit das DoubleBuffering.</p>
<p>2. Jetzt muss ich den zuvor gezeichnetet Bereich löschen (schwarz machen), dies mach ich mit FillRect(). Funktioniert alles klasse, solange das Fraktal nicht mehr als 40-50% des Bildschirms einnimmt - ab dann fängst an zu flackern!</p>
<p>Ich vermute, dass die BitBlt() Routine ab einer bestimmten Größe nicht schnell genug ist. Immerhin werden auf meinem Laptop bis zu 3,6MB (1200 HR x 800 VR x 4 Bytes Pix.) pro Durchgang geblittet, zuvor noch ein FilleRect() in den Buffer! Wer weiß, vielleicht daher?</p>
<p>Folgendes funktioniert bis auf das Flackern ganz gut! Gibt es andere Lösungsvorschläge?</p>
<pre><code class="language-cpp">case WM_TIMER:
	switch (wParam) {
		case IDT_TIMER1:
			// maximale Ausdehnung holen
			xmin = ifs_st-&gt;xmin;
			xmax = ifs_st-&gt;xmax;
			ymin = ifs_st-&gt;ymin;
			ymax = ifs_st-&gt;ymax

			////////////////////////////////////////////
			// Alles was zuvor gezeichnet wurde löschen
			//
			if (xmin &lt;= xmax &amp;&amp; ymin &lt;= ymax) {
				rect.left = xmin;
				rect.top = ymin;
				rect.right = xmax + 1;
				rect.bottom = ymax + 1;
				FillRect(myBackBuffer, &amp;rect, hbrBlack);  //&lt;------- löschen des zuvor gez. Bereichs

				ifs_st-&gt;xmin = ifs_st-&gt;width 	+  1;
				ifs_st-&gt;xmax = ifs_st-&gt;ymax 	= -1;
				ifs_st-&gt;ymin = ifs_st-&gt;height	+  1;
			}
			//////////////////////////////////////////////////////
			// Punkte des aktuellen Frames berechnen und zeichnen
			//
			memset(ifs_st-&gt;board, 0, ifs_st-&gt;widthb * ifs_st-&gt;height * sizeof(*ifs_st-&gt;board));

			if (ifs_st-&gt;recurse) {
				recurse(ifs_st, ifs_st-&gt;width &lt;&lt; 7, ifs_st-&gt;height &lt;&lt; 7, ifs_st-&gt;length);
			} else {
				iterate(ifs_st, (int)(pow((float)ifs_st-&gt;lensnum, ifs_st-&gt;length)));
			}
			if (ifs_st-&gt;npoints) {
				drawpoints(ifs_st);
			}

			// WM_PAINT aufrufen
			InvalidateRect(hWnd, &amp;rect, false);

			for(int i = 0; i &lt; ifs_st-&gt;lensnum; i++){
				mutate(ifs_st, &amp;ifs_st-&gt;lenses[i]);
			}
		return 0;

		(... Schnipp Timer2 und Timer3 ...)

	};

case WM_PAINT:
	myDevCon = BeginPaint(hWnd, &amp;ps);
	BitBlt(	myDevCon,
			xmin, ymin,
			xmax - xmin + 1, ymax - ymin + 1,
			myBackBuffer,
			xmin, ymin,
			SRCCOPY);
	EndPaint(hWnd, &amp;ps);
	return 0;

case WM_ERASEBKGND:
	return true;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1157785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157785</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Thu, 19 Oct 2006 16:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Thu, 19 Oct 2006 16:11:19 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> DirectX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157794</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 19 Oct 2006 16:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Thu, 19 Oct 2006 19:51:05 GMT]]></title><description><![CDATA[<p>OpenGL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157938</guid><dc:creator><![CDATA[Rhombicosidodecahedron]]></dc:creator><pubDate>Thu, 19 Oct 2006 19:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Thu, 19 Oct 2006 20:31:00 GMT]]></title><description><![CDATA[<p>Oder das <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=";)"
      alt="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157956</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 19 Oct 2006 20:31:00 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Fri, 20 Oct 2006 22:09:29 GMT]]></title><description><![CDATA[<p>BOOL BitBlt(<br />
HDC hdcDest, // handle to destination DC<br />
int nXDest, // x-coord of destination upper-left corner<br />
int nYDest, // y-coord of destination upper-left corner<br />
int nWidth, // width of destination rectangle<br />
int nHeight, // height of destination rectangle<br />
HDC hdcSrc, // handle to source DC<br />
int nXSrc, // x-coordinate of source upper-left corner<br />
int nYSrc, // y-coordinate of source upper-left corner<br />
DWORD dwRop // raster operation code<br />
);</p>
<p>Probiere mal folgendes:<br />
Setze nXDest, nXDest, nXSrc, nYSrc auf 0. Mach deinen BackBuffer genauso gross wie den ScreenDC.<br />
Hatte mal das selbe Problem. BitBlt wurde langsam, als ich mit offsets rumhantiert habe.</p>
<p>MFG<br />
NickHappy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158483</guid><dc:creator><![CDATA[NickHappy]]></dc:creator><pubDate>Fri, 20 Oct 2006 22:09:29 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sat, 21 Oct 2006 09:06:52 GMT]]></title><description><![CDATA[<p>Rhombicosidodecahedron schrieb:</p>
<blockquote>
<p>OpenGL</p>
</blockquote>
<p>Das werde ich (irgendwann) mal versuchen! Dummerweise zeichne ich grade viel mit einzelnen Pixeln (Fraktale), daher schien mir OpenGL eigentlich kein guter Ansatz zu sein (ein Lehrbuch dazu habe ich aber schon).</p>
<p>Hier, hab deine Brüder und deine Schwestern gefunden gefunden:<br />
<a href="http://thesaurus.maths.org/mmkb/gallery.html?folder=live3D" rel="nofollow">http://thesaurus.maths.org/mmkb/gallery.html?folder=live3D</a></p>
<p><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=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158550</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sat, 21 Oct 2006 09:06:52 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sat, 21 Oct 2006 09:16:39 GMT]]></title><description><![CDATA[<p>NickHappy schrieb:</p>
<blockquote>
<p>Probiere mal folgendes:<br />
Setze nXDest, nXDest, nXSrc, nYSrc auf 0. Mach deinen BackBuffer genauso gross wie den ScreenDC.<br />
Hatte mal das selbe Problem. BitBlt wurde langsam, als ich mit offsets rumhantiert habe.</p>
</blockquote>
<p>Das hat leider nichts gebracht, flackert wie ehedem - und dann auch, wenn das Fraktal klein ist (nur nicht so auffällig unser Auge scheint da verwirrt 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=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158556</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sat, 21 Oct 2006 09:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sat, 21 Oct 2006 09:32:17 GMT]]></title><description><![CDATA[<p>Hast du das mal konkret überprüft ob es wirklich die BitBlt()-Funktion ist die da bremst ?<br />
Wenn Du ne DIB benutzt, könntest du dir evtl. noch DrawDib() angucken...<br />
Hinter InvalidateRect() würde ich sicherheitshalber noch ein UpdateWindow() packen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158565</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 21 Oct 2006 09:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sat, 21 Oct 2006 22:11:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Hast du das mal konkret überprüft ob es wirklich die BitBlt()-Funktion ist die da bremst</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Ich hab bevor meine Direct3D-Zeiten begonnen haben, angefangen ein RPG zu programmieren; und zwar komplett mit BitBlt + Doublebuffering...<br />
Die Geschwindigkeit von BitBlt() war dabei schon ein Problem ...weil es echt &quot;radikal&quot; geflacktert hat...<br />
Kann echt nur DirectX bzw. OpenGL...oder eine andere GrafikLib empfehlen...<br />
Aber....:<br />
Ich hatte damals 1024x768 als Bildschirmauflösung und hab das Flackern &quot;bekämpft&quot; in dem ich den Bildschirm in Bereiche unterteilt und einzeln abgearbeitet habe...<br />
Dadurch wurde das Programm/BitBlt schneller...Was zwar irgendwie ein Widerspruch ist aber trotzdem funktioniert hat...</p>
<p>MfG Kuldren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158799</guid><dc:creator><![CDATA[Kuldren]]></dc:creator><pubDate>Sat, 21 Oct 2006 22:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sat, 21 Oct 2006 22:40:18 GMT]]></title><description><![CDATA[<p>Also, da mir DirectDraw schon immer zu hoch war, hab ich in den letzten Jahren meine Spiele und andere Grafikprogramme mit SetDIBitsToDevice sichtbar gemacht.<br />
Egal wie viele fps du einstellst und wie langsam der Computer ist, da flackert nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158810</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Sat, 21 Oct 2006 22:40:18 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 00:21:43 GMT]]></title><description><![CDATA[<p>Ich meine die WM_TIMER UND WM_PAINT Nachrichten sind beides Messages die nicht an das Ende der Message-Queue gepackt werden sondern bevorzugt verarbeitet werden.<br />
Nun könnte es sein, je nachdem wieviele Timer und mit welchem Timeout die Timer laufen, dass die WM_TIMER-Messages die WM_PAINT-Messages quasi verzögern. Ein UpdateWindow() hinter InvalidateRect() würde zumindest sicherstellen, dass WM_PAINT direkt verarbeitet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158851</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sun, 22 Oct 2006 00:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 00:28:16 GMT]]></title><description><![CDATA[<p>Nanyuki schrieb:</p>
<blockquote>
<p>Also, da mir DirectDraw schon immer zu hoch war, hab ich in den letzten Jahren meine Spiele und andere Grafikprogramme mit SetDIBitsToDevice sichtbar gemacht.</p>
</blockquote>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_9c6r.asp" rel="nofollow">msdn meint:</a></p>
<blockquote>
<p>To repeatedly redraw a bitmap in a window, however, the application should use the BitBlt function. For example, a multimedia application that combines animated graphics with sound would benefit from calling the BitBlt function because it executes faster than SetDIBitsToDevice.</p>
</blockquote>
<p>Naja, ich hab bisher eigentlich auch SetDIBitsToDevice() für schneller gehalten <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 />
Müsste man mal benchen <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/1158853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158853</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sun, 22 Oct 2006 00:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 11:42:08 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>Ich meine die WM_TIMER UND WM_PAINT Nachrichten sind beides Messages die nicht an das Ende der Message-Queue gepackt werden sondern bevorzugt verarbeitet werden.<br />
Nun könnte es sein, je nachdem wieviele Timer und mit welchem Timeout die Timer laufen, dass die WM_TIMER-Messages die WM_PAINT-Messages quasi verzögern. Ein UpdateWindow() hinter InvalidateRect() würde zumindest sicherstellen, dass WM_PAINT direkt verarbeitet wird.</p>
</blockquote>
<p>Mmh, ja in diese Richtung hatte ich auch schon gedacht, aber ich stoppe den betreffenden Timer, führe meine Berechnungen aus (die in eine DIBSection Bildpunkte schreiben) und und rufe dann mit UpdateWindow() WM_PAINT auf wo ich dann als einzige Zeichenoperation eien BitBlt mache.</p>
<pre><code class="language-cpp">case WM_TIMER:

	switch (wParam) { 

		case IDT_TIMER1:

			KillTimer(hWnd, IDT_TIMER1);

        			// maximale Ausdehnung holen
			(.. schnipp ..)

			// Alles was zuvor gezeichnet wurde löschen
			(.. schnipp ..)

			// Punkte des aktuellen Frames berechnen und zeichnen
			(.. schnipp ..)

			//WM_PAINT aufrufen
			InvalidateRect(hWnd, &amp;rect, false);
			UpdateWindow(hWnd);

			(.. schnipp ..)

			SetTimer(hWnd, IDT_TIMER1, delay_IDT1, NULL);

		return 0;

(.. ganz viel Schnipp ..)

case WM_PAINT:
	GdiFlush();
	myDevCon = BeginPaint(hWnd, &amp;ps);
	BitBlt(	myDevCon,
		xmin, ymin,
		xmax+1, ymax+1,
		myBackBuffer,
		xmin,ymin,
		SRCCOPY);
	EndPaint(hWnd, &amp;ps);
return 0;
</code></pre>
<p>Wenn ich das richtig verstehe, läuft der Timer doch erst wieder an, nach dem UpdateWindow() durchgeführt ist, das Programm also aus WM_PAINT zurückkehrt? Oder, wie?<br />
Ich verstehe wirklich nicht warum das flackert? Herrjeh!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159004</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sun, 22 Oct 2006 11:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 11:44:15 GMT]]></title><description><![CDATA[<p>Wie lange braucht BitBlt() denn bei dir ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159006</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sun, 22 Oct 2006 11:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 18:22:07 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>Wie lange braucht BitBlt() denn bei dir ?</p>
</blockquote>
<p>Keine Ahnung! Ich habe einmal vorher GetTickCount() und einmal hinterher aufgerufen, die Differenz war IMMER 0, daher gehe ich davon aus, dass BitBlt &lt; 1.0 ms arbeitet. Das dürfte keinesfall flackern!</p>
<p>Mannomann, woher kommt das dann? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wer möchte kann ja mal selbst gucken: <a href="http://ticore.de/share/ifs.zip" rel="nofollow">http://ticore.de/share/ifs.zip</a></p>
<p>Es fängt immer an zu flackern, wenn das Fraktal größer als etwa 60-70% des Bildschirms einnimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159137</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 18:24:57 GMT]]></title><description><![CDATA[<p>Dein Bildschirmschoner stürzt ab bevor man etwas sieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159142</guid><dc:creator><![CDATA[tja]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 18:45:08 GMT]]></title><description><![CDATA[<p>Mit welcher Meldung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159154</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:45:08 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Sun, 22 Oct 2006 18:57:09 GMT]]></title><description><![CDATA[<p>Mit Problembericht senden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159164</guid><dc:creator><![CDATA[tja]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Tue, 24 Oct 2006 07:50:08 GMT]]></title><description><![CDATA[<p>Bei mir läufts flüssig <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/1160054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160054</guid><dc:creator><![CDATA[geeky (not@home)]]></dc:creator><pubDate>Tue, 24 Oct 2006 07:50:08 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Tue, 24 Oct 2006 21:01:42 GMT]]></title><description><![CDATA[<p>Hast Du in der WNDCLASS-Struktur bei Erzeugung der Fensterklasse einen &quot;background brush&quot; angegeben? Falls ja: in diesem Fall füllt das System vor jedem WM_PAINT den ungültigen Fensterbereich mit der Hintergrundfarbe, was natürlich &quot;Flackern&quot; bewirkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160651</guid><dc:creator><![CDATA[helper]]></dc:creator><pubDate>Tue, 24 Oct 2006 21:01:42 GMT</pubDate></item><item><title><![CDATA[Reply to FillRect() und BitBlt() - flackern? on Wed, 25 Oct 2006 16:01:32 GMT]]></title><description><![CDATA[<p>Einige kleine Änderungen:</p>
<ul>
<li>Nicht immer neu</li>
</ul>
<pre><code>SetTimer und
Killtimer
</code></pre>
<p>verwenden</p>
<ul>
<li>Vielleicht feste Fensterbreite einbauen</li>
<li>Etwas noch an der WindowPRoc ändern</li>
</ul>
<pre><code class="language-cpp">case WM_TIMER:
/* Irgendetwas */
//break /* Kein Break sonst flimmer */
// Damit man keine Nachricht senden muss
case WM_PAINT:
/* Irgendetwas */
break;
case WM_ERASEBKGND: return false; // Wichtig ! - Sonst flimmer!
</code></pre>
<ul>
<li>Fertige &quot;dingse&quot;-Anzeiger gibt's doch wie Sand am Bodensee</li>
</ul>
<p>So, ach ja:</p>
<p>timmix schrieb:</p>
<blockquote>
<p>Rhombicosidodecahedron schrieb:</p>
<blockquote>
<p>OpenGL</p>
</blockquote>
<p>Das werde ich (irgendwann) mal versuchen! Dummerweise zeichne ich grade viel mit einzelnen Pixeln (Fraktale), daher schien mir OpenGL eigentlich kein guter Ansatz zu sein (ein Lehrbuch dazu habe ich aber schon).</p>
<p>Hier, hab deine Brüder und deine Schwestern gefunden gefunden:<br />
<a href="http://thesaurus.maths.org/mmkb/gallery.html?folder=live3D" rel="nofollow">http://thesaurus.maths.org/mmkb/gallery.html?folder=live3D</a></p>
<p><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=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ohhhh, wie schön meine ganze Familie ... so groß ... ich könnte heulen ... *heul* * heul* ... ah - da der alte Tedraeder - immer noch da ... und ...</p>
<p>Mit freundlichen Grüßen und nicht ganz (garnicht) ehrich gewesend<br />
Rhombicosidodecahedron</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161129</guid><dc:creator><![CDATA[Rhombicosidodecahedron]]></dc:creator><pubDate>Wed, 25 Oct 2006 16:01:32 GMT</pubDate></item></channel></rss>