Re: MPEG in GGI?

2000-04-21 Thread Rodolphe Ortalo



On Tue, 18 Apr 2000, Stefan Seefeld wrote:
 Well, from a practical point of view, how would I manage multiple input
 queues ? Given a list of visuals (as you seem to suggest) acting as window,
 I'd be forced into one thread per visual if I want to listen for events.

I had such a problem with OpenAmulet - and rearchitected LibGWT to a
simple scheme to solve it.
Basically, the main design is the following:
 - real input events (those from the user) come from the root window and
the application gets them THERE. The application may block on such
waiting.
 - expose events, or internally dispatched events can come from any
window event queue (I maintain a window list): they are polled.

I am NOT sure at all this behavior is The Right Thing to do, but I spent a
lot of time trying many solutions (except multithreading) and finally
switched to this simple solution because every other solution gave me
either a headache or horrible performance...

Just my 0.02

Rodolphe




Re: MPEG in GGI?

2000-04-19 Thread teunis

On 19 Apr 2000, Marcus Sundberg wrote:

 teunis [EMAIL PROTECTED] writes:

[clip]
  Okay.  Can someone -please- fold the event sources in fb/... out into GII?
  Seriously!
  or something?
 
 Huh? The input sources for the fbdev target are in LibGII.

No - they're initialized in fb's target.

mouse, keyboard, and all.

  Or suggest a target with the same event sources so I could dynamically
  start FB/X/... if I needed graphics?
 
 What is the problem? Exactly what is it that you want to do?

Be able to initialize GGI without setting a mode - leave it in default
state.
And to be able to go graphical if necessary.

Or better to be able to activate and deactivate GGI if necessary.  Say, on
a playlist of mpegs  some with video, some without.  :)

Now currently I just go graphical regardless.  (yah I know I should just
fold out the display/render part into another task and just select which
driver...)

But nonetheless it'd be very handy to be able to run the "linux console
GII init" without running GGI.
That automagically setup mouse, keyboard and all is -so- handy.

And I've been incompetent at writing GGI and GII drivers (though I -can-
fix them sometimes).

G'day, eh? :)
- Teunis




Re: MPEG in GGI?

2000-04-19 Thread Andrew Apted

Stefan Seefeld writes:

  Ok, let's assume that windows listen themselfs for events. Then there
  are cases where you want to draw into some 'output only' medium, a
  Pixmap in X. Since Pixmaps and Windows in X are the same for the purpose
  of output (drawing), they are generalized to 'Drawables'. That's precisely
  what I'm asking for.

Like SDL's "surfaces" ?  I.e. non-visible places to draw stuff, maybe
blitting them to the visible screen/window at some stage, right ?

LibGGI has nothing like that yet (I hope it will someday).  The
closest it comes is either using a large virtual area and drawing in
the off-screen parts, or using multiple frames and drawing in the
non-visible frame(s) using ggiSet{Read,Write}Frame.

  To reiterate it once more: I can completely see your point of wanting to
  glue input and output together. Yet I think The individual entities for
  input and output should be accessible, even instantiable, through the
  public API. You should not to be forced to by an input context just because
  you need an output context.

For an _application_ interface, I think it is reasonable to use this
concept of a "window" (also known as a "focus").

For something implementing that interface, like a windowing system,
yes it is reasonable for it to have direct access to the separate
input/output devices.

   Think of each ggi_visual as a window if it
   helps (under the X target, it actually _is_ a window).  Each "VT" on
   the console is also like a window (but text mode).
  
  Well, from a practical point of view, how would I manage multiple input
  queues ? Given a list of visuals (as you seem to suggest) acting as window,
  I'd be forced into one thread per visual if I want to listen for events.

Have some mechanism to "join" input queues.  Or poll.  Or broaden the
concept of "focus" to allow multiple actual windows.

Cheers,
__
\/   Andrew Apted  [EMAIL PROTECTED]
 




Re: MPEG in GGI?

2000-04-19 Thread Rubén

On 2000/Apr/19, Andrew Apted wrote:

 Like SDL's "surfaces" ?  I.e. non-visible places to draw stuff, maybe
 blitting them to the visible screen/window at some stage, right ?
 
 LibGGI has nothing like that yet (I hope it will someday).  The
 closest it comes is either using a large virtual area and drawing in
 the off-screen parts, or using multiple frames and drawing in the
 non-visible frame(s) using ggiSet{Read,Write}Frame.

