<?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[Probleme mit 2 OpenGL-Fenstern]]></title><description><![CDATA[<p>Hallo</p>
<p>Meine Basis ist ein Dialogfenster. In das Dialogfenster setze ich ein img rein und binde meinen Zeichenbereich für ein OpenGL-Fenster daran. Ich habe eine eigene Klasse namens COpenGLControl, in der ich sämtliche Funktionen für Zeichnen und Mausoperationen definiere. Ich kann in das Fenster ein Polygonnetz laden und auch anzeigen, bearbeiten etc, funktiniert einwandfrei.<br />
Nun möchte ich gern ein 2. OpenGl-Fenster haben, erstelle also wieder ein img und binde ein 2. Feenster nach dem gleich Prinzip an das img.</p>
<p>Allerdings scheint das nicht so einfach zu funktionieren. Es kommt zwar keine Fehlermeldung und das Programm startet auch problemlos. Jedoch scheint es, als würden die Buffer nicht neu gefüllt. Jedenfalls wird noch die Grafik angezeigt, die im Programm mit dem einen Fenster zuletzt sichtbar war. Wenn ich nun irgendwas machen will (verschiebeversuche des Dialogs reicht schon) hängt sich die Anwendung auf.</p>
<p>Ja, die Frage is wohl klar, woran kann das liegen? Es wird noch nichts gezeichnet, bei der Ausführung des Programms, sondern lediglich die OpenGL-Fenster initialisiert. Kann es sein, dass nicht für jedes Fenster die entsprechenden Parameter Viewport, Projektionsmatrix etc. erzeugt werden, sondern nur einmal für die ganze Anwendung und dort dann ein Problem entsteht?</p>
<p>MfG<br />
Neron</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152808/probleme-mit-2-opengl-fenstern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 12:35:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152808.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Jul 2006 08:08:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 10 Jul 2006 08:08:19 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Meine Basis ist ein Dialogfenster. In das Dialogfenster setze ich ein img rein und binde meinen Zeichenbereich für ein OpenGL-Fenster daran. Ich habe eine eigene Klasse namens COpenGLControl, in der ich sämtliche Funktionen für Zeichnen und Mausoperationen definiere. Ich kann in das Fenster ein Polygonnetz laden und auch anzeigen, bearbeiten etc, funktiniert einwandfrei.<br />
Nun möchte ich gern ein 2. OpenGl-Fenster haben, erstelle also wieder ein img und binde ein 2. Feenster nach dem gleich Prinzip an das img.</p>
<p>Allerdings scheint das nicht so einfach zu funktionieren. Es kommt zwar keine Fehlermeldung und das Programm startet auch problemlos. Jedoch scheint es, als würden die Buffer nicht neu gefüllt. Jedenfalls wird noch die Grafik angezeigt, die im Programm mit dem einen Fenster zuletzt sichtbar war. Wenn ich nun irgendwas machen will (verschiebeversuche des Dialogs reicht schon) hängt sich die Anwendung auf.</p>
<p>Ja, die Frage is wohl klar, woran kann das liegen? Es wird noch nichts gezeichnet, bei der Ausführung des Programms, sondern lediglich die OpenGL-Fenster initialisiert. Kann es sein, dass nicht für jedes Fenster die entsprechenden Parameter Viewport, Projektionsmatrix etc. erzeugt werden, sondern nur einmal für die ganze Anwendung und dort dann ein Problem entsteht?</p>
<p>MfG<br />
Neron</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1094836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1094836</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Mon, 10 Jul 2006 08:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 10 Jul 2006 12:07:00 GMT]]></title><description><![CDATA[<p>Um per OpenGL Scenes darzustellen wird ein RC -&gt; RendererContext verwendet, dieser kann nicht mehrfach in einer Anwendung benutzt werden, zumindestens wurde uns das so in unserem Kurs erzählt. Aber es klingt schon sehr danach wenn du die 2te Darstellung genauso machst wie die erste und er das darstellt was in der ersten Scene zu sehen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1095059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1095059</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Mon, 10 Jul 2006 12:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 10 Jul 2006 12:53:18 GMT]]></title><description><![CDATA[<p>OpenGL ist eine <strong>Statusmaschine</strong>.<br />
Diese existiert einmal pro Anwendung(Multithreading jetzt mal außen vor gelassen).</p>
<p>Dies bedeutet folgerichtig, dass du nur eine Matrix von der jeweiligen Art hast usw.<br />
Die Lösung liegt einfach darin, wenn man schaut, wie OpenGL in ein Windowsfenster rendert. DOrt verbindest du ein Renderkontext von OpenGL mit einem DeviceKontext von einem Windowsfenster.<br />
Wenn du jetzt also in ein anderes Fenster willst, musst du nur den aktuellen Devicekontext neu setzen, nämlich auf das gerade aktuelle Fenster. Das machst du mit wglMakeCurrent und das immer, bevor die ersten fensterspefiischen OpenGL-Befehle kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1095092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1095092</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 10 Jul 2006 12:53:18 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 10:58:01 GMT]]></title><description><![CDATA[<p>Ich habe nun genau das gleiche Problem. Ich hatte bisher folgende Struktur:</p>
<p>- Hauptklasse<br />
- Tab-Nummer1-Klasse: OpenGLCreate und TimerActivate<br />
- Tab-Nummer2-Klasse: neu, soll dasselbe wie Tab1 machen<br />
- OpenGLCtrl-Klasse</p>
<p>So funktioniert es anscheinend nicht, wie ich hier lese. Wie muss ich nun die logische Struktur ändern?</p>
<p>- Hauptklasse: OpenGLCreate<br />
- Tab-Nummer1-Klasse: wglMakeCurrent und TimerActivate<br />
- Tab-Nummer2-Klasse: wglMakeCurrent und TimerActivate<br />
- OpenGLCtrl-Klasse</p>
<p>So? Die Hauptklasse bereitet das OpenGL vor und bindet standardmässig an das Static im Tab1? Wenn ich dann im Tab2 bin, wird das wglMakeCurrent und der RenderTimer aktiviert? Beim Umschalten wird dann immer wglMakeCurrent ausgeführt. Bloss wo genau muss dieses wglmakeCurrent hin? In die OpenGLCtrl-Klasse? Wie genau sieht der Befehl aus? Danke für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097611</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Fri, 14 Jul 2006 10:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 11:27:56 GMT]]></title><description><![CDATA[<p>Als erstens musst du für beide Fenster nen eigenen Pixeldesxriptor machen. Am besten irgenwo ne init-Methode die du dann aufrufst für jedes Fenster.(wenn das dein OpenGLCreate darstellen soll, dann muss es in beide Tabklassen)</p>
<p>Ansonsten schreibt du einfach vor deinem ersten fensterspezifischen OpenGL-Befehl</p>
<pre><code class="language-cpp">wglMakeCurrent(hDC,hRC);
</code></pre>
<p>Den Device- und Rendercontext legst du ja in der init-Methode an für jedes Fenster(werden also Membervariable der Klasse sein).</p>
<p>Das wars eigentlich schon.</p>
<p>Für das OpenGL-Zeugs empfiehlt es sich, ne eigene KLasse zu schreiben, welche du dann in allen Fenstern benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097634</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 14 Jul 2006 11:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 14:08:13 GMT]]></title><description><![CDATA[<p>Hmmmm... kannst Du etwas spezifischer werden? Hier mal etwas Code:</p>
<p>Aus meiner Tab1-Klasse:</p>
<pre><code class="language-cpp">BOOL tabDialog2::OnInitDialog()
{
	// Get size and position of the template textfield we created before in the dialog editor
	GetDlgItem(IDC_OPENGL)-&gt;GetWindowRect(rect_opengl);

	// Convert screen coordinates to client coordinates
	ScreenToClient(rect_opengl);

	// Create OpenGL Control window
	m_oglGraph-&gt;oglCreate(rect_opengl, this);

	// return 0 if everything went fine
	return 0;
}
</code></pre>
<p>Aus der OpenGLCtrl Klasse:</p>
<pre><code class="language-cpp">int COpenGLCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
        if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

        oglInitialize();

        return 0;
}

void COpenGLCtrl::oglCreate(CRect rect, CWnd *parent)
{
    CString className = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_OWNDC, NULL,
	  (HBRUSH)GetStockObject(BLACK_BRUSH), NULL);

    CreateEx(0, className, &quot;OpenGL&quot;, WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, rect, parent, 0);

    // Set initial variables' values
    m_oldWindow    = rect;
    m_originalRect = rect;

    hWnd = parent;
}

