<?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[Win32 GDI zusammen mit OpenGL nutzen]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>die Win32 GDI hat ja, wie die meisten sicherlich wissen, viele schöne Funktionen die man selbst nur ungerne neu programmieren möchte wie z.B. 'Pie', 'Chord' oder 'FloodFill'.<br />
Diese Funktionen würde ich gerne zusammen mit meinem OpenGL Programm verwenden. Aber leider braucht OpenGL nicht nur einen HDC (Device Context) sondern auch noch einen HGLRC (Resource Context) und der übermalt den DC. Wenn ich also unter 'WM_PAINT' mit der Win32 GDI zeichnen will flackert das dort Gezeichnete.</p>
<p>Meine Frage: Gibt es eine Möglichkeit die Win32 GDI zusammen mit OpenGL richtig zu nutzen?<br />
Wenn ja, wie macht man das. Wenn nein, warum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201631/win32-gdi-zusammen-mit-opengl-nutzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 01:22:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201631.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Jan 2008 11:32:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 11:32:50 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>die Win32 GDI hat ja, wie die meisten sicherlich wissen, viele schöne Funktionen die man selbst nur ungerne neu programmieren möchte wie z.B. 'Pie', 'Chord' oder 'FloodFill'.<br />
Diese Funktionen würde ich gerne zusammen mit meinem OpenGL Programm verwenden. Aber leider braucht OpenGL nicht nur einen HDC (Device Context) sondern auch noch einen HGLRC (Resource Context) und der übermalt den DC. Wenn ich also unter 'WM_PAINT' mit der Win32 GDI zeichnen will flackert das dort Gezeichnete.</p>
<p>Meine Frage: Gibt es eine Möglichkeit die Win32 GDI zusammen mit OpenGL richtig zu nutzen?<br />
Wenn ja, wie macht man das. Wenn nein, warum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429193</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:32:50 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 12:12:33 GMT]]></title><description><![CDATA[<p>Ganz verstehe ich nicht was Du willst.<br />
Wie erzeugst Du denn den DC bzw. wie nutzt Du den?</p>
<p>Schau Dir mal das Beispiel an:<br />
<a href="http://www.ini-sc.net/mswin/awfcsem/kap20.htm" rel="nofollow">http://www.ini-sc.net/mswin/awfcsem/kap20.htm</a></p>
<p>HTH</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429221</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 02 Jan 2008 12:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 13:12:28 GMT]]></title><description><![CDATA[<p>Naja, ich möchte eben mit OpenGL 3D Grafiken zeichnen (glBegin ... glEnd) und mit der Win32GDI möchte ich 2 Dimensionale Dinge zeichnen. Aber weil ich ebenFunktionen aufrufen muss wie &quot;SwapBuffers&quot; flackert alles was ich unter 'WM_PAINT: BeginPaint ... EndPaint' zeichne <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">Beispiel:
HDC hDC; // DC für OpenGL

// 3D Zeichnen Operationen
glBegin(GL_QUADS);
/* glVertex3f(...) */
glEnd();

// 2D Zeichnen Operationen (flackert immer)
Rectangle(hDC, 100, 100, 200, 200);

SwapBuffers(hDC);

/* ... */
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1429279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429279</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 02 Jan 2008 13:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 13:16:01 GMT]]></title><description><![CDATA[<p>Es flackert weil vermutlich in WM_ERASEBKGND der Hintergrund gelöscht wird...</p>
<p>Wenn Du das gesamte Fenster zeichnest solltest Du in WM_ERASEBKGND nichts machn und direkt returnieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429284</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 02 Jan 2008 13:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 17:35:55 GMT]]></title><description><![CDATA[<p>Einfach nein. Totaler Stuss. Niemals 2 GUIs benützen. Was denkt ihr euch dabei.<br />
@Themenstarter: Entscheide dich für eine der beiden Komponenten und höre nicht auf diese Leute hier <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429491</guid><dc:creator><![CDATA[You ll never find out]]></dc:creator><pubDate>Wed, 02 Jan 2008 17:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 18:58:00 GMT]]></title><description><![CDATA[<p>Und warum soll man es nicht?<br />
Für manches macht es Sinn und es geht. Es gibt genug Samples und wenn man existierenden Code integrieren muss...</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/ms537714(VS.85).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms537714(VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429536</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 02 Jan 2008 18:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Wed, 02 Jan 2008 20:02:56 GMT]]></title><description><![CDATA[<p>msdn schrieb:</p>
<blockquote>
<p>OpenGL and GDI graphics cannot be mixed in a double-buffered window.<br />
An application can directly draw both OpenGL graphics and GDI graphics into a single-buffered window, but not into a double-buffered window.</p>
</blockquote>
<p><a href="http://msdn2.microsoft.com/en-us/library/ms537543(VS.85).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms537543(VS.85).aspx</a></p>
<p>Das SwapBuffers() wird dir ohnehin das gerade vorher gezeichnete Rectangle töten <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/1429571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429571</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 02 Jan 2008 20:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Thu, 03 Jan 2008 11:14:17 GMT]]></title><description><![CDATA[<p>Natürlich klingt das etwas merkwürdig wenn man zwei GUIs mischt, aber wie sollte man mit OpenGL eine schnelle Funktion wie 'FloodFill()' programmieren? Wenn man sowieso die Win32API (CreateWindow, TranslateMessage usw.) verwendet, warum sollte man dann nicht auch Funktionen wie eben 'FloodFill' oder 'Chord' benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429811</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Thu, 03 Jan 2008 11:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Thu, 03 Jan 2008 11:23:48 GMT]]></title><description><![CDATA[<p>Ich habs mal ausprobiert, aber 'geeky' hat leider Recht. SwapBuffer löscht den alten Bildschirm sowieso. Das Flackern ist zwar nur noch sehr schwach aber es reicht leider nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich weiß einfach nicht wie ich mit OpenGL alleine kompliziert und vor allem langsame Algorithmen programmieren soll.<br />
Ich fürchte das selbst die GL-UtilityToolkits dafür nicht ausreichen, oder?! <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 frag da noch mal im Spiele-Programmieren-Forum nach)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429819</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Thu, 03 Jan 2008 11:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Thu, 03 Jan 2008 11:52:03 GMT]]></title><description><![CDATA[<p>LukasBanana schrieb:</p>
<blockquote>
<p>Natürlich klingt das etwas merkwürdig wenn man zwei GUIs mischt,</p>
</blockquote>
<p>weder gdi noch opengl sind GUIs.</p>
<blockquote>
<p>aber wie sollte man mit OpenGL eine schnelle Funktion wie 'FloodFill()' programmieren?</p>
</blockquote>
<p>opengl ist für die darstellung von grafiken zuständig und nicht für deren erzeugung. wenn du ein floodfill auf pixelebene brauchst, musst du es selbst programmieren.</p>
<blockquote>
<p>Wenn man sowieso die Win32API (CreateWindow, TranslateMessage usw.) verwendet, warum sollte man dann nicht auch Funktionen wie eben 'FloodFill' oder 'Chord' benutzen?</p>
</blockquote>
<p>weil der device-context nach der initialisierung opengl &quot;gehört&quot;.</p>
<p>eine saubere lösung wäre es, mit gdi in einen offscreen-buffer zu malen und den inhalt des buffers mit opengl in den backbuffer zu blitten. also den gdi-buffer in eine textur kopieren und diese textur auf einem fullscreen-quad rendern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429846</guid><dc:creator><![CDATA[gfx-feind]]></dc:creator><pubDate>Thu, 03 Jan 2008 11:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Sat, 05 Jan 2008 11:43:41 GMT]]></title><description><![CDATA[<p>Gute Idee, jetzt müsste ich nur noch wissen wie man mit OpenGL auf eine Texture rendert. Bzw. mit der WinAPI</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431025</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 05 Jan 2008 11:43:41 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Sat, 05 Jan 2008 15:04:52 GMT]]></title><description><![CDATA[<p>LukasBanana schrieb:</p>
<blockquote>
<p>Gute Idee, jetzt müsste ich nur noch wissen wie man mit OpenGL auf eine Texture rendert. Bzw. mit der WinAPI</p>
</blockquote>
<p>dazu gibt es 2 möglichkeiten:</p>
<p>1. du suchst dir diese informationen selbst zusammen, z.b. indem du tutorials und dokumentationen liest.<br />
2. du bettelst in foren rum, bis dir jemand eine fertige lösung vorkaut.</p>
<p>ersteres ist zwar nicht mehr modern, aber sehr effektiv.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431178</guid><dc:creator><![CDATA[gfx-fined]]></dc:creator><pubDate>Sat, 05 Jan 2008 15:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to Win32 GDI zusammen mit OpenGL nutzen on Sat, 05 Jan 2008 15:59:29 GMT]]></title><description><![CDATA[<p>Ich glaub ich nehm Nummer 3 :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431207</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 05 Jan 2008 15:59:29 GMT</pubDate></item></channel></rss>