It isn't so simple. In most cases the offscreen video memory won't
be enough for you, so, some bitmaps will be there and some other not. There
should be some cache-like system that keeps in the video mémory the most
frequently used bitmaps, and some algorithms to optimize the use of the
offscreen memory, too, because you will have external fragmentation... It's
not as trivial as it seems, this is the reason why GGL doesn't have support
for this stuff yet (although you can do manually if you are brave enough, of
course).

It would be nice if GGI can do this some day...
-- 
 __
 )_) \/ / /  email: mailto:[EMAIL PROTECTED]
/ \  / (_/   www  : http://programacion.mundivia.es/ryu
[ GGL developer ]  [ IRCore developer ]  [ GPUL member ]




Re: MPEG in GGI?

2000-04-19 Thread Andreas Beck

  Huh? The input sources for the fbdev target are in LibGII.
 No - they're initialized in fb's target.

Initialized yes ... but you can as well simply use LibGII only if you want
to get events without disturbing output.

It's pretty much a matter of opening the stuff LibGGI would open for you
yourself.

 Or better to be able to activate and deactivate GGI if necessary.  Say, on
 a playlist of mpegs  some with video, some without.  :)
 Now currently I just go graphical regardless.  

That's not a too bad idea, as for X you have to anyway, as you need a window
that will catch events to be used by your player (which you do want, if I
get you right). Of course you could as well just open the input-stdin
method, but that will only work when stuff is started from an xterm, not
if it is launched by the WM.

 But nonetheless it'd be very handy to be able to run the "linux console
 GII init" without running GGI.
 That automagically setup mouse, keyboard and all is -so- handy.

Yeah - that's one of the reasons why it's folded into LibGGI.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =




Re: MPEG in GGI?

2000-04-18 Thread Stefan Seefeld

Andrew Apted wrote:

 Personally, the idea of getting input "independently" of the output
 doesn't feel right.  The traditional "window" is a good abstraction,
 it is a place to draw stuff for the user, and a place to receive the
 feedback from the user.

But you don't listen to a window for events. You listen to the server
connection ('XDisplay') for events which *refer* to windows. A window -
as it is seen by the application - is completely unaware of events.

Ok, let's assume that windows listen themselfs for events. Then there
are cases where you want to draw into some 'output only' medium, a
Pixmap in X. Since Pixmaps and Windows in X are the same for the purpose
of output (drawing), they are generalized to 'Drawables'. That's precisely
what I'm asking for.

To reiterate it once more: I can completely see your point of wanting to
glue input and output together. Yet I think The individual entities for
input and output should be accessible, even instantiable, through the
public API. You should not to be forced to by an input context just because
you need an output context.

 Think of each ggi_visual as a window if it
 helps (under the X target, it actually _is_ a window).  Each "VT" on
 the console is also like a window (but text mode).

Well, from a practical point of view, how would I manage multiple input
queues ? Given a list of visuals (as you seem to suggest) acting as window,
I'd be forced into one thread per visual if I want to listen for events.

Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...




Re: MPEG in GGI?

2000-04-18 Thread Andreas Beck

   I have argued in the past for a more formal separation of LibGII
 from LibGGI.  This would decouple the event queues from ggi_visual(s).

Actually they are separated. LibGII provides all event functionality.

All that LibGGI does is automatically locate and load the approriate
"default" event sources for a given target.

