www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/04/24/20:47:05

From: "Keith M. Lucas" <excession.demon.co.no.spam.mail!.uk!sillywiz>
Newsgroups: comp.lang.c++,comp.os.msdos.djgpp,gnu.g++.help,rec.games.programmer,rec.games.design
Subject: Re: C++ Real Time Design Issues
Date: Wed, 23 Apr 1997 16:22:33 GMT
Organization: Excession
Message-ID: <E93MtM.A0u@excession.demon.co.no.spam.mail!.uk>
References: <5jig34$pu9$1 AT alpha DOT hcst DOT com>
Lines: 71
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In article <5jig34$pu9$1 AT alpha DOT hcst DOT com>,
Bryan Murphy <bryan AT alpha DOT hcst DOT com> wrote:
>
>---------------------------------------------------------------------
>
>WARNING, EXTREMELY LONG! :)
>
>I have a few questions about some Heirarchical design issues I faced
>or will face in my current program, and I was wondering if anybody
>would be willing to help me out/give me ideas or discuss some 
>concepts?  Please try to respond via e-mail if you post a reply to
>UseNet as I don't read the groups to thoroughly and might miss any
>replies!!  Any help is much appreciated!
>
>---------------------------------------------------------------------

OK -- I'll give you my experience on this -- we developed our own X11
GUI library ( since none of the others suited our purposes ).

Like you we start with a base object but we have a none OO kernel that
underlies it -- this is what gets X11 messages from X11 and turns them
into our messages ( this bit would be re-written for Windows ). One of
the things it does is run timers ( so objects can have a TICK event
called, without using system resources ) and examine file descriptors
( so objects can respond to file events. ) -- the sockets arrive as
FDs so basically, we have a TSpace in which hang a bundle of TInstance
objects which have pointers to a TPolyMesh. So incoming packets from a
socket kick an event on a TClient which modifies the data in the
TSpace/TInstance. There is also a TCamera which knows where it is in
the space and gets TICK events -- on each TICK it renders its current
view of the window to a bitmap and then asks the TWindow to display
the bitmap.


Useful hint here, ripped off from Delphi. Make your base object have a
list and able to insert itself into lists and so on. That way your
TWindow object simply has a list of all the TWindows and TControls (
TButton etc ) that live inside it.. give the base object a render()
method and all of a sudden drawing a window is easy and it saves you
constantly using list objects and so on.


( Actually there is a chance that we'll be making the code for out
stuff available in the near future.. it should port to Windows very
easily ( the X11 code is hidden away ) )

>The SIMULATION object is where most of the program will take place.  It
>is based off of the APPLICATION object.  It's only major difference is
>that a U_UPDATE message is placed into the INPUT Queue every x milliseconds.
>This U_UPDATE message is what allows it to be a real-time simulation,
>instead of a simple event driven application.

>So, now the problem is:  How do I implement a Client/Server type approach
>into this structure, along with 3D Graphics Support that is completely
>separate from the GUI (this is fairly important to me, but if it needs to
>be integrated into the GUI, I can do that).

In our system the TCamera is the only one that knows anything about
the graphics. It uses a support object ( a TView ) that works at the
level of "a pointer to a bitmap and its size" and methods like
"texture_polygon()" and "flat_polygon()"

----------------------------------------------+--------------------------------
"It's not a personality.. it's a bulldozer"   | Current project: Computer
sillywiz at excession dot demon dot co dot uk | wargaming's next generation...
----------------------------------------------+--------------------------------
IQ test in my email address. Humans can solve it to reply, spambots can't (yet)
----------------------------------------+--------------------------------------
For best results, view this with Linux. | Support death penalty for spammers !
----------------------------------------+--------------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019