void COpenGLCtrl::OnPaint()
{
        CPaintDC dc(this); // device context for painting
        ValidateRect(NULL);
}

void COpenGLCtrl::oglInitialize(void)
{
	// Initial Setup:
    //
    static PIXELFORMATDESCRIPTOR pfd =
    {
		sizeof(PIXELFORMATDESCRIPTOR),
        1,
        PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
        PFD_TYPE_RGBA,
        32, // bit depth
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        16, // z-buffer depth
        0, 0, 0, 0, 0, 0, 0,
	};

    // Get device context only once.
    hdc = GetDC()-&gt;m_hDC;

    // Pixel format.
    m_nPixelFormat = ChoosePixelFormat(hdc, &amp;pfd);
    SetPixelFormat(hdc, m_nPixelFormat, &amp;pfd);

    // Create the OpenGL Rendering Context.
    hrc = wglCreateContext(hdc);
    wglMakeCurrent(hdc, hrc);

    // Basic Setup:
    //
    // Set color to use when clearing the background.
    glClearColor(0.6f, 0.6f, 0.6f, 1.0f);
	glClearDepth(1.0f);

	// Turn on backface culling
	glFrontFace(GL_CCW);
	glCullFace(GL_BACK);

	// Turn on depth testing
	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LEQUAL);

    // Send draw request
    OnDraw(NULL);
}
</code></pre>
<p>Was fehlt ist noch das Timer-Event zum Neuzeichnen, aber das ist hier sicher nicht so wichtig. Ich blicke bei OpenGL noch nichts ganz so durch, daher frage ich nochmal etwas genauer <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="🙂"
    /> ich bin ja schon froh, dass es mit einem OpenGL Window läuft <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/1097753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097753</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Fri, 14 Jul 2006 14:08:13 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 15:19:10 GMT]]></title><description><![CDATA[<p>Du rufst in der OnInitDialog nicht oglInitialize() auf. Das muss aber einmal geschehen. Liegts evtl. nur daran?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097797</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 14 Jul 2006 15:19:10 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 15:54:37 GMT]]></title><description><![CDATA[<p>Ich werds mal testen. Ich schiebe es aber erstmal in meiner ToDo-Liste nach unten, ich teste erstmal NUR das zweite OGL-Fenster. Wenn das läuft versuche ich beide gleichzeitig, wenn was ist melde ich mich einfach nochmal <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1097819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097819</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Fri, 14 Jul 2006 15:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Fri, 14 Jul 2006 18:05:02 GMT]]></title><description><![CDATA[<p>Mach das <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="🙂"
    /> An sich ist es halt wirklich so, dass du alles doppelt hast. Da wir doppeltes nicht mögen, lohnt sich dafür natürlich ne eigene Klasse^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097882</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 14 Jul 2006 18:05:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 12:46:03 GMT]]></title><description><![CDATA[<p>So, bin nun wieder an diesem Problem. Irgendwann muss es ja gelöst werden <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="😉"
    /> Ich rätsel immernoch, wieso es 2 Pixeldeskriptoren sein müssen, weil in meinem bestehenden keine spezifischen Fensterinformationen drinstehen. Würde ich das machen, sähen beide Deskriptoren identisch aus.</p>
<p>Mal eine andere Überlegung: Macht es Sinn, das OpenGL Control beim Verlassen des TabX zu zerstören und beim Entern von TabY neu zu createn? Darf man das mehrmals machen? Da käme ja dann dasselbe bei raus oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103132</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 12:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 13:03:24 GMT]]></title><description><![CDATA[<p>JPSelter schrieb:</p>
<blockquote>
<p>So, bin nun wieder an diesem Problem. Irgendwann muss es ja gelöst werden <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="😉"
    /> Ich rätsel immernoch, wieso es 2 Pixeldeskriptoren sein müssen, weil in meinem bestehenden keine spezifischen Fensterinformationen drinstehen. Würde ich das machen, sähen beide Deskriptoren identisch aus.</p>
</blockquote>
<p>OpenGL will nunmal ne Verbindung vom Rendercontext zunm Devicecontext und das für jede Verbindung, sprich also für jedes Fenster. Sozusagen <em>&quot;Liebes liebes OpenGL, rendere bitte in diesen DC mit diesen gesetzten Eigenschaften&quot;</em><br />
Und das geht nunmal über den Pixeldeskriptor. Das du dann zweimal den selben setzt, ist doch egal dabei.</p>
<p>JPSelter schrieb:</p>
<blockquote>
<p>Mal eine andere Überlegung: Macht es Sinn, das OpenGL Control beim Verlassen des TabX zu zerstören und beim Entern von TabY neu zu createn? Darf man das mehrmals machen? Da käme ja dann dasselbe bei raus oder?</p>
</blockquote>
<p>Musst du halt mal testen. ich würd aber sagen ja musst du machen. Ein neuer Tab hat nen neuen Handle und für das neue Handle brauchst du nen neuen DeviceContext. Diesen musst dann wieder mit dem Rendercontext verbinden usw.<br />
Wie gesagt einfach mal testen^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103145</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 24 Jul 2006 13:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 13:22:38 GMT]]></title><description><![CDATA[<p>OK, soweit so gut. Meine Software zeichnet nun beide, aber nur den, der zuerst erzeugt wird und danach NUR den, also das Tab, das zuerst angeklickt wird. Alles was jetzt noch fehlt, ist eine Destroy-Methode. Jetzt sehe ich wieder, wie wenig Ahnung ich von C++ habe <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="😃"
    /> Wie zerstöre ich denn das OpenGL-Objekt wieder?</p>
<pre><code class="language-cpp">if (m_tabctrlMain.GetCurSel()==1)
	{
		((tabDialog2*)m_tabctrlMain.GetTab(1))-&gt;DestroyOpenGL();
// plus eine Abfrage ob es überhaupt schon ein Objekt gibt
		((tabDialog2*)m_tabctrlMain.GetTab(1))-&gt;CreateOpenGL();
		((tabDialog2*)m_tabctrlMain.GetTab(1))-&gt;ActivateRenderTimer();
	}

	if (m_tabctrlMain.GetCurSel()==2)
	{
		((tabDialog2*)m_tabctrlMain.GetTab(2))-&gt;DestroyOpenGL();
// plus eine Abfrage ob es überhaupt schon ein Objekt gibt
		((tabDialog3*)m_tabctrlMain.GetTab(2))-&gt;CreateOpenGL();
		((tabDialog3*)m_tabctrlMain.GetTab(2))-&gt;ActivateRenderTimer();
	}
</code></pre>
<p>So ein CreateOpenGL sieht im Moment so aus (Beispiel aus tabDialog2):</p>
<pre><code class="language-cpp">void tabDialog2::CreateOpenGL()
{
	m_oglGraph = new COpenGLCtrl(); &lt;---- hier wirds konstruiert

	m_oglGraph-&gt;SetOGLDrawType(0);

	m_boolTimerActive=false;

	GetDlgItem(IDC_OPENGL)-&gt;GetWindowRect(rect_opengl);

	ScreenToClient(rect_opengl);

	// Create OpenGL Control window
	m_oglGraph-&gt;oglCreate(rect_opengl, this);
}
</code></pre>
<p>Wie sieht das DestroyOpenGL() aus? Sowas wie m_oglGraph.destroy() oder so? Das gibt es leider nur nicht. Vielen Dank für die Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103166</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 13:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 13:35:59 GMT]]></title><description><![CDATA[<p>Habs gleich selbst gefunden <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="🙂"
    /> Ich rufe einfach den Destruktor von COpenGLCtrl auf. Jetzt muss ich nur noch überprüfen, ob das Objekt vorher schon da war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103175</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 13:35:59 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 13:42:05 GMT]]></title><description><![CDATA[<p>edit: ok hat sich ja erledigt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1103179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103179</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 24 Jul 2006 13:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 14:46:09 GMT]]></title><description><![CDATA[<p>Leider noch nicht ganz. Irgendwie wird das OpenGL nicht richtig gekillt. Ein Wechsel zwischen Tab2 - Tab3 - Tab2 - Tab3 endet in einer Exception, zudem addieren sich immer 2MB zum RAM hinzu. Die Exception kommt laut dem Debugger aus der Zeile</p>
<p>CreateEx(0, className, &quot;OpenGL&quot;, WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, rect, parent, 0);</p>
<p>aus meinem OpenGLCreate. Wie kann ich das gesamte OpenGL killen? Gibts doch bestimmt Befehle für oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103228</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 14:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 14:54:31 GMT]]></title><description><![CDATA[<p>Mit Create legst du ein Windowsfenster an. Das hat noch nix mit OpenGL zu tun. Dieses sollte man auch wieder mit Destroy freigeben.</p>
<p>Dann holst du dir sicher irgendwo mit GetDC() nen Context. Dieses gibt man am Ende mit ReleaseDC wieder frei.<br />
Und den Rendercontext löscht man mit wglDeleteContext. Das wäre dann das einzig OpenGL-spezifische.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103236</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 24 Jul 2006 14:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 15:54:57 GMT]]></title><description><![CDATA[<p>Au mann, langsam drehe ich durch... kostet schonwieder viel zu viel zeit alles. In einem Tutorial steht, ich soll</p>
<p>ReleaseDC(hWnd,hdc)</p>
<p>benutzen, aber der Compiler meckert rum, er akzeptiert keine 2 Argumente. Dann lasse ich hWnd weg und nun meckert er rum</p>
<p>error C2664: 'CWnd::ReleaseDC' : cannot convert parameter 1 from 'HDC' to 'CDC *'</p>
<p>Gleich bei wglDeleteContext dann sicher dasselbe Spiel...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103288</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 16:11:55 GMT]]></title><description><![CDATA[<p>Wie holst du dir den DC?<br />
Mit GetDC() oder mit GetDC(HWND); ?</p>
<p>Bei zweiter Variante dann gib das frei mit **::**GetDC(HWND,HDC)</p>
<p>Ersteres ist nämlich ne Membermethode von CWnd, zweiteres ist ne WinAPI-Funktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103304</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 24 Jul 2006 16:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 16:18:33 GMT]]></title><description><![CDATA[<p>mit</p>
<pre><code class="language-cpp">hdc = GetDC()-&gt;m_hDC;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1103308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103308</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 16:18:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 16:30:02 GMT]]></title><description><![CDATA[<p>OK, hier hab ich was gefunden:</p>
<p><a href="http://steinsoft.net/index.php?site=Programming/Tutorials/opengl_dialog&amp;printable=1" rel="nofollow">http://steinsoft.net/index.php?site=Programming/Tutorials/opengl_dialog&amp;printable=1</a></p>
<p>Ist so ähnlich wie mein Code jetzt, sogar sehr ähnlich. Das Tutorial was ich benutzt habe ist leider wieder offline. Aber hiermit können wir schnell eine Antwort finden <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="🙂"
    /> Einfache Frage: Was würdet Ihr an diesem Tutorial verändern, damit man das Zielfenster während der Laufzeit ändern kann? Mein Problem ist einfach, dass ich da dieses &quot;*parent&quot; in ::Create sehe und dieses nur einmal aufgerufen wird. Also was muss verändert werden? Danke für weitere Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103313</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 16:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 19:24:27 GMT]]></title><description><![CDATA[<p>Hm an sich nix^^<br />
Der Code beschreibt ja ein OpenGL-Control, ob du dann nun 1, 2 oder 3 anlegst ist dabei egal.<br />
Nur das Zeichnen in der OnPaint musst du anders realisieren, das du das zu zeichnende von außen setzen kannst.</p>
<p>Was man nicht sieht momentan ist die Freigabe, aber die kann auch in der OpenGLDevice-Klassen &quot;versteckt&quot; sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103408</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 24 Jul 2006 19:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Mon, 24 Jul 2006 19:58:55 GMT]]></title><description><![CDATA[<p>Ich dachte, man könne nur eines davon haben? Am Anfang dieses Threads wurde das zumindest gesagt. Ich meiner Version dieser Klasse habe ich bereits eine Membervariable, die den Output steuert. Was gezeichnet wird, ist also nicht das Problem, sondern das &quot;wohin&quot;. Ganz am Anfang hatte ich ja 2 Instanzen dieser Klasse, aber da bekam eine immer seltsame Streifen und Linien (wie ein TV das keinen Empfang hat)</p>
<p>*15 Minuten später*</p>
<p>Habe mal eben mit dem Typen von der oben verlinkten Seite gechattet. Er hat ein kleines Demoprogramm mit Code, wo er gleichzeitig in 9 Fenster rendert. Also das was ich suche. Er benutzt Threads, anscheinend klappts bei mir deshalb nicht gleichzeitig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103433</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Mon, 24 Jul 2006 19:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Tue, 25 Jul 2006 09:57:46 GMT]]></title><description><![CDATA[<p>Also wenn das nur über Threads geht, dann ist seine Klassen nicht gerade die beste^^.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103673</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 25 Jul 2006 09:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Tue, 25 Jul 2006 11:31:31 GMT]]></title><description><![CDATA[<p>Ne, doch keine Threads. Habe seine Klasse nun an mein Programm angepasst. Es werden jetzt beide Statics gezeichnet <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="🙂"
    /> Allerdings bleiben beide schwarz <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="😞"
    /> Beide Draw-Funktionen werden aber durchlaufen, na immerhin ein Fortschritt <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/1103737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103737</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Tue, 25 Jul 2006 11:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit 2 OpenGL-Fenstern on Wed, 26 Jul 2006 07:53:01 GMT]]></title><description><![CDATA[<p>Zeig doch mal ein bissel mehr Code!<br />
Oder frag weiter die Leute bei delphigl, obwohl da eher Pascal angesagt ist <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/1104318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1104318</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Wed, 26 Jul 2006 07:53:01 GMT</pubDate></item></channel></rss>