After that you are free to do anything to them. Close them down (o.k. -
that's not strictly supported, but could be added easily, if required) join
more inputs, ...

  Sure, the notion of a window (as in X) is a combination
  since you can draw into it and be sensitive to events *for* it. 

   A window is just a particular set of rules for representing the
 contents of a particular graphics context.  Each window is bound to a
 ggi_visual in LibGWT and they route events amongst themselves just fine.

Yep. That is the idea, cube3d also shows how you can multiplex the event
streams. The apps on the sides of the cube get all fed by the main event
stream from the visual the cube is on.

  But this consideration should come *after* input and output logic has 
  been defined, i.e. a 'window' should then be constructed as, say, a 
  pair of a drawable and a 'hot region'.

This can be done easily in application context.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =




Re: MPEG in GGI?

2000-04-18 Thread Stefan Seefeld

Andreas Beck wrote:
 
  On a different note: the Berlin project will present itself
  on LinuxTag in Stuttgart this year, both, with a booth as
  well as in a talk. Does anyone from GGI intend to show up
  in Stuttgart ? May be we could meet and discuss various
  aspects of the above...
 
 When is it ?

The LinuxTag is from 29.06 to 02.07. in Stuttgart. See
www.linuxtag.org for more details.

Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...




Re: MPEG in GGI?

2000-04-18 Thread jont



According to me email software Stefan Seefeld wrote:

| Andrew Apted wrote:

|  Personally, the idea of getting input "independently" of the output
|  doesn't feel right.  The traditional "window" is a good abstraction,
|  it is a place to draw stuff for the user, and a place to receive the
|  feedback from the user.

| But you don't listen to a window for events. You listen to the server
| connection ('XDisplay') for events which *refer* to windows. A window -
| as it is seen by the application - is completely unaware of events.

The ability to listen to the display as a whole not just your own
window is a source of security problems (snooping/eavesdropping/...).
Of course if you can manipulate the event queue for more than your
window, you have kissed security goodbye.
[ Which is why X tags 'fake' events, but simply looking is frequently
too much. (cf "peeping toms") ]

| Ok, let's assume that windows listen themselfs for events. Then there
| are cases where you want to draw into some 'output only' medium, a
| Pixmap in X. Since Pixmaps and Windows in X are the same for the purpose
| of output (drawing), they are generalized to 'Drawables'. That's
| precisely what I'm asking for.

| To reiterate it once more: I can completely see your point of wanting to
| glue input and output together. Yet I think The individual entities for
| input and output should be accessible, even instantiable, through the
| public API. You should not to be forced to by an input context just
| because you need an output context.

Perhaps output 'structures' need to be generalised to deal with offscreen
bitmaps, but input should only be allowed in association with its "window".

- JonT

---
Jon Tidswell
Advanced OS Technology Group / Sawmill Linux Project
IBM TJ Watson Research Center 30 Saw Mill River Road, Hawthorne, N.Y. 10532

Email: [EMAIL PROTECTED]   Voice: +1 914 784 7550





Re: MPEG in GGI?

2000-04-18 Thread Stefan Seefeld

[EMAIL PROTECTED] wrote:

 | But you don't listen to a window for events. You listen to the server
 | connection ('XDisplay') for events which *refer* to windows. A window -
 | as it is seen by the application - is completely unaware of events.
 
 The ability to listen to the display as a whole not just your own
 window is a source of security problems (snooping/eavesdropping/...).

Note that I'm not out to defend X' architecure. X' shortcomings are
one reason for berlin's existence.

[...]

 Perhaps output 'structures' need to be generalised to deal with offscreen
 bitmaps,

my point exactly.

 but input should only be allowed in association with its "window".

what do you mean with 'its' ? Do you mean that each offscreen bitmap should
have a "window" it is associated with ? This would be what X refers to as
visual, i.e. a structure holding formatting info for pixels, colors etc.
Lots of windows can use the same visual. This makes my point since I'm arguing
that GGI's visual plays the role of all of them: drawawbles (which I might want
to have many), visuals (there might be a few) and event queues (generally
one, at least in a single threaded application).

Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...




Re: MPEG in GGI?

2000-04-18 Thread jont



Once upon a time I wrote:

 | But you don't listen to a window for events. You listen to the server
 | connection ('XDisplay') for events which *refer* to windows. A window -
 | as it is seen by the application - is completely unaware of events.

 The ability to listen to the display as a whole not just your own
 window is a source of security problems (snooping/eavesdropping/...).

...

 Perhaps output 'structures' need to be generalised to deal with offscreen
 bitmaps,
 but input should only be allowed in association with its "window".


I believe Stefan Seefold responded:

| what do you mean with 'its' ? Do you mean that each offscreen bitmap
should
| have a "window" it is associated with ? This would be what X refers to as
| visual, i.e. a structure holding formatting info for pixels, colors etc.

An offscreen bitmap can't get input. :-)

[ Damn. I need to reread the GGI terminology. ]

When I say window, I mean something the user understands as a window, not
an internal data structure used for OO style GUI development.

I meant that input should _still_ be associated with a particular window,
even if output was generalised.

I see the problem in X/Win32/MacOS because the internal 'window'-list is
reused
as a user visible 'window'-list allowing applications to see 'windows' that
belong
to other applications.

And two different user-'windows' should not share event queues.

| Lots of windows can use the same visual. This makes my point since I'm
arguing
| that GGI's visual plays the role of all of them: drawawbles (which I
might want
| to have many), visuals (there might be a few) and event queues (generally
| one, at least in a single threaded application).

