• 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