Entwicklung
Projekt_L3D
Spielträume
Startseite
Expertise
Impressum
Description:
This window application displays two Irrlicht driven scenes on screen. The Irrlicht-engine is an Open Source Project and currently available at
irrlicht.sourceforge.net
This sample utilizes two classes in order to combine the windows and the Irrlicht environments and provides for their basic interaction:
DisplayWinL3D
+
ClientDrawL3D
Each one registers a window class and handles its events by a separate windows procedure. At the moment, this approach seems to be the most feasible way to integrate the Windows and the Irrlicht mechanics into a single module. Since the message loop in WindowMain.cpp deals with PostMessage events, extra care had to be taken in order to catch the corresponding events.
Generally speaking, the present solution reflects a rather "task-oriented" than an strictly "object-oriented" approach. Personal experience has shown that a too restricted frame of mind will hamper the process of development and might lead to "endless designs" or "yanking-cranking compromises".
Therefore, I chose pragmatism over purism in order to yield results, keep my sanity, and limit my frustration. TOP + OOP techniques are powerfull means to finish a task within reasonable time and with a limited amount of resources.
Functionality:
• display an Irrlicht-Scene window
• starts/stops the scene display
• re-sizing of widget layouts
• sub-classing of Win32-procedures
• loading custom cursors dynamically
• tracking X,Y mouse coordinates
• logs FPS messages from Irrlicht-Scene
Class Hierarchy:
ClientWindow
ClientLayout
|__________DisplayWinL3D
(ClientCanvas,CListBox,CPushButton,ClientStatus
AboutDialog,WindowScreen,ClientDrawL3D)
ClientWinL3D (includes irrlicht.h)
|__________ClientDrawL3D
ClientWidget
|
|__________ClientCanvas
|
|__________CListBox
|
|__________CPushButton
|
|__________ClientBitmap
|
|__________ClientStatus