<?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[Einzelne Elemente statisch machen]]></title><description><![CDATA[<p>Hallo Leute ich bins wieder und hab wieder eine Frage zu Sicehrheit.<br />
Ich war dabei eine Shaderklasse zu Schreiben und habe bemerkt, dass ich garnicht an mein D3D11Device komme, was in einer anderen Klasse ist.</p>
<p>Ich habe eine Art Stammbaum gemacht und der ist so aufgebaut:</p>
<p>Engine - Direct3D - Renderer - GShader</p>
<p>Jetzt ist in der Engin Klasse alles drine zur initialisierung, halt alle Befehle, die später öffnetlich benutzbar sind.</p>
<p>Ist es irgendwie möglich jetzt von der GShader klasse den Memebr _Device von der Direct3D Klasse zu bekommen, ohne die Direct3D klasse als Singleton zu machen ???</p>
<p>Ich habe mir überlegt die Engine Klasse als globale variable anzulegen und dann private Funktionen wie GetCurrentDevice() zu machen, wo dann einfach der gerade verwendete Device ist usw....</p>
<p>Was denkt ihr ??</p>
<p>Dankeschön :3</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307328/einzelne-elemente-statisch-machen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 20:49:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307328.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Aug 2012 15:18:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:18:28 GMT]]></title><description><![CDATA[<p>Hallo Leute ich bins wieder und hab wieder eine Frage zu Sicehrheit.<br />
Ich war dabei eine Shaderklasse zu Schreiben und habe bemerkt, dass ich garnicht an mein D3D11Device komme, was in einer anderen Klasse ist.</p>
<p>Ich habe eine Art Stammbaum gemacht und der ist so aufgebaut:</p>
<p>Engine - Direct3D - Renderer - GShader</p>
<p>Jetzt ist in der Engin Klasse alles drine zur initialisierung, halt alle Befehle, die später öffnetlich benutzbar sind.</p>
<p>Ist es irgendwie möglich jetzt von der GShader klasse den Memebr _Device von der Direct3D Klasse zu bekommen, ohne die Direct3D klasse als Singleton zu machen ???</p>
<p>Ich habe mir überlegt die Engine Klasse als globale variable anzulegen und dann private Funktionen wie GetCurrentDevice() zu machen, wo dann einfach der gerade verwendete Device ist usw....</p>
<p>Was denkt ihr ??</p>
<p>Dankeschön :3</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244801</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:40:17 GMT]]></title><description><![CDATA[<p>Wieso gibst Du nicht einfach dem Renderer das Device mit, sodass der es wiederum an die Shaderklasse geben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244804</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:41:40 GMT]]></title><description><![CDATA[<p>Weil die Shader classe eigendlich unabhängig von der Renderklasse ist.Die Renderklasse rendert später meshes indem das mesh übergeben wird und die vertex/index buffer sowie die shader im mesh gerendert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244805</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:45:04 GMT]]></title><description><![CDATA[<p>Also ich verstehe das Problem nicht. Irgendwer muss ja die Shaderklassen-Instanzen erstellen. Und demjenigen (und notfalls dem darüber, wie auch immer die Hierarchie ist) kannst Du doch einfach das Device geben und es bis nach unten runterreichen. So hat das am Ende jeder Shader und das ist schön.</p>
<p>Und falls sich das Device ändert oder so, kannst Du die Änderung von Direct3D ja wieder zu demjenigen leiten, der für die Shader verantwortlich ist. Wie eine ganz normale Befehlskette in einer Hierarchie halt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244807</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:48:15 GMT]]></title><description><![CDATA[<p>Ja mir ist schon klar was irh meint ich hab da eine gute Idee.</p>
<p>Das Problem ist dabei dass ich ja folgendes später machen will:</p>
<p>GShader* diffuse = CreateShader();</p>
<p>Das wird dann in der Engine einfach als folgendes deklariert:</p>
<p>GShader* CreateShader() { return new GShader(_device); }</p>
<p>Ich kann ja nicht den Benutzer die Deviceübergabe überlassen.<br />
Die Hierarchie ist eigendlich nicht wichtig es geht mir nur um die Übersicht <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/2244809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244809</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:48:15 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente statisch machen on Thu, 23 Aug 2012 15:55:12 GMT]]></title><description><![CDATA[<p>Ich hoffe, Du machst da noch einen Smartpointer drum. <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>Und ja, ich würde es dem Benutzer überlassen. Das ist eine globale Methode und ein Shader benötigt eben ein Device, da würde ich nicht einfach verschleiern, dass es so ist. Es ist transparenter, wenn das dabei steht. Oder Du erstellst eben in einer der oberen Hierarchieklassen die Methode CreateShader(), dann fügt die das hinzu, das ist dann auch okay. Aber bei ner globalen Methode ohne Parameter läuft alles auf global hinaus und na ja... dann kannst Du Dir eigentlich auch sparen Engine, Direct3D usw. als Klassen zu machen, denn mehr als eine Instanz können ab dann keinen Sinn mehr ergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244810</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 23 Aug 2012 15:55:12 GMT</pubDate></item></channel></rss>