This has unfortunately wandered.
I was responding in the context of XDisplays, where X has multiple windows
from
multiple applications.

- JonT





Re: MPEG in GGI?

2000-04-18 Thread Jan Kneschke

On Mon, Apr 17, 2000 at 11:39:35AM -0400, Stefan Seefeld wrote:
 
 On a different note: the Berlin project will present itself 
 on LinuxTag in Stuttgart this year, both, with a booth as 
 well as in a talk. Does anyone from GGI intend to show up 
 in Stuttgart ? May be we could meet and discuss various 
 aspects of the above...
I'll be there. I would be pleased to meet someone from the list there at
stuttgart.
 
 Regards,  Stefan

thats all
  Jan

--- 
  -)=  Jan Kneschke -- Kiel -- Germany -- http://www.kneschke.de =(-




Re: MPEG in GGI?

2000-04-18 Thread Marcus Sundberg

teunis [EMAIL PROTECTED] writes:

 On Tue, 18 Apr 2000, Andreas Beck wrote:
 
 I have argued in the past for a more formal separation of LibGII
   from LibGGI.  This would decouple the event queues from ggi_visual(s).
  
  Actually they are separated. LibGII provides all event functionality.
  
  All that LibGGI does is automatically locate and load the approriate
  "default" event sources for a given target.
  
  After that you are free to do anything to them. Close them down (o.k. -
  that's not strictly supported, but could be added easily, if required) join
  more inputs, ...

Hmm, one very interresting point Stefan has risen is that of how
to know what visual an event is associated with in case you have
joined events from several visual together. Sure you could check
the origins of the event sources for each visual before joining
them, but that would be really combersome.

We really should have a "visual" element in the events. It would
break binary compability, but as you just need a recompile I think
it's worth it, unless someone has a better solution?

 Okay.  Can someone -please- fold the event sources in fb/... out into GII?
 Seriously!
 or something?

Huh? The input sources for the fbdev target are in LibGII.

 Or suggest a target with the same event sources so I could dynamically
 start FB/X/... if I needed graphics?

What is the problem? Exactly what is it that you want to do?

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]




Re: MPEG in GGI?

2000-04-18 Thread Andreas Beck

 The LinuxTag is from 29.06 to 02.07. in Stuttgart. 

Looks good. It's on a WE, so it might be well possible.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =




Re: MPEG in GGI?

2000-04-17 Thread Andreas Beck

   smpeg runs on top of SDL, which runs on top of GGI, shouldn't be
 very difficult to make a wrapper that makes user think that is running
 directly on top of GGI. 

That's not quite the point. I think one should try to separate the
displaying part from the decompression part. I would e.g. like to have a
simple player lib that can be accessed from a special hardware-hitting
program I use to produce video output on my card, as well a a conversion
program to my native video format.

 But there is a problem with C++, how can you make an extension that uses 
 C++ ? 

I have no idea. 

 AFAIK if you try to resolve a function name compiled with C++ from libdl, 
 it doesn't run... 

Maybe one has to manually demangle the function parameters ?

 Maybe could be done with 'extern "C" {' ?

Probably, if the callable functions don't use C++-Features, that should
work.

   Which library can play mpeg2?

Search on freshmeat for "xmovie". Should send you to the right site.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =




Re: MPEG in GGI?

2000-04-17 Thread teunis

On Sun, 16 Apr 2000, Andreas Beck wrote:

  I've downloaded libsmpeg, and after seeing the API, I have seen two
  things that I dislike:
  * it needs SDL
  * it is in C++
  Is somebody porting the code of this library to a pure C version
  based only on GGI maybe into an extension or something?
 
 I think there are many people here interested in having movie playing
 supported by GGI. Maybe they could all speak up and form a team.
 
 There are player libs out there for mpg2, mpg and qt at least. What should
 be done is make a LibGGI-like wrapper for them that would give them a
 unified API and make it easy to use them from any graphics lib, especially
 LibGGI.

FINALLY there's interest :)
*giggle*

Okay, I'm going to rewrite that player I've been playing with anyways now
that I'm done classes.

