Direct3D9 Initialisierung
-
Das Buch hab ich schon gelesen, deswegen hab ich ja auch gefragt ob das so gut
ist, weil nen Buch lesen und nacher auch alles sauber zu coden sind zweierlei.
Wie meinst du mit nem Singleton? Dass ich nur eine Instanz haben darf in der
Anwendung ist klar, aber ich brauche ja trotzdem meine beiden Methoden um was
auf den Bildschirm zu bringen und zu verändern.
-
Welche Daten brauchst du denn (angeblich) überall(also global)?
Bye, TGGC (Der Held ist zurück)
-
Global ja nicht wirklich, ich brauch ja nur Zugriff auf LPDIRECT3D9 und LPDIRECT3DDEVICE9 für die Render-Funktion. Für Sachen wie Material usw. kann ich ja Factory-Klassen benutzen.
-
Also warum hast du es global gemacht, wenn es nicht global gebraucht wird?
Bye, TGGC (Der Held ist zurück)
-
Die sind nicht global, in der Struktur g_set steht folgendes:
struct mode { HWND hwnd; // Window Handle bool done; // Abbruchkriterium bool windowed; // Fenstermodus? BOOL IsActive; // Focus ? };
Das was die Klasse dxInit braucht ist nur das Windows-Handle und die Init-Methode
noch die Variable windowed, könnte ich also auch direkt übergeben.Deklaration von dxInit:
class dxInit { public: dxInit (void); // constructor virtual ~dxInit (void); // destructor HRESULT Init (const mode & settings); // initialisierung von DirectX HRESULT Tick (float time = 0.0f); // Timer void Release (void); // Geräteschnittstelle freigeben protected: LPDIRECT3D9 _pD3D; // LPDIRECT3DDEVICE9 _pDevice; // Geräteschnittstelle D3DPRESENT_PARAMETERS _PP; // Einstellungen für die Schnittstelle HWND _hwnd; // Window Handle virtual void move (float time) = 0; // Neu Berechnen und Positionieren virtual HRESULT render (float time) = 0; // Rendern };
Das einzige was danach noch global wäre, wären die Variablen für den ESC-Tastendruck
um das Programm zu beenden. Und diese würd ich gerne losbekommen, aber die
werden in winmain und der winprc benutzt
-
Also hab ich es jetzt richtig verstanden? Das einzige was global ist und weg
soll ist eine Variable für den ESC Druck?Bye, TGGC (Der Held ist zurück)
-
Genau das ist alles.
-
Wieso sind eigentlich am gleichen Tag 2 Threads mit DirectX Initialisierung als Thema entstanden?
-
Na dann würde ich sowas wie GetAsyncKeyState oder gleich DI benutzen. Andere Möglichkeit ist die Message gleich in der Messageloop abzufangen.
@Sgt.: So was Dummes kannst auch nur du fragen. Das ist _schwer_.
Bye, TGGC (Der Held ist zurück)
-
Gut dann muss ich mich noch etwas gedulden bis ich weiß wie man mit DirectInput
arbeitetDanke
-
TGGC schrieb:
@Sgt.: So was Dummes kannst auch nur du fragen. Das ist _schwer_.
Steckt da [url=http://www.wissen.de/xt/default.do?MENUID=40,156,538&MENUNAME=InfoContainer&OCCURRENCEID=WB01-3718163.WD00100018163.TM01-FullContent&WissenID=QDewhCbJWViHRhxHc6M1awcQ4JC8S4hPtS272RLT2hm55InbG8RE|8414412911323954836/182718477/6/7063/7063/7003/7003/7063/-1|650180672699649021/182718475/6/7063/7063/7003/7003/7063/-1|1077391492113]Kom|pro|mit|tie|rung[/url] in Deinem Satz??!
-
Oder du benutzt eine der anderen beiden genannten Möglichkeiten.
Bye, TGGC (Der Held ist zurück)
-
TGGC schrieb:
Oder du benutzt eine der anderen beiden genannten Möglichkeiten.
Tust Du mich etwa [url=http://www.wissen.de/xt/default.do?MENUID=40,156,538&MENUNAME=InfoContainer&OCCURRENCEID=WD001GW00045075.WD001GW00045075.TM01-FullContent&WissenID=QDio2MxIhEed8oQ5VocIMDUf1qMEpGV2TILqXY5WvWPAiXI8dzjc|-6476477935559174998/182718486/6/7063/7063/7003/7003/7063/-1|-6817960726638546948/182718489/6/7063/7063/7003/7003/7063/-1|1077455064070]igno'rie|ren[/url]??