<?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[Eine Array von nicht zusammenhängenden Pixeln zeichnen?]]></title><description><![CDATA[<p>Moin,</p>
<p>zur Zeit mach ich das so:</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
	for (int i = 0; i &lt; st-&gt;npoints; i++) {

		// Punktebuffer in den Grafikbuffer
		SetPixel(	myBackBuffer,		// HDC via SelectObject ...

				st-&gt;pointbuf[i].x,	// int
				st-&gt;pointbuf[i].y,	// int
				st-&gt;colorbuf[i]		// COLORREF

			);
	}
	// Pointbuffer zurücksetzen
	st-&gt;npoints = 0;
}
</code></pre>
<p>Die Anzahl der Colorrefs entspricht immer der Anzahl von Punkten.<br />
Herrjeh, geht das nicht schneller?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161995/eine-array-von-nicht-zusammenhängenden-pixeln-zeichnen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:20:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161995.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Oct 2006 08:42:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 08:42:21 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>zur Zeit mach ich das so:</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
	for (int i = 0; i &lt; st-&gt;npoints; i++) {

		// Punktebuffer in den Grafikbuffer
		SetPixel(	myBackBuffer,		// HDC via SelectObject ...

				st-&gt;pointbuf[i].x,	// int
				st-&gt;pointbuf[i].y,	// int
				st-&gt;colorbuf[i]		// COLORREF

			);
	}
	// Pointbuffer zurücksetzen
	st-&gt;npoints = 0;
}
</code></pre>
<p>Die Anzahl der Colorrefs entspricht immer der Anzahl von Punkten.<br />
Herrjeh, geht das nicht schneller?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154069</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Fri, 13 Oct 2006 08:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 13:19:35 GMT]]></title><description><![CDATA[<p>timmix schrieb:</p>
<blockquote>
<p>Herrjeh, geht das nicht schneller?</p>
</blockquote>
<p>Nein, solange Du uns nicht sagst, was eigentlich Dein Problem ist... :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154099</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Fri, 13 Oct 2006 13:19:35 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 14:50:25 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Nein, solange Du uns nicht sagst, was eigentlich Dein Problem ist... :p</p>
</blockquote>
<p>Ok. ich machs mal deutlicher: <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>
<p>Also ich habe mir einen (Bildschirm-) Buffer mit CreatCompatibleDC() erzeugt und dort auch ein kompatibles Bitmap in der richtigen Größe eingefügt.</p>
<pre><code class="language-cpp">GetWindowRect(hWnd, &amp;myScreenSize);
			myDevCon = GetDC(hWnd);
			myBitmap = CreateCompatibleBitmap(myDevCon, myScreenSize.right, myScreenSize.bottom);
			myBackBuffer = CreateCompatibleDC(myDevCon);
			ReleaseDC(hWnd, myDevCon);
			SelectObject(myBackBuffer, myBitmap);
</code></pre>
<p>In oben genannter Schleife setze ich, sagen wir mal 30.000 Pixel mit SetPixel in eben diesen Buffer (hier: myBackbuffer). Ist der Punktbuffer (Zeiger auf ein POINT[] und COLORREF[]) komplett in myBuffer gelandet mache ich ein BitBlt().</p>
<p>Klappt klasse, allerdings nicht sehr performant. Ich hatte gehofft einer von euch Freaks könnte mir auf Anhieb sagen: &quot;mmh, mach das doch so und so!&quot;</p>
<p>Meine Vermutung ist, dass der Flaschenhals sich in det SetPixel() gemütlich gemacht hat.</p>
<p>Unter X11 gibt es XDrawPixel(), das genau das gleiche macht wie SetPixel(); es gibt aber auch eine Funktion XDrawPixels() [man beachte den Plural] die neben anderen Sachen einen Pointer auf einen Punktebuffer übernimmt und diesen wahnsinnig schnell verarbeitet - das ist das was ich brauche ... <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>
<p>--<br />
Beste Grüße<br />
Timmix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154185</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Fri, 13 Oct 2006 14:50:25 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 20:04:51 GMT]]></title><description><![CDATA[<p>Erstmal vorweg: Die GDI ist langsam, egal welche Funktion du benutzt.</p>
<p>Was soll denn das Resultat sein ...? Ein Farbverlauf ? Das hast du nämlich nicht geschrieben! Was soll denn das Resultat später präsentieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154344</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 13 Oct 2006 20:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 21:59:13 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Erstmal vorweg: Die GDI ist langsam, egal welche Funktion du benutzt.</p>
</blockquote>
<p>Toll, hilft ja nun wirklich nicht weiter!</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Was soll denn das Resultat sein ...? Ein Farbverlauf ? Das hast du nämlich nicht geschrieben! Was soll denn das Resultat später präsentieren ?</p>
</blockquote>
<p>Mmh, ich dachte ich hätte geschrieben, ich würde die Punkte aus einen Punktbuffer von sagen wir mal 30.000 Punkten mal hier hin mal dorthin gesetzt haben. Das wird dann schlussendlich ein animiertes IFS-Fraktal (schnell und schön!)</p>
<p>Try it: <a href="http://ticore.de/share/ifs.zip" rel="nofollow">http://ticore.de/share/ifs.zip</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154400</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Fri, 13 Oct 2006 21:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 22:16:45 GMT]]></title><description><![CDATA[<p>timmix schrieb:</p>
<blockquote>
<p>Toll, hilft ja nun wirklich nicht weiter!</p>
</blockquote>
<p>Das aber schade, ...mir hätte es nämlich weitergeholfen.</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Was soll denn das Resultat sein ...? Ein Farbverlauf ? Das hast du nämlich nicht geschrieben! Was soll denn das Resultat später präsentieren ?</p>
</blockquote>
<p>[...]ein animiertes IFS-Fraktal (schnell und schön!)<br />
[/quote]<br />
Ahh, na geht doch!...Gut und wo ist nun dein Problem ? Es läuft doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154412</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 13 Oct 2006 22:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 03:11:54 GMT]]></title><description><![CDATA[<p>[überflüssig]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154411</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 14 Oct 2006 03:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Fri, 13 Oct 2006 22:17:06 GMT]]></title><description><![CDATA[<p>Nimm eine Device Independend Bitmap (DIB) und setze direkt Pixel via Byte-Array (da gibts glaube ich CreateDIBSection() oder sowas in der WinAPI...)<br />
Das dürfte deutlich schneller sein.<br />
Das fertige Resultat dann z.B. mit DrawDib() anzeigen lassen.</p>
<p>Bei <a href="http://codeproject.com" rel="nofollow">codeproject.com</a> oder hier im Board lässt sich dazu bestimmt etwas finden.<br />
Die Pixel alle mit SetPixel() zu setzen ist auf jedenfall sau lahmarschig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154413</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Fri, 13 Oct 2006 22:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 01:28:25 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ahh, na geht doch!...Gut und wo ist nun dein Problem ? Es läuft doch.</p>
</blockquote>
<p>Na ja, ich kann mein Mittagessen wohl auch mit Hilfe eines Baggers essen; das wäre sehr effektiv! Mir geht es aber nicht um Effektivität sondern um Effizienz. Bedeutet: Weniger Rechenpower für ebensoviel Leistung. Sprich: Unter Linux und X11 läuft das Programm mit ca. 3-4% Rechenleistung meines 1,6 GHz P6. Unter Windows läuft das Ganze mit ca. 25 - 30 Prozent. Ergo, gehe ich davon aus, dass ich das schneller hinbekommmen kann, weil ich falsch programmiert habe. Deswegen meine Frage an das geschätzte Publikum dieses Forums. <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>
<p>Es ist einfach total uncool, wenn ich vor meinem Rechner sitze und mein Rechner glaubt er müsse jetzt mal den Lüfter anschmeißen, weil er sonst sterben würde. Ich weiß das dass anders geht, und ich werde das auch noch hinbiegen ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Die Sache mit den DIB-Dingsda werde ich mal angehen, wenn jemand noch Tipps hat für mich, immer her damit.</p>
<p>Im übrigen ist das Ganze mein erstes C-Program. Schonmal nicht ganz unbeachtlich, oder? <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/1154425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154425</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sat, 14 Oct 2006 01:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 01:32:34 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>Nimm eine Device Independend Bitmap (DIB) und setze direkt Pixel via Byte-Array (da gibts glaube ich CreateDIBSection() oder sowas in der WinAPI...)<br />
Das dürfte deutlich schneller sein.<br />
Das fertige Resultat dann z.B. mit DrawDib() anzeigen lassen.</p>
</blockquote>
<p>Also, dass hört sich doch mal nach einem heißen Tipp an! Schade nur dass mein Englisch nicht das Beste ist. Dennoch, das SDK sagt DI-Bitmaps wären meine Freunde. Herrlich! Schon jemand viel Erfahrung damit gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154426</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sat, 14 Oct 2006 01:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 03:16:04 GMT]]></title><description><![CDATA[<p>timmix schrieb:</p>
<blockquote>
<p>[...]Effizienz. Bedeutet: [...]</p>
</blockquote>
<p>LOL ich weiß was Effizienz bedeutet.</p>
<p>timmix schrieb:</p>
<blockquote>
<p>Schade nur dass mein Englisch nicht das Beste ist</p>
</blockquote>
<p>Ist bei der Programmierung aber das A und O.</p>
<p>Naja du kannst ja auch DX nutzen, aber da braucht man auch English <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1154433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154433</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 14 Oct 2006 03:16:04 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 17:12:08 GMT]]></title><description><![CDATA[<p>Generell:<br />
Du nimmst <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_233i.asp" rel="nofollow">CreateDIBSection()</a> und fütterst es so:<br />
hdc - Der DC auf den du später blitten wirst<br />
CONST BITMAPINFO *pbmi - Hier den Pointer einer BITMAPINFO-Struktur übergeben. Mit der BITMAPINFO-Struktur legst du Höhe, Breite, Farbtiefe etc. der Bitmap fest.<br />
UINT iUsage - Wirst du auf DIB_RGB_COLORS setzen wollen.<br />
ppvBits - Pointer auf eine Variable die den Pointer für die Pixeldaten bekommt.<br />
Sprich über die befüllte Variable kannst du hinterher die Pixel direkt im Speicher setzen.<br />
hSection - FileMapping wirste vermutl. nicht brauchen (also NULL)<br />
dwOffset - Wird bei hSection=NULL eh ignoriert.</p>
<p>Wenn der Funktionsaufruf funktioniert hat, kriegste ne HBITMAP zurück, die du auch ganz normal in nen DC selektieren und blitten kannst (BitBlt()...)<br />
Die Pixel kannst du dann über den ppvBits-Pointer selbst setzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154749</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 14 Oct 2006 17:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Sat, 14 Oct 2006 18:10:39 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>Generell:<br />
Du nimmst (...)</p>
</blockquote>
<p>Ok, die Richtung hab ich verstanden! <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>Ich zieh dann jetzt mal los und werde genanntes böhmisches Dorf erobern. Kann 'ne Woche dauern, oder so - ich bin ja lernwillig <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>
<p>Ich melde mich mit Resultaten oder neuen Fragen. Bis dahin!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154779</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Sat, 14 Oct 2006 18:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Mon, 16 Oct 2006 14:47:07 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>( ... schnipp ... )<br />
Wenn der Funktionsaufruf funktioniert hat, kriegste ne HBITMAP zurück, die du auch ganz normal in nen DC selektieren und blitten kannst (BitBlt()...)<br />
Die Pixel kannst du dann über den ppvBits-Pointer selbst setzen.</p>
</blockquote>
<p>Folgendes scheint erstmal zu funktionieren!</p>
<pre><code class="language-cpp">// DISection
	bmih.biSize           = sizeof(BITMAPINFOHEADER);
	bmih.biWidth          = myScreenSize.right;
	bmih.biHeight         = myScreenSize.bottom;
	bmih.biPlanes         =  1;
	bmih.biBitCount       = 24;
	bmih.biCompression    = BI_RGB;
	bmih.biSizeImage      = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3) * bmih.biHeight;
	bmih.biXPelsPerMeter  = 0;
	bmih.biYPelsPerMeter  = 0;
	bmih.biClrUsed        = 0;
	bmih.biClrImportant   = 0;

	hBitmap = CreateDIBSection(NULL, (BITMAPINFO *) &amp;bmih, 0, (void**)&amp;pBits, NULL, 0);
	// DISection
</code></pre>
<p>Wie schreibe ich jetzt meine Punkte wie in folgender Schleife in die DIBSection?</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
    for (int i = 0; i &lt; st-&gt;npoints; i++) {
        SetPixelV(myBackBuffer, st-&gt;pointbuf[i].x, st-&gt;pointbuf[i].y, st-&gt;colours[st-&gt;ccolour]);
    }
    // Pointbuffer zurücksetzen
   st-&gt;npoints = 0;
}
</code></pre>
<p>Auch auf die Gefahr hin mich lächerlich zu machen, etwas wie dieses?</p>
<pre><code class="language-cpp">Zeile     = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3);
Adresse   = &amp;pBits + (Zeile * y) + x;
</code></pre>
<p>Und vor allem wie schreibe ich jetzt mein COLORREF an diese Adresse?<br />
Mmmh: Merkt man dass ich gerade C und WinAPI lerne? Wahrscheinlich! <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/1155792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155792</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Mon, 16 Oct 2006 14:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Mon, 16 Oct 2006 20:42:17 GMT]]></title><description><![CDATA[<p>Habs selbst rausgefunden:</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
    int Zeile = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3);
    for (int i = 0; i &lt; st-&gt;npoints; i++) {
        pBits[  Zeile *
                st-&gt;pointbuf[i].y +
                st-&gt;pointbuf[i].x *
                sizeof(COLORREF)
             ]  = RGB(255,255,255);
    }
}
</code></pre>
<p>Funktioniert, außer, dass statt weiß wie angegeben blau gezeichnet wird - verstehe ich nicht! Jemand einen Tipp!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155954</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Mon, 16 Oct 2006 20:42:17 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Array von nicht zusammenhängenden Pixeln zeichnen? on Tue, 17 Oct 2006 09:08:35 GMT]]></title><description><![CDATA[<p>timmix schrieb:</p>
<blockquote>
<p>Habs selbst rausgefunden:</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
    int Zeile = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3);
    for (int i = 0; i &lt; st-&gt;npoints; i++) {
        pBits[  Zeile *
                st-&gt;pointbuf[i].y +
                st-&gt;pointbuf[i].x *
                sizeof(COLORREF)
             ]  = RGB(255,255,255);
    }
}
</code></pre>
<p>Funktioniert, außer, dass statt weiß wie angegeben blau gezeichnet wird - verstehe ich nicht! Jemand einen Tipp!</p>
</blockquote>
<p>Selbst gelöst, immerhin:</p>
<pre><code class="language-cpp">static void drawpoints(struct state *st) {
	int offset;

	int cxScanLine = ((((bmih.biWidth * bmih.biBitCount) + 31) &amp; ~31) &gt;&gt; 3);
	for (int i = 0; i &lt; st-&gt;npoints; i++) {
		offset =	(cxScanLine			*	st-&gt;pointbuf[i].y) +
					(st-&gt;pointbuf[i].x	*	(sizeof(BYTE)) * 4);

		pBits[offset]	= 0x00;					// 0x00bbggrr (!)
		pBits[offset++] = st-&gt;b[st-&gt;ccolour];
		pBits[offset++] = st-&gt;g[st-&gt;ccolour];
		pBits[offset++]	= st-&gt;r[st-&gt;ccolour];
	}
	// Pointbuffer zurücksetzen
	st-&gt;npoints = 0;
}
</code></pre>
<p>Verstehen tu ich das noch nicht, aber wird schon! <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/1156105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1156105</guid><dc:creator><![CDATA[timmix]]></dc:creator><pubDate>Tue, 17 Oct 2006 09:08:35 GMT</pubDate></item></channel></rss>