MPEG2 - what should I use as a source?  My current copy of xmovie does
-not- work for colours.  Everything else though.  I haven't looked into
it.
(aside: I currently have the code for this already implemented - it plays
mp3's beautifully :)
[actually, with the player structured the way I have, it's more
 CPU-efficient with mp3's than mpg123 :]

I was planning on using SMPEG for the mpeg player.  The only real prob I
have with this is I have mpegs that crash it :)

The problems with GGI:
I need events handling even when video is not enabled.
(either that or FB/target needs to default to current layout and
talk to the current "text" mode :)
[this is the only driver I'm aware of that has a problem]
- basically, if I try to watch the keyboard,mouse,...
   without activating GGI, Bad Things Happen.
   If I run GGI/fb with X running, my computer locks up.

   I -like- my mp3 player but I don't like crashing.
   And I don't always need video display.  ideas?

Threading is mandatory.  This hasn't been a problem in FB but X...
- solution: make the display a client
- problem:  event handling has to be in the client too
- problem:  sharing the rendered memory with the client
efficiently

Any ideas?
I -do- have working code on my page at www.geocities.com/winterlion.
But it's old and needs repair.
I got frustrated trying to stablise the memory system so I went back to
school a bit

Help, ideas, anything?
Does anyone else have a -better- way of writing this?

G'day, eh? :)
- Teunis




Re: MPEG in GGI?

2000-04-17 Thread Stefan Seefeld

Speaking about video and animation, may I come back to
a suggestion I had a couple of weeks back ?

I proposed to separate the 'Visual' structure into a
'Drawable' and a part concerned about event handling.
The argument is quite in line with Andreas' request to
refactor functionality in decompressing and drawing:
Drawing and event handling have *nothing* to do with 
each other. My reason to ask this is that I'd like to
see one day a 'drawable store' manager able to allocate 
any number of Drawables which I can draw into and then 
copy from one into another etc. However, there's always 
just one event listener.
Berlin currently uses one Visual to draw into (via GGIMesa
or libArt) but I'd like to have offscreen drawables which
I can draw animations, videos and other things into before
I blend them into the scene graph. Even animated pointers
could be handled this way.
The manager I'm talking about would then inspect the
amount of accessible video memory and allocate either from
that or, if it runs out of vram, from normal heap.

On a different note: the Berlin project will present itself 
on LinuxTag in Stuttgart this year, both, with a booth as 
well as in a talk. Does anyone from GGI intend to show up 
in Stuttgart ? May be we could meet and discuss various 
aspects of the above...

Regards,Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...




Re: MPEG in GGI?

2000-04-17 Thread teunis

On Mon, 17 Apr 2000, Stefan Seefeld wrote:

 Speaking about video and animation, may I come back to
 a suggestion I had a couple of weeks back ?
 
 I proposed to separate the 'Visual' structure into a
 'Drawable' and a part concerned about event handling.
 The argument is quite in line with Andreas' request to
 refactor functionality in decompressing and drawing:
 Drawing and event handling have *nothing* to do with 
 each other. My reason to ask this is that I'd like to
 see one day a 'drawable store' manager able to allocate 
 any number of Drawables which I can draw into and then 
 copy from one into another etc. However, there's always 
 just one event listener.

[clip as I don't want to get thwapped for excessive quoting :]
 The manager I'm talking about would then inspect the
 amount of accessible video memory and allocate either from
 that or, if it runs out of vram, from normal heap.
[okay 'nuff clipping now]

Completely agreed 100%

The original reason I suspect for the event handling and drawing to be
merged was X, where this is necessary.

It certainly is -not- in FB/KGI/... however it makes a good default
starting point for the drivers.

I don't know what the rest o' y'all think about this though :)

G'day, eh? :)
- Teunis




Re: MPEG in GGI?

2000-04-17 Thread Stefan Seefeld

teunis wrote:

 The original reason I suspect for the event handling and drawing to be
 merged was X, where this is necessary.

No. Even in X you can allocate an 'XPixmap' which is a 'XDrawable' without
any attached event queue. In X you need one 'XDisplay' representing the
connection and all global (singleton) data such as an event queue. However,
Drawables (Windows or Pixmaps) you can allocate as many as you please.

Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...




Re: MPEG in GGI?

2000-04-17 Thread Marcus Sundberg

Andreas Beck [EMAIL PROTECTED] writes:

  But there is a problem with C++, how can you make an extension that uses 
  C++ ? 
 
 I have no idea. 
 
  AFAIK if you try to resolve a function name compiled with C++ from libdl, 
  it doesn't run... 
 
 Maybe one has to manually demangle the function parameters ?
 
  Maybe could be done with 'extern "C" {' ?
 
 Probably, if the callable functions don't use C++-Features, that should
 work.

Well, GGIdlentry() will hardly require any C++ features, so one
simply declares it as extern "C" and there is no problem.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]




Re: MPEG in GGI?

2000-04-17 Thread Christoph Egger



On Mon, 17 Apr 2000, Stefan Seefeld wrote:

 teunis wrote:
 
  The original reason I suspect for the event handling and drawing to be
  merged was X, where this is necessary.
 
 No. Even in X you can allocate an 'XPixmap' which is a 'XDrawable' without
 any attached event queue. In X you need one 'XDisplay' representing the
 connection and all global (singleton) data such as an event queue. However,
 Drawables (Windows or Pixmaps) you can allocate as many as you please.

If I understood you correctly, you want to have a visual _without_ any
attached event queue, right?
If so, I think there should be an option to detach it, if there isn't 
already one...

Christoph Egger
E-Mail: [EMAIL PROTECTED]




Re: MPEG in GGI?

2000-04-17 Thread Christian Reiniger

Andreas Beck wrote:

 Maybe could be done with 'extern "C" {' ?

Probably, if the callable functions don't use C++-Features, that should
work.

*In* these functions you can use C++ features to you heart's content, as
long as the function's signature looks C-ish (i.e. you don't pass objects
etc).


Christian
-- 
Christian Reiniger
Coordinator/Coder, PenguinPlay (http://sunsite.auc.dk/penguinplay/)
Coordinator,   LGDC(http://sunsite.auc.dk/lgdc/)

Error: Windows not found - (C)heer (P)arty (D)ance




Re: MPEG in GGI?

2000-04-17 Thread Marcus Sundberg

Stefan Seefeld [EMAIL PROTECTED] writes:

 Speaking about video and animation, may I come back to
 a suggestion I had a couple of weeks back ?
 
 I proposed to separate the 'Visual' structure into a
 'Drawable' and a part concerned about event handling.
 The argument is quite in line with Andreas' request to
 refactor functionality in decompressing and drawing:
 Drawing and event handling have *nothing* to do with 
 each other.

Sure they do, how else would you know what happens to the visual?
Expose events and such.

Besides I'm not really sure what you mean by separating out the
event handling from the visual structure. Of the whole ggi_visual_t
there is one single pointer related to event handling, isn't that
separated enough for you?

 My reason to ask this is that I'd like to
 see one day a 'drawable store' manager able to allocate 
 any number of Drawables which I can draw into and then 
 copy from one into another etc. However, there's always 
 just one event listener.
 Berlin currently uses one Visual to draw into (via GGIMesa
 or libArt) but I'd like to have offscreen drawables which
 I can draw animations, videos and other things into before
 I blend them into the scene graph. Even animated pointers
 could be handled this way.
 The manager I'm talking about would then inspect the
 amount of accessible video memory and allocate either from
 that or, if it runs out of vram, from normal heap.

A manager for video memory will be implemented in LibGGI soon,
Andy and I have just talked about that. This will make it simple
to implement an extension for offscreen images.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]




Re: MPEG in GGI?

2000-04-17 Thread teunis

On 18 Apr 2000, Marcus Sundberg wrote:

 Stefan Seefeld [EMAIL PROTECTED] writes:
 
  Speaking about video and animation, may I come back to
  a suggestion I had a couple of weeks back ?
  
  I proposed to separate the 'Visual' structure into a
  'Drawable' and a part concerned about event handling.
  The argument is quite in line with Andreas' request to
  refactor functionality in decompressing and drawing:
  Drawing and event handling have *nothing* to do with 
  each other.
 
 Sure they do, how else would you know what happens to the visual?
 Expose events and such.
 
 Besides I'm not really sure what you mean by separating out the
 event handling from the visual structure. Of the whole ggi_visual_t
 there is one single pointer related to event handling, isn't that
 separated enough for you?

I don't know what Stefan's reasons are, but mine are simple.  If I want to
use GGI's event mechanism (and I mean GGI not GII), I'd like to be able to
select (no output, use stdout for now) and then switch to (have output) at
some point.  Basically, I'd like to be able to enable and disable output
to fbdev.  I don't have this problem with any other driver
(if FB gets initialized when X is running my system halts.  I need the
event system initialized though before that point.  What can I do?)

So my problem's FB/specific whereas his is a little more general.
Actually I'm kind of wondering what he means too?

 A manager for video memory will be implemented in LibGGI soon,
 Andy and I have just talked about that. This will make it simple
 to implement an extension for offscreen images.

PLEASE! :) :) :)

