Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"BlazeX"«
Aber mit "pragma comment(lib, ..." bekomme ich jetzt schon bei Programmstart die Fehlermeldung "DLL XXX nicht gefunden!".
Zitat von »"BlazeX"«
Kann ich DLLs dynamisch laden OHNE vollständig von LoadLibrary abhängig zu sein.
Zitat von »"BlazeX"«
(1) Ich mache eine "Fenster-Basisklasse", von der dann beide Render abgeleitet werden.
Per virtuelle Funktionen a la "OnExitSizeMove" wird der Renderer dann auf veränderungen aufmerksam gemacht.
Pro
- Alles unter einem Hut
- Es ist komfortabler für den User, wenn er eigene Klassen ableiten kann.
Contra
- Der User hat weniger Freiraum
Zitat von »"David_pb"«
Allerdings ist der Renderer kein Spezielles Fenster (Abgeleitet). Der Renderer weiß nur in welches Fenster gerendert werden soll.
Zitat von »"David_pb"«
Dann fehlt vermutlich die Dll im entsprechenden Suchordner...
Zitat von »"BlazeX"«
Weniger als Fenster, mehr als Fenster-Manager.
Die Aufgaben wären theoretisch:
- Reaktion auf Windows-Messages wie WM_EXITSIZEMOVE, WM_MOVE, etc. durch virtuelle Funktionen wie OnMinimize, OnHide, OnNewSize, aso sein.
- Bei Bedarf ein Otto-Normal-Fenster erstellen, wenn der User kein Eigenes hat.
Zitat von »"BlazeX"«
Die Ableitung ist auch nur interessant, wegen den 2 Renderern (D3D9 und D3D10). Die sollten ja halbwegs gleich zu handhaben sein.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class WindowApplication : public Application, public IRenderTarget { // Methoden etcpp ... //! Event Handling virtual void OnActivate() = 0; virtual void OnClosing( bool& doClose ) = 0; virtual void OnClosed() = 0; virtual void OnDeactivate() = 0; virtual void OnIdle() = 0; virtual void OnMaximized() = 0; virtual void OnMinimized() = 0; virtual void OnMouseDown( const MouseEventArgs_t& args ) = 0; virtual void OnMouseUp( const MouseEventArgs_t& args ) = 0; virtual void OnMouseMove( const MouseEventArgs_t& args ) = 0; virtual void OnKeyDown( const KeyEventArgs_t& args ) = 0; virtual void OnKeyUp( const KeyEventArgs_t& args ) = 0; virtual void OnSize( uint32 width, uint32 height ) = 0; // ... }; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
class WglRenderDevice : public OpenGLRenderDevice { public: WglRenderDevice( HWND hWnd, rsDepthFormat depth, rsStencilFormat stencil, rsMultisamplingType multisamples, uint32 width, uint32 height ); // weitere funktionalität ... }; |
Zitat von »"BlazeX"«
Nuja, wenn der Games aber kein DirectX 10 installiert hat, sondern nur 9.0c, dann sollten die DX10-DLLs natürlich nicht vorhanden sein.
Oder etwa doch? Werden die durch DSetup auch installiert obwohl der PC das nicht schafft?
Werbeanzeige