Sebastian B?hr  wrote:
> Hello!

> I read that during the Amiga (oh no, not again ;-) ) press conference
> QNX was demonstrated. They had two computers running QNX. Then the guy

> moved a application running on comp1 to comp2 just by dragging the
> window? Can somebody explain these technology? I don't know how to
> understand this.

This is a feature of Photon.  There are two different ways to do this.
One is to have the two different computers each have a video driver
into the same Photon space.  That Photon space would reside on one
cpu, but the application that is being demonstrated would not
neccessarily need to be on that node.  Moving the window around in
Photon space would cause it to appear and dissappear in the video
screen of the different computers.

Another way to cause this to occur is a Photon Jump gate.
In this case you have separate photon spaces on the two computers,
and a window in one that jumps to the other.  To understand
this little piece of magic, you have to understand a little about
how QNX and Photon operate.  A Photon application basically
receives and emits events.  A typical received event would be a
mouse click.  A typical emitted event would be a draw event.
What a Photon program is started it must first establish communication
with the Photon kernel.  It then receives and emits these events
by using QNX's message passing to the kernel.  The jump gate causes
the Photon application to switch to another Photon kernel running
on another cpu.  This all works quite easily as QNX's message
passing works transparently over a network.

While the former looks more impressive (it's possible to move
that window between a Win95, a Unix, and a QNX system),
the latter seems technically more impressive to me.
In this demonstration what becomes clear is that while
the "server" application can't move, the "client" photon
can.  This could mean that as one moves geographically,
one's applications could follow one around.

--
Mitchell Schoenbrun  --------- maschoen@pobox.com

----------------------------------------------------------------------------------------------



Mitchell Schoenbrun  wrote:
: Sebastian B?hr  wrote:
: > Hello!

: > I read that during the Amiga (oh no, not again ;-) ) press
conference
: > QNX was demonstrated. They had two computers running QNX. Then the
guy
: > moved a application running on comp1 to comp2 just by dragging the
: > window? Can somebody explain these technology? I don't know how to
: > understand this.

: This is a feature of Photon.  There are two different ways to do this.

: One is to have the two different computers each have a video driver
: into the same Photon space.  That Photon space would reside on one
: cpu, but the application that is being demonstrated would not
: neccessarily need to be on that node.  Moving the window around in
: Photon space would cause it to appear and dissappear in the video
: screen of the different computers.

: Another way to cause this to occur is a Photon Jump gate.
: In this case you have separate photon spaces on the two computers,
: and a window in one that jumps to the other.  To understand
: this little piece of magic, you have to understand a little about
: how QNX and Photon operate.  A Photon application basically
: receives and emits events.  A typical received event would be a
: mouse click.  A typical emitted event would be a draw event.
: What a Photon program is started it must first establish communication

: with the Photon kernel.  It then receives and emits these events
: by using QNX's message passing to the kernel.  The jump gate causes
: the Photon application to switch to another Photon kernel running
: on another cpu.  This all works quite easily as QNX's message
: passing works transparently over a network.

To add here: a graphics display driver also receives events, and in this

case renders them onto the screen.  An implication is that an embedded
system does not need hardware to display graphics on, just a program
which
catches render events and passes them on to the real device somehwere on

the net.  Event regions can be transparent or opaque, so by putting a
region between an app and the apps graphics region one can ditto or grab

the app depending on whether this new region is transparent or opaque.
This also simplifies building things like a screen saver/lock.

: While the former looks more impressive (it's possible to move
: that window between a Win95, a Unix, and a QNX system),
: the latter seems technically more impressive to me.
: In this demonstration what becomes clear is that while
: the "server" application can't move, the "client" photon
: can.  This could mean that as one moves geographically,
: one's applications could follow one around.

: --
: Mitchell Schoenbrun  --------- maschoen@pobox.com


--
David L. Hawley       D.L. Hawley and Associates    1(503)274-2242
Software Engineer                            dlhawley@teleport.com

========================================================================

From: Barry Millman 
Newsgroups: comp.os.qnx
Subject: Re: Explaining: moving a window from one comp to another
Date: Thu, 19 Nov 1998 11:38:37 -0500
To: "Sebastian Bähr" 

I explained this to a Windows-based neighbor of mine, and he responded
"why would they do this."  The answer is that they did not!

MS Windows has, what we may call one coordinate space...the size of your
display area.  The Photon coordinate
space (in PIXELS) is from (-32k, -32k)  to (+32k, +32k).  Sitting right
in the middle is (0,0).

Typically your first viewport sits at (0,0) to say (799,599) for 800 x
600 resolution.  If you were a MS Win user, that's all you would have.
You can put a million (exaggerated) windows in this area in Photon, as
you could in MS Win.

BUT Photon's coordinate space is much bigger.  We have viewports
(consoles or whatever you want to call them).  If you switch to console
(viewport) 2 by pressing Ctrl-Alt-2 (or other ways...) then your screen
is looking at (800,0) to (1599,600)  or whatever.  Maybe I got the
numbers messed up, but think of 9 little squares arranged in a 3x3 area.
Each square size is the resolution of your machine.  So as you switch
from one console to another you are switching the part of the coordinate
space you are viewing.

Now, it's easy for you to imagine that if I have a window in Viewport 1,
if I drag it to the right, then it will extend into viewport 2's space.
I can drag a window from one viewport to another still on the same
machine.

But remember this....I am just dragging the window around a big
coordinate space.  OK?  OK.

Now QNX, unlike the MS stuff is fully network distributed.  Photon,
beautifully architected to match the beautifully architected QNX, is
also network distributed.  So let's start up another node.

I don't want to run Photon on that node (someone else in this thread
mentined about the jump gate, but that lets another photon runner view
someone elses space).  You are interested in the dragging of the windos.

Node two is running, but now I start a graphics card driver.  (These
come with Photon...).  There are a zillion parameters to the graphics
drivers, but two are of interest here:

1.  What PHOTON SERVER (ie, on what node) do you want to get events
(info) from.  Well I want to see what's on Node 1, so I will say 1.

2.  Where in the coordinate space do you want this to map.  Since my
display is 800 by 600, I will map at (800,0) for my upper left display
corner.

When (if) this runs, your node 2 display is now looking at node 1, but
in the coordinate region starting at (800,0).  It's looking at Node 1's
second viewport.

Previously we talked about sliding a window around the coordinate
space.  Well, if I slide a window to where node 2 graphic driver is
looking, I now see the window on Node 2.

That is, in general how the "feature' is implemented.

What about the rest of the coordinate space (above and to the left of
(0,0)).  See  Star Trek Voyager...we both call it the Delta uadrant,
except that in Photon it is 3 quadrants.

Barry


Sebastian Bähr wrote:
>
> Hello!
>
> I read that during the Amiga (oh no, not again ;-) ) press conference
> QNX was demonstrated. They had two computers running QNX. Then the guy
> moved a application running on comp1 to comp2 just by dragging the
> window? Can somebody explain these technology? I don't know how to
> understand this.
> Thank you.
>
> SB

--
-----------------=================-----------------
You CAN create High-Performance QNX-Based Systems!
   Please visit us at http://www.igetitnow.com
---------------------------------------------------