ps: glide has one in their source... it's necessary for handling
texture,double buffer, and so forth...

G'day, eh? :)
- Teunis




Re: MPEG in GGI?

2000-04-17 Thread Jon M. Taylor

On Mon, 17 Apr 2000, Stefan Seefeld wrote:

 Speaking about video and animation, may I come back to
 a suggestion I had a couple of weeks back ?
 
 I proposed to separate the 'Visual' structure into a
 'Drawable' and a part concerned about event handling.

In LibXMI, there is the concept of a drawable, which is a unit of
display context which contains a ggi_visual (physical drawable context)
and a set of 2D drawing context elements (line/arc styles,
source/destination pixmap structs for ROP blits, etc).  This sounds sort
of linke what your proposal is asking for

 The argument is quite in line with Andreas' request to
 refactor functionality in decompressing and drawing:
 Drawing and event handling have *nothing* to do with 
 each other. 

Only in the sense that they are often bound to the same unit of
human/machine interaction context.  The right answer is to separate out
the context handling into its own API system, which is basically what
GGI/GII _is_.  You can argue that the context unit should not be
artificially bound to the concept of graphics or events coming from input
devices, as you have done, but the fact that the word 'graphics' is what
the middle 'G' in 'GGI stands for is really a historical artifact at this
point |-.  We manage contexts, resources and events these days.

 My reason to ask this is that I'd like to
 see one day a 'drawable store' manager able to allocate 
 any number of Drawables which I can draw into and then 
 copy from one into another etc. However, there's always 
 just one event listener.

You can route and massage GGI events coming from one visual to
others in a peer-to-peer format or a treelike hierarchical format.  A
'listener' is whatever the higher-level code like Berlin wants it to be.  
It really makes sense to consider the ggi_visual as a universal unit of
human-machine interaction context.  You can encapsulate arbitrary typed
subcontext units within a ggi_visual, so it is easy to use it to implement
a sort of runtime polymorphic context object system!

 Berlin currently uses one Visual to draw into (via GGIMesa
 or libArt) but I'd like to have offscreen drawables which
 I can draw animations, videos and other things into before
 I blend them into the scene graph. 

LibXMI should have what you need.  The pixmap (sub-bitmap) system
is still a bit fragile, but it's all there and should work.  LibGWT will
let you turn a ggi_visual into a "window" (= whatever you want) and route
events around between them.

 Even animated pointers
 could be handled this way.

Yup.  Just allocate a memory visual and use it as a pixmap cache
for pointers, stipples, GUI backing storage, etc.

 The manager I'm talking about would then inspect the
 amount of accessible video memory and allocate either from
 that or, if it runs out of vram, from normal heap.

That's different.  This is sort of using the video memory as a
special-purpose colored cache, and requires a LOT of help from the OS.  
We aren't too likely to see that too soon, so I think it makes more sense
right now to just allocate framebuffer memory and manage it all in
userspace.  A perfectly adequate job can still be done.

Jon 

---
'Cloning and the reprogramming of DNA is the first serious step in 
becoming one with God.'
- Scientist G. Richard Seed




MPEG in GGI?

2000-04-16 Thread Rubén

I've downloaded libsmpeg, and after seeing the API, I have seen two
things that I dislike:
* it needs SDL
* it is in C++

Is somebody porting the code of this library to a pure C version
based only on GGI maybe into an extension or something?
-- 
 __
 )_) \/ / /  email: mailto:[EMAIL PROTECTED]
/ \  / (_/   www  : http://programacion.mundivia.es/ryu
[ GGL developer ]  [ IRCore developer ]  [ GPUL member ]




Re: MPEG in GGI?

2000-04-16 Thread Andreas Beck

 I've downloaded libsmpeg, and after seeing the API, I have seen two
 things that I dislike:
   * it needs SDL
   * it is in C++
   Is somebody porting the code of this library to a pure C version
 based only on GGI maybe into an extension or something?

I think there are many people here interested in having movie playing
supported by GGI. Maybe they could all speak up and form a team.

There are player libs out there for mpg2, mpg and qt at least. What should
be done is make a LibGGI-like wrapper for them that would give them a
unified API and make it easy to use them from any graphics lib, especially
LibGGI.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =