| | Logging Started : Sun Jun 14 11:49:16 EDT 1998 |
|
toddf:
|
hrm, when would that b e relative to now?
|
| | RangeRick (syntax@1Cust25.tnt1.bloomington.il.da.uu.net) has joined channel #ggi |
|
graydon:
|
Hey rick
|
|
RangeRick:
|
howdy
|
|
toddf:
|
hrm, reladed the zone now .. helps lots .. duh .. I forgot to do that .. thanks, core!
|
|
core:
|
graydon: i will let you log the session, i have a stupid appointment in exactly 1 hour [but i'm not really needed for libggi2D/gwt etc, more for coordination and making sure the server worked]
|
|
core:
|
toddf: you're welcome :)
|
| | graydon is already logging. |
|
core:
|
okay, well, shall we start? :)
|
|
graydon:
|
anyone having trouble accessing the GGI cvs server?
|
| | fries (~todd@lighthouse.fries.net) has joined channel #ggi |
| | Mode change "+o fries" on channel #ggi by core |
|
graydon:
|
It's giving me a delightfully weird error
|
|
Macarena:
|
Graydon: Had on friday, but all well again since saturday.
|
|
tan:
|
graydon: I've no problems
|
|
core:
|
graydon: there were some problems early this week related to my stupidity of managing domains, but now it should work
|
| | Signoff: toddf (Leaving) |
|
Macarena:
|
graydon: What happens ?
|
|
ortalo:
|
tan : why do you need to "fake an API" change in ggi2DOpen ?
|
|
graydon:
|
cvs server: failed to create lock directory in repository `/projects/ggi/cvsdevel/CVSROOT': Permission denied
|
| | jws (joe@pandora.earthlight.co.nz) has joined channel #ggi |
|
graydon:
|
cvs server: failed to obtain dir lock in repository `/projects/ggi/cvsdevel/CVSROOT'
|
|
ShadowX:
|
graydon: hope you have a right CVSROOT
|
|
graydon:
|
:pserver:guest@cvs.ggi-project.org:/projects/ggi/cvsdevel
|
| | graydon was using it fine up until, erm, maybe friday night (?) |
|
core:
|
graydon: hmm (you should use todd's anonymous repository in the USA, but..)
|
|
fries:
|
heh.
|
|
core:
|
i know where that comes from, but i don't know why it would do it again now :)
|
|
fries:
|
graydon: does it abort at that point or wait and retry?
|
|
graydon:
|
whatever. Someone who is authoritative, give me an email address and I'll resolve it afterwards. It shouldn't hold up a meeting ;)
|
|
fries:
|
graydon: I think core has his CVSROOT setup so you can't get it
|
|
core:
|
graydon: does it work now?
|
|
tan:
|
ort: you mean "API change"? -> to load the libs
|
|
fries:
|
graydon: todd@fries.net :-)
|
|
core:
|
graydon: i manage the repository (i'm Emmanuel)
|
|
graydon:
|
core: yeah, working fine now. thanks
|
|
ortalo:
|
tan: yes, but why at this time (it should n't be triggered by libggi?)
|
|
core:
|
graydon: no problem :)
|
|
core:
|
graydon: what are you doing actually? cvs checkout degas?
|
|
graydon:
|
just cvs update on degas
|
|
tan:
|
ort: no. the libs must loaded on ggi2dopen so that you start drawing after the call
|
|
core:
|
graydon: ah, hrm, okay. well it will work now :)
|
|
fries:
|
graydon: the prob is you must 'cd degas; cvs update' to do that
|
|
Macarena:
|
ortalo: Done on purpose to keep things flexible.
|
|
core:
|
anyway - Andreas, Graydon, lead the path.
|
|
fries:
|
graydon: otherwise you 'grab' everything ELSE in the repository besides degas
|
|
fries:
|
which includes CVSROOT
|
|
ortalo:
|
tan,mac: okay.
|
|
graydon:
|
ah. ok
|
|
Macarena:
|
O.K. - as we don't have many really GGI-related issue, I'll leave it to graydon, which probably knows the GGI<->Berlin things best - right ?
|
|
graydon:
|
Is uwe here?
|
|
Mat:
|
Nope
|
|
fries:
|
I don't see him as uwe
|
|
graydon:
|
drat
|
|
core:
|
graydon: we wish.. he'd be useful for mesaGGI.
|
|
fries:
|
am I wrong? I thought uwe also did dosemu?
|
|
Macarena:
|
graydon: I can probably help out a bit here ...
|
|
graydon:
|
the next major issue for me is to get mesaGGI moved up to current version numbers so that someone other than myself with my screwy old libggi can use berlin..
|
|
fries:
|
or am I thinking of another person with the same name
|
|
tan:
|
fries: IIRC he did a allegro/dos port
|
|
graydon:
|
iirc it was uwe who did the mesaGGI patch
|
|
core:
|
Uwe Maurer did mesaGGI, yes
|
|
tan:
|
graydon: me too. I know much of the mesa internals...
|
|
Macarena:
|
graydon: right ...
|
|
core:
|
and apparently andreas beck (macarena :) and thomas tanner (tan :) can help you too.
|
|
graydon:
|
cool, so I guess I have enough people here to ask for criticism about the idea of using mesa as an imaging layer for berlin, rather than libggi2d + libgwt ++
|
| | bri (~root@uislr1p6.umassp.edu) has joined channel #ggi |
| | Mode change "+o bri" on channel #ggi by core |
|
ortalo:
|
graydon: how do you use berlin currently without libgwt ?
|
|
core:
|
hello brian :)
|
|
bri:
|
Hi,
|
|
fries:
|
graydon: my thoughts would be 'wow, cool!' .. then we can have true 3d window managers that rotate cubes with applications on each side, etc ..
|
|
graydon:
|
ortalo: yes, the most recent version in CVS speaks to mesaGGI, which in turn goes to libGGI
|
| | bri yawns, having just woke up |
|
core:
|
graydon: if you mean, even for 2D, well, irix does that, and their desktop gets everyone to pant
|
|
RangeRick:
|
:)
|
|
ortalo:
|
so mesaGGI manages the windows ?
|
|
graydon:
|
ortalo: yes.
|
|
ortalo:
|
I guess then you don't have a window for each widget ?
|
|
graydon:
|
ortalo: the only thing I'm having difficulty with was pointed out by the mesa author, which is that doing traditional rectangular clipping is kinda expensive
|
|
graydon:
|
ortalo: no, I have a mesa display-list for each widget, which is in turn composed of calllists() calls to its children.
|
|
fries:
|
graydon: what is non-traditional that isn't expensive?
|
|
tan:
|
graydon: opengl is well suited for 3d and some 2d, but IMHO not for WinSystems
|
|
graydon:
|
ortalo: it turns out to be very simple to code that way :)
|
|
graydon:
|
tan: ok, elaborate. Why not?
|
|
ortalo:
|
garydon: you mean from the application level ?
|
|
fries:
|
tan: is that because of older hw? new accelerated hw will make it easily possible
|
|
core:
|
graydon: GL doesn't really have provisions for moving regions without redrawing them, etc, though.. not?
|
|
graydon:
|
ortalo: no, the application has no clue it's using openGL.
|
|
tan:
|
graydon: it lacks arc/circles/ellipses, font handling
|
|
ortalo:
|
graydon: then why do you say it is easy ?
|
|
graydon:
|
ortalo: it's easy to implement widgets that way, in side the display server.
|
|
core:
|
fries: the hardware is here (ie. my SGI Crime board :), but the price is the showstopper
|
|
tan:
|
graydon: IMO QuickDrawGX is better for GUIS
|
|
graydon:
|
tan: erm, it has curves of all sorts, and the fonts we are working with the gltt guy to add.
|
|
Macarena:
|
graydon: Are your widgets "real-3D", then ?
|
|
graydon:
|
tan: ah, but there is no free quickdrawGX :)
|
|
tan:
|
graydon: yes, but a spanish guy wanted to create one IIRC
|
|
graydon:
|
macrena: well, right now I'm playing with borrowed code from moonlight's GUI, which just simulates 3d with pixmaps and lines, like most WMs.
|
|
fries:
|
core: heh. I'm just thinking of the future. How long will it be before someone comes out with, instead of a traditional 2d with shading to make it look like 3d windowing environment, a windowing environment you can navigate in 3d and rotate applications in 3d and have a button cube you can rotate, etc ..
|
|
graydon:
|
tan: he did. I just haven't seen any code.
|
|
tan:
|
graydon: i suggest you use opengl for now, but later quickdrawgx or other apis...
|
|
graydon:
|
tan: the entire decision was based on availability of code (and hw accel chips), not necesarily technical supremacy.
|
|
core:
|
fries: as long as it will take to make it usable. 3D windows are fun, but aren't very useful. think about 3D platform games, and how long it took them to make them as playable as 2D ones
|
|
graydon:
|
tan: yeah, I have no problem there. Just, y'know, some guy asked why we were bothering to reimpliment all this stuff that's already available in mesa, and I had no good answer why not.
|
| | Signoff: asvogler (Leaving) |
| | asvogler (~duff@vortex.hawo.stw.uni-erlangen.de) has joined channel #ggi |
|
tan:
|
graydon: i mean, don't you fix to a certain api
|
| | Mode change "+o asvogler" on channel #ggi by core |
|
ortalo:
|
graydon: how do you manage windows overlapping, exposure events, etc... ? (Don't know Mesa API very well.)
|
|
graydon:
|
core: agreed. I haven't seen a strong motivating example for "rotating things in 3-space" GUIs yet.
|
|
Macarena:
|
ortalo: I suppose by just arraging the planes in 3D space ?
|
|
fries:
|
graydon: here's one: 1st guy who does that sents the precedence for others and goes down in history books??
|
|
tan:
|
graydon: that also means that you must add networking support to ggi
|
|
graydon:
|
tan: the api we export to apps is "warsaw", which is more abstract than a given imaging model.
|
|
core:
|
graydon: yes, that's what i mean. if the learning curve is steeper and it's less usable, there's no point.. that's why all those movies with people using sensitive gloves to move their files in 3D made me laugh :P
|
|
tan:
|
graydon: ah. ok.
|
|
graydon:
|
fries: sure, I just literally mean I have *no ideas* for 3d components.
|
|
fries:
|
tan: what makes you suggest networking for ggi?
|
|
core:
|
i like to have a global vision on one desktop, without having to shuffle things around, but that's just me.
|
|
core:
|
tan: ggi doesn't have to be network transparent, it's just the local rendering system. i don't know much about Berlin, but it uses corba, which does the network-transparent stuff.
|
|
graydon:
|
tan: warsaw is in terms of "widgets" -- although we'll probably add in a set of objects for talking to the imaging api directly as well, in which case yeah, a change of underlying api would break those apps which talked to OpenGL.. can't help that.
|
|
fries:
|
greydon: I had this dream once. it had a stadium type of picture, but wasn't detailed enough to see seats, etc .. and you could fly around in it, and as you moved your mose over the various sections they sunk in with a 'kuh-thud' and highlighted themselves .. and you swirled around and saw on the horizon tons of other things to interact with
|
| | weigon (weigon@pppm09.kiel.netsurf.de) has joined channel #ggi |
|
core:
|
fries: but if it takes half an hour to get to your files, that's annoying ;)
|
|
core:
|
creating a GUI is an huge work - you can't set many things in stone. some people will want the 3D flying widgets, and some others just the plain desktop. you have to implement both somehow, i guess.
|
|
tan:
|
graydon: I see
|
|
fries:
|
core: of course shortcuts and useful interaction would be a goal .. but for me to be able to 'back up' and have everything shrink in size would be useful in and of itself!
|
| | Mat is away: (Auto-Away after 10 mins) [BX-MsgLog On] |
| | Mat is back from the dead. Gone 0 hrs 0 min 5 secs |
|
core:
|
programmers setting things in stone has led to many rewrites.
|
|
tan:
|
graydon: are there any problems with mesaggi?
|
|
fries:
|
core: of course shortcuts and useful interaction would be a goal .. but for me to be able to 'back up' and have everything shrink in size would be useful in and of itself!
|
|
graydon:
|
fries: the intent with berlin is that if the user is a newbie, or has the horsepower to do that, they can swap in components which act that way, and anyone asking for a window just hapens to get a pane on a 3d stadium floor..
|
|
fries:
|
graydon: ok now I am very happy
|
|
RangeRick:
|
:)
|
|
core:
|
graydon: sounds like something i am working on [unrelated], so i like the idea.
|
|
fries:
|
graydon: so you would allow windows to be dealt with as true 3d components, with appropriate 'distortions' for seeing them at angles and such?
|
|
graydon:
|
'course, the guys who still use vi and /bin/sh at work will not want that, and so (hopefully) they can load up "ultraminimalWidgets" which all respond to single character commands, and disable the mouse entirely :)
|
|
ortalo:
|
graydon: what are the things that ANNOY you when using MesaGGI as the drawing layer ? You seem pretty happy from that choice in fact currently so... What are the drawbacks you suspect ? (hint: maybe some performance drawback ? [other hint: maybe an HEAVY])
|
|
graydon:
|
fries: that's done by OpenGL
|
|
graydon:
|
ortalo: I am very concerned about performance issues, yes.
|
|
fries:
|
graydon: only because everything is drawn by using mesa widgets .. coolies
|
|
graydon:
|
ortalo: one of the things I wanted to discuss with people here who perhaps know things abotu video cards is how to achieve performance.
|
|
core:
|
graydon: do you still intend to use [mesa]GGI as your lowlevel API everywhere?
|
|
graydon:
|
core: until suitable arguments against it are presented, I think so..
|
|
core:
|
graydon: ok :)
|
|
Silk:
|
anyone have an idea how does software-emulation-mesaggi compares in terms of speed to software-emulation-mesaglx?
|
|
RangeRick:
|
hrm... maybe more useful for more people would be to be inside a cube, the current "selected" desktop would be in the back wall, and other virtual desktops would be along the sides, top, and bottom :)
|
|
graydon:
|
ortalo: one nice thing about OpenGL is that you "compile" display lists before running them. Literally, the API has a "compile" mode you throw it into before calling draw commands.
|
|
fries:
|
graydon: let's say, I have a 386 with 256k mem video hardware. will there be something avail to allow it to be usable like 'turn off all cool 3d effects and shading' widgets?
|
|
RangeRick:
|
but either way, that's quite a bit in the distance right now :)
|
|
core:
|
silk: Steffen Seeger did hand-optimized code that ran in circles around any other implementation, but it never got commited. we'll ask him..
|
|
ortalo:
|
The problems I see is when doing multi-windowed app., or exploiting the regioning code (e.g. to setup a word processor appearance.)
|
|
graydon:
|
fries: yeah, you should be able to fallback to something very mundane == easy on the CPU
|
|
tan:
|
core: i helped him. i modified mesa so that we can include his code. that's why i know the mesa internals ;)
|
|
ortalo:
|
(NB: But, here I want to be the devil's advocate. :-)
|
|
core:
|
yes - an operating system or windowing system should help you to work, not hinder your system :)
|
|
fries:
|
graydon: ok so we have a terminal emulator .. so up 'grows' a 3270 terminal complete with keyboard and display that one could rotate around and look at for grins .. and then sit infront of and start interacting with .. heh ..
|
|
graydon:
|
yeah, steffen was talking about run-time relinking of parts of mesa, in order to collapse branches and remove checks.
|
|
core:
|
tan: ah, okay, good :) any clue if he's going to commit that sometime soon?
|
|
RangeRick:
|
fries: cool, but rather useless :)
|
|
Silk:
|
core: yes, I suspect there's a lot of room for optimisation in Mesa's soft-primitive code (which is written in C).
|
|
fries:
|
rangerick: I've got 'cpu/hw accellerated 3d' on the brain today
|
|
core:
|
graydon: yes, i saw that working about 6 months ago (not running on mesa at the time)
|
|
RangeRick:
|
although it may be cool to flip a window over and have configuration on the back :)
|
|
graydon:
|
and the "compile" phase supports that very nicely. You get back a handle to code which does your drawing mode, and nothing else, so it should run very fast.
|
|
fries:
|
range: hehehe
|
|
core:
|
silk: steffen wrote self-recompiling code for it in assembler, it was TIMES faster
|
|
tan:
|
core: no. AFAIK he's quite busy now and it has low priority for him right now.
|
|
ortalo:
|
Have you tried to draw 300 overlapping rectangles in a window and then show/hide the window ? What is the drawing time ?
|
|
core:
|
tan: what is he busy with?
|
|
tan:
|
core: kgi and xaa AFAIK
|
|
graydon:
|
ortalo: I have been unable to benchmark mesa at the moment, as any numbers I obtained would be terribly depressing.
|
|
core:
|
tan: ah, ok.. we haven't got news from him for a long time, except some answers on the list.
|
|
graydon:
|
ortalo: reason: I am running uwe's original patch, which only uses putpixels()
|
|
tan:
|
core: wait! we don't now whether this technique is really faster
|
|
graydon:
|
ortalo: and then I am displaying *back* into the X target so I can develop next to xemacs
|
|
graydon:
|
ortalo: so it's miserably slow.
|
|
ortalo:
|
graydon: okay. So, in fact personnally, the only problem I see with Mesa is that perf. problem.
|
|
graydon:
|
ortalo: me too.
|
|
tan:
|
core: s/now/know/
|
|
ortalo:
|
But in fact, you know, I like the whole idea.
|
|
core:
|
graydon: there's a lot of room for optimization in mesaGGI- that's why i sort of hoped Berlin would work on it :)
|
|
graydon:
|
ortalo: but -- ever used a voodoo chip?
|
| | graydon makes an evil grin |
|
core:
|
graydon: voodoo is terrible at 2
|
|
core:
|
s/2/2D/
|
|
fries:
|
ortalo: especially when there's options for low cpu/hw accel (or no hw accel) assistance situations
|
|
ortalo:
|
However, we should have a provision for getting rid of the heavy Mesa layer, no ?
|
|
graydon:
|
core: is it? oh well.
|
|
core:
|
graydon: yes, we have a libggi target for it :)
|
|
tan:
|
core: the only bigger optimization we can make is hardware accel
|
|
core:
|
graydon: unless you draw your windows using texturemapped triangles ;)
|
|
graydon:
|
ortalo: I am hoping (and the mesa author says it's totally possible) for mesa to basically "become" a simple 2d layer when need be, simply by changing certain settings.
|
|
ortalo:
|
Could you have an "abstract" drawing layer (subset of Open/GL) that would be satisfying enough to implement some specific part of the API ?
|
|
core:
|
tan: bigger optimization than what? steffen's code maybe, but not current mesaggi code.. it's C using putpixels()
|
|
ortalo:
|
graydon: so mesa could provide such subset ?
|
|
graydon:
|
core: I intend to work on it, but I set berliners a deadline of having a working architectural demo (with no performance guarantees) by the end of august, so we could show it off.
|
|
core:
|
tan: and the 3D renderer i wrote for ubisoft, was assembler using fpu and cpu in parallel (for derivated means), it was at full frame rate on a stock p75 three years ago.. so.. there's always room for optimization.
|
|
Macarena:
|
core: AFAIK the latest patch was a bit better using PutLines and such, but I may be wrong ...
|
|
graydon:
|
ortalo: mesa is quite abstract already. What do you have in mind?
|
|
core:
|
graydon: but you won't show it off with the current slow mesaggi code..?
|
|
core:
|
macarena: you're probably right, i haven't followed mesaggi much :)
|
|
ortalo:
|
What I have in mind is: the pure 2d parts of Berlin could rely on some user-defined drawing lib.
|
|
tan:
|
core: of course. but ggi is portable. I hope you know what i mean ;)
|
|
graydon:
|
core: we'll show it to people who are willing to look past the speed issue. I.e., bruce perens asked me for a demo real soon.
|
|
fries:
|
ortalo: but then you take away the possibility to do 3d stuff if hw does it
|
|
ortalo:
|
If Mesa can provide this part, very well, it will save work. If not, we could complement it.
|
|
core:
|
tan: doesn't mean we can't write hw-specific code where relevant :)
|
|
fries:
|
ortalo: you did hear mesa was going to have a 2d layer implementation, right?
|
|
core:
|
graydon: i'll be curious too.. :)
|
|
ortalo:
|
Howver, the problem is that Berlin should be able to use full Open/GL when feasible (or when the user wants to show-off).
|
|
core:
|
graydon: i just meant that if you want a "general public" demo, you need to resolve the speed issue
|
|
ortalo:
|
How could you combine the two requirements in Berlin ?
|
|
graydon:
|
ortalo: it depends what you want in your 2d layer. If you want nurbs, polygons, alpha channels, etc. then you get them in mesa already.. It'd be a bitch (and possibly redundant) to reproduce all that in a 2d-only mode when you can just optimize out in mesa.
|
|
RangeRick:
|
core: I think this is more of a "proof-of-concept" demo :)
|
|
graydon:
|
core: indeed, and for that, we will need KGI
|
|
core:
|
rangerick: yes, i understand that :) but speed is something you can hardly get past (trust my experience ;)
|
|
ortalo:
|
NOTE: I would be _very_ happy to rely on Mesa (I'm not a workaholic.. :-)
|
|
RangeRick:
|
:)
|
|
graydon:
|
or fbcon, if it's any good for acceleration :)
|
|
core:
|
graydon: yes, i can imagine - the new KGI has been moved in the repository, once it is nailed down and all drivers are ported (one time for all), it will be fine :)
|
|
core:
|
graydon: fbcon doesn't accelerate anything, but it works (as of today) with any VBE 2.0 board, plus all KGI drivers when Andrew is done
|
|
Macarena:
|
Hmm - Actually I though Berlin was intended a very "lightweight" thing ... X makes me mad with its 12MB memory footprint ... do you think you can keep size small ?
|
|
core:
|
graydon: and it'll be in the main kernel sometime soon :)
|
|
Macarena:
|
graydon: fbcon ends at blitting. But we can try to extend it :-)
|
|
core:
|
macarena: yes, that's what I was expecting Berlin for, mainly - PDAs and such :)
|
|
graydon:
|
core: you can detect certain things in mesa, like which projection matrix you're using, and if you're in orthographic mode, and if your viewport coordinates exactly match your modelling coordinates, and if these conditions are met, your calls suddenly turn into pixel pushing 2d calls.
|
| | Macarena grins at core with a knowing smile ... |
| | graydon saw the itsy as well, y'know. |
|
RangeRick:
|
pilot-berlin? :)
|
|
tan:
|
graydon: btw: what about printing support in berlin?
|
|
RangeRick:
|
hehe
|
| | core returns the smile to macarena (i'll mail you, honest! i was finishing the docs when 5 PM rolled in :) |
|
core:
|
graydon: ah, i see. that's smart
|
|
graydon:
|
an app which speaks to berlin is actually asking for "widgets", having no idea what they are (assuming it does no direct-imaging)
|
|
core:
|
graydon: i guess mesa will only load its 3D components when these conditions aren't met then (for the memory footprint problem)
|
|
graydon:
|
core: that'd be nice, but I don't know its guts well enough.
|
|
core:
|
graydon: i suppose it needs some butchery to do that, but..
|
|
Mat:
|
graydon: any plans to implement "X over Berlin" ? *duck*
|
|
graydon:
|
core: so far the memory footprint is ... hang on ...
|
|
core:
|
mat: as useful as "linux over win95" :)
|
|
tan:
|
core: AFAIK it's not very easy to split mesa into 2d and 3d
|
|
ortalo:
|
IDEA: What about implementing libgwt using Mesa ? If we furnish another implementation (faster or lightwight) we might help wrt perf. ?
|
|
core:
|
tan: i'm just trying to imagine how Berlin can take less memory than X, loading full mesa, widgets etc :)
|
|
Silk:
|
tan: it only takes a few state changes to start drawing in orthographic mode
|
|
Macarena:
|
Mat: shouldn't be a problem, if we can make a "Berlin target" which opens a window that contains a single 2D drawing widget - we can run Xggi on it ...
|
|
fries:
|
core: um, x apps would HAVE to have some way to display themselves .. otherwise nobody would use it
|
|
graydon:
|
grr. doesn't like staying up at the moment, can't get a mem useage number.
|
|
ortalo:
|
In fact, my brain-problem currently is that I don't see what the mesa-guy wants to do to split-out a 2d API for Mesa (with windowing support).
|
|
fries:
|
mac: heh. or you could do the xserver kind that windows has and do an optional per-window wrapping with the berlin wm
|
|
core:
|
fries: i know :) i guess they'll write some xlib stub
|
|
graydon:
|
core: there's a few approaches you can take for X, none of them terribly satisfactory
|
|
Macarena:
|
core: Someone is trying that for Wine. I am in contact with him ...
|
|
graydon:
|
core: you can have 1 X server window, and have every X program live inside it.
|
|
core:
|
graydon: source compatibility would be fine for me, but i guess most people will want runtime compatibility :)
|
| | Mode change "+o weigon" on channel #ggi by Macarena |
|
graydon:
|
core: or you can try to represent each X window structure as a separate berlin window
|
|
core:
|
graydon: c'mon, X is not that good, but flexible enough to have its windows displayed in Berlin windows :)
|
|
graydon:
|
core: or you can try to finagle an xlib which speaks to berlin in secret on the backend
|
|
fries:
|
graydon: hehe. my thoughts exactly
|
|
fries:
|
graydon: that would be the 'optimized' approach .. to get it working, though, I think your original idea would be 'X in window'
|
|
graydon:
|
core: in which case, it's easier to do with something at the level of, like GNOME than xlib
|
|
graydon:
|
or rather, GTK+
|
|
graydon:
|
cause it's already an OOP widget-based API
|
|
core:
|
i guess yes :)
|
| | Signoff: bri (Remote closed. [0kb/9pks(0q)] [31kb/258pks(5q)]) |
|
graydon:
|
I mean, I don't have perfect answers for a lot of weird problems
|
| | bri (~root@uislr1p8.umassp.edu) has joined channel #ggi |
|
core:
|
you don't have to either; first get Berlin to work
|
|
core:
|
when it works, getting legacy X applications to work is a secondary problem
|
| | Mode change "+o bri" on channel #ggi by Macarena |
|
graydon:
|
and there's *lots* of weird problems to face -- how to get a pilot to even *contain* NURBS trimming code, etc :)
|
|
core:
|
graydon: that's what i meant, by not being able to set many things in stone
|
|
ortalo:
|
garydon: You need to have a modular implementation of Mesa I think.
|
|
core:
|
ortalo: my thoughts exactly
|
|
core:
|
if you can't split mesa in components, you can't use it with Berlin, or it will take more resources than X itself
|
|
ortalo:
|
That's what we aimed at: libggi2d, libgwt, and then mesa. (all over libggi)
|
|
graydon:
|
core: I dunno, mesa is 600k.
|
|
Macarena:
|
graydon: So i suppose you are talking to some intermediate "rendering and widget ordering" layer that might be substituteable to have "light" and "heavy" versions ?
|
|
core:
|
graydon: on disk, but not of memory, yes? :)
|
|
tan:
|
ort: I've tried to split Mesa, but no success till now ;((
|
|
graydon:
|
XF86_SVGA is 2.7 megs
|
|
ortalo:
|
tan: why ? (that's the problem here in fact, please elaborate)
|
|
graydon:
|
on disk
|
|
tan:
|
ort: seems that everything depends on everything ;(
|
|
fries:
|
-rwxr-xr-x 1 todd todd 2527232 Apr 26 17:19 bin/XGGI
|
|
graydon:
|
tan: I agree, spliiting mesa doesn't sound too easy. The code is very tightly wound together.
|
|
tan:
|
but on linux thats not a big problem: it supports demand loading
|
|
fries:
|
tan: replace Linux with UNIX and you got it
|
|
Macarena:
|
tan: No - not every Unix does demand paged loading ... argh ... !
|
|
fries:
|
Mac: oooh, ok so I'm wrong. most modern unix'es I'm sure though
|
|
core:
|
tan: demand paged loading slashes performance too
|
|
ortalo:
|
how do the mesa-guys intend to proceed: add a new part with 2d only, or reuse things from Mesa3D ?
|
|
graydon:
|
I mean, GGI has abstracted video driver code from X, and corba abstracts xlib, x proto, and the various X bindings for other languages, so I think we're safe in assuming it'll be smaller than X
|
|
Macarena:
|
s/tan/fries/ ...
|
|
ortalo:
|
graydon: yes but there are still these windowed thingy to abstract away...
|
|
tan:
|
and demand loading only makes sense when the code itself is separated in the binary
|
|
core:
|
ok, the announced appointment is here.. i'll exceptionally leave .. my scope of work is low-level anyway.. :) See you, work well, post the logs :)
|
|
core:
|
tan: right
|
|
graydon:
|
ortalo: hehe. Yeah. Well, if you take the windows out of the windowing system, you get 8 1/2, and that's not the design I'm interested in.
|
|
fries:
|
whoever committed xf86dga display support ... it assumes alot
|
|
tan:
|
bye core
|
|
ShadowX:
|
bye core
|
|
graydon:
|
bye core
|
| | Signoff: core (bye everyone :)) |
|
ortalo:
|
and it is annoying me as a window seems to be rather different from a viewport... (win can go off-screen, resized, be virtual, etc.)
|
|
graydon:
|
in 8 1/2, the windowing system is only a couple dozen KB, but it does nothing, calls the client *very* frequently, and the user can't customize it at all.
|
| | weigon has left channel #ggi |
| | graydon munches on oatmeal |
|
ortalo:
|
In libgwt I expected to put a simple way to provide visual independence in fact. (With additional support for overlapping visuals, and managing events.) Isn't it enough for a small thing ?
|
|
ortalo:
|
I always saw libgwt as a layer allowing apps to share one visual. Nothing much more.
|
|
graydon:
|
ortalo: yeah, but share how?
|
|
Mat:
|
I'll be going too. Not like I'm much use anyway :)
|
|
Macarena:
|
ortalo: I think we should definitely continue with LibGWT, as I see need for it in many fields ...
|
|
graydon:
|
you got rectangle multiplexing
|
|
graydon:
|
rectangles with z-order
|
|
graydon:
|
polygons
|
|
graydon:
|
curves
|
|
graydon:
|
alpha channels
|
|
tan:
|
mac: I agree
|
| | Signoff: Mat (Mat disappears in a poof of smoke...) |
|
graydon:
|
where does GWT stop, and high level stuff begin?
|
|
ortalo:
|
GWT manages where you are going to draw. Once you start drawing it has done its job.
|
|
Silk:
|
hate to ask this, but how does X do it?
|
|
Macarena:
|
graydon: GWT basically allows to manage and order a bunch of "subvisuals" on a larger main visual.
|
|
graydon:
|
I agree, it sounds good to have a lightweight kit, but what if I want to decorate my windows with semi-transparent vines?
|
|
tan:
|
btw: I think there's a security problem with alpha blending and windows
|
|
graydon:
|
and visuals are rectangular.
|
|
Macarena:
|
graydon: Use an Alpha channeled larger subvisual for the border, which has a smaller subvisual for the contents inside.
|
|
ortalo:
|
graydon: I don't help you with this. ( I agree, this may be a limitation.)
|
|
tan:
|
Is an app allowed to read the contents of an underlying window?
|
| | allanon (allanon@becker2.u.washington.edu) has joined channel #ggi |
|
graydon:
|
tan: I doubt it
|
|
Macarena:
|
tan: Actually X allows it, so ...
|
|
ortalo:
|
tan: no, why ?
|
|
graydon:
|
tan: there's lots of sticky security issues in berlin tho.. not to claim it's secure :)
|
|
ortalo:
|
In fact, I did not want to put in libgwt things that I was not sure were really belonging to libgwt.
|
|
tan:
|
if you do alpha blending you need to read the contents of the screen.
|
|
fries:
|
graydon: what would it take to make it secure?
|
|
Macarena:
|
tan: I see the problem, but I
|
|
Macarena:
|
'tan: am not sure if we should really do something about it ...
|
|
graydon:
|
fries: an act of god :)
|
|
graydon:
|
fries: no, not really
|
|
tan:
|
of course, if the drawing is done by the server, the app has no access to it...
|
|
graydon:
|
fries: just a lot of discussion and patience
|
|
fries:
|
graydon: so you are saying you can't guarantee the root passwords we type in berlin windows aren't being snarfed? um, that is scary and limits your audience
|
|
graydon:
|
fries: I'm saying I can't *guarantee* it, cause I have no idea what people will plug into berlin.
|
|
Macarena:
|
fries: They can be in X, too ... if they get displayed. How do you think the xv grab button works ...
|
|
graydon:
|
fries: can't guarantee it in X either.
|
|
ortalo:
|
So, with MeTalGuy, we thought it would be best to remain a convenient way of, let's say, splitting the screen into parts. (maybe multiple screen into parts)
|
|
fries:
|
mac: x can be secured. only allow apps that have a magic cookie to connect
|
|
graydon:
|
fries: you can do a similar inflexible security scheme with berlin if you like..
|
|
fries:
|
mac: but graydon just said 'no clue how to guarantee security' in berlin. that scares me and will definately be an issue with OpenBSd which is security conscious
|
|
Macarena:
|
fries: I suppose Berlin will have such functionality, too ...
|
|
ortalo:
|
And, if possible provide windows in a transparent way, so that application would not be aware of the fact they draw in a window.
|
|
bri:
|
A very small SUID server might be acceptable in this case -- no hw access needed, and it could be small enough and simple enough to comb for security holes.
|
|
graydon:
|
ortalo: oy, if it does alpha channels it may be sufficient
|
|
fries:
|
well, if I can somehow guarantee security( if x's is inflexible, ok go for something more flexible, I care not) just that it is secure!
|
|
Macarena:
|
bri: What would we need SUID for ?
|
|
graydon:
|
well, berlin is a userland app, so it runs as you
|
|
graydon:
|
no need to be suid root
|
|
fries:
|
bri: um, the whole point of ggi is graphics w/out suid. better have a GOOD reason to require suid.
|
|
bri:
|
Well actually I guess maybe not, but you'd need an authentication protocol for a non-suid one (with SUID you just check if it has rights on the resources)
|
|
ortalo:
|
mac: alpha channels (from graydon) make me thing that, in fact, we need some lib for "combining" visuals one with each other (either split, stacked, or even mixed)
|
|
fries:
|
bri: terms, for example, need ownership of tty/pty's which atm require suid
|
|
graydon:
|
the only security issue is that, since programs are sharing corba object references, those references can be forged -- you might not be talking to whom you think you are talking to.
|
|
graydon:
|
that's security at the corba level. There is a corba security standard, we just don't happen to have an implementation anywhere.
|
|
fries:
|
I'm just thinking of the day berlin gets popular then there are a series of bugtraq announcements regarding it.
|
|
graydon:
|
fries: everything has security holes. Best we can do is respond to any concernes with a solution.
|
|
fries:
|
graydon: if you plan for security up front, it makes things easier in the long run cuz you don't have to hack ontop of hacks to make it so
|
|
graydon:
|
fries: I know the OpenBSD guy will probably be able to find a million security flaws in our program
|
|
graydon:
|
fries: but he can find all the same flaws in, like, PINE -- it's just a single user process.
|
|
fries:
|
graydon: but will there be a million security fixes?
|
|
graydon:
|
fries: I see no reason to leave a security hole open :)
|
|
fries:
|
graydon: then that is good.
|
|
tan:
|
graydon: with a good design you avoid most sec holes. otherwise fixing them will be a lot of work...
|
|
fries:
|
graydon: here is a good question. do you do 'if(open() < 0)' or 'if(open() == -1)' ?? .. that is a good example of poor coding .. hehe ..
|
|
Macarena:
|
O.k. - back on topic - what doe Berlin need most from GGI _now_ ? A Mesa GGI that runs with the most current Mesa ? Acceleration ?
|
|
fries:
|
oops we have a topic.
|
|
graydon:
|
fries: yes, I know, and I'm sure we'll be subject to lots of security audits, but I'd simply be *lying* to you if I said my code, or my design, was entirely secure. I Do not know, nor do I have the expertise to find out..
|
| | bri forces himself to put down cigarette lighter after creating a small disaster with his latent pyromania |
|
graydon:
|
macarena: yesh.. a mesa that runs on the current KGI would be lovely.
|
|
Macarena:
|
graydon: What version of Mesa would you like ?
|
|
graydon:
|
macarena: one of the 3.0 betas, I guess the latest
|
| | Signoff: Silk (I'm outta here!) |
|
tan:
|
graydon: no problem. AFAIK uwes port runs with 3.0beta4
|
|
graydon:
|
tan: yeah, it just doesn't happen to work with current libggi.
|
|
graydon:
|
tan: should be a small matter though
|
|
graydon:
|
tan: I'm planning to do it if nobody else feels up to it :)
|
|
Macarena:
|
graydon: O.K. - I'll talk to Uwe - tan - please EMail me, if you'd like to work on it, too. Seems I got to quit now ...
|
|
Macarena:
|
CU folks !
|
|
graydon:
|
see ya
|
|
tan:
|
graydon: ok. I'll help!
|
|
bri:
|
bye andy
|
| | Signoff: Macarena ( ) |
| | ZinO (peter@hiro.idonex.se) has joined channel #ggi |
|
graydon:
|
tan: cool.
|
|
ortalo:
|
So, it seems we are mostly done, no ?
|
|
graydon:
|
tan: I got uwe's patch working on 0.0.9 in just under an hour, so I don't imagine it'll be too hard
|
|
graydon:
|
ortalo: I have nothing else much, nope..
|
|
ortalo:
|
When I will have something ready with libgwt, I will show it. We'll see if it can be useful to berlin then
|
|
fries:
|
graydon screenshots?
|
|
tan:
|
graydon: porting will be easy when I got my libggi2d ported.
|
|
fries:
|
:-)
|
|
bri:
|
anyone care to stick around and answer a few questions on evstacks?
|
|
graydon:
|
fries: right now a screenshot == a big blank screen
|
|
RangeRick:
|
:)
|
|
RangeRick:
|
fries: I can make one for ya if you want :)
|
|
bri:
|
(or is noone here an evstack pro...)
|
|
graydon:
|
range: we had trouble in the past with people faking screenshots of berlin. I'd prefer to stick to realism :)
|
|
RangeRick:
|
graydon: that's what I mean... just make a black 800x600 image or whatever :)
|
|
ortalo:
|
I have to go also now (some real work left somewhere also :-). Good evening, and see you soon... (with screenshots :-)
|
|
graydon:
|
range: oh, I see. hehe -- did you see the egcs team's screenshot?
|
| | Signoff: ortalo (bye..bye...) |
|
RangeRick:
|
no... um... I'm afraid to ask, but uh... where is it? :)
|
|
graydon:
|
it's funny -- it's an xterm with : gcc something.c >>prompt.
|
| | tan is just looking over Uwes code and sees that it access the framebuffer directly |
|
graydon:
|
it has the caption "look at egcs go!"
|
|
graydon:
|
tan: way?
|
|
RangeRick:
|
hahah
|
|
asvogler:
|
got to go. bye
|
|
tan:
|
graydon: core thought that it uses putpixel()
|
| | asvogler has left channel #ggi |
|
graydon:
|
yeah, so did I -- isn't the "INNER_LOOP" macro a call to putpixels?
|
| | RangeRick has to run. later, all |
| | Signoff: RangeRick (syntax: Um... er... yeah.) |
|
tan:
|
graydon: there are two versions: a generic one using putpixel and one using direct access
|
|
graydon:
|
where's the direct access one? (http://?)
|
|
tan:
|
http://home.t-online.de/home/uwe_maurer/ggimesa.htm
|
|
graydon:
|
that's the one I have, the 3.0 patch, right?
|
|
tan:
|
graydon: yep. 3.0beta3
|
|
tan:
|
graydon: the putpixel calls in linear8/15.. can be optimized...
|
|
tan:
|
are there any other issues? i've to leave soon.
|
|
graydon:
|
tan: ooh, you mean the stuff down at the bottom of the patch?
|
|
graydon:
|
tan: no, I'm just bumming around
|
|
tan:
|
graydon: see default/linear.c
|
|
graydon:
|
snazzy.
|
|
bri:
|
can anyone think of a way to do the target overloading yet provide something approaching the efficiency on inlining? How much overhead is in a function call anyway? (I never took a compiler course:)
|
|
graydon:
|
tan: still doesn't call libggi for geometric primitives. We'll see if that's possible :)
|
|
fries:
|
bri: isn't that what the struct->function() pointers are for?
|
|
fries:
|
bri: if an app insists on calling putpixel() for every pixel of a 1024x768 screen, that's the app's fault not ours. if however the guy does a putimage() or whatever the function cal equiv is .. then the app is optimiized!
|
|
tan:
|
bri: or add a function like putpixelS and draw several pixels at once
|
|
fries:
|
tan add? I thought that was in there .. putline() where a line is an array of pixels to put at once, not necessarily the whole width of the screen .. maybe I got the name wrong but not the functionality, I've looked at it before
|
|
graydon:
|
or better yet, invent quantum computing and holographic display, so you can show every possible picture simultaneously, then just collapse the wave function and the display instantly updates. Should be a snap, right?
|
|
bri:
|
I'm just wondering if the generated code does a lot of saving of registers and stuff that wouldn't be necessary on some targets?
|
|
tan:
|
graydon: ;)
|
| | bri2 (~root@uislr1p1.umassp.edu) has joined channel #ggi |
|
fries:
|
bri: registers are the compiler's arena
|
|
bri2:
|
ok what's the irc command to get the last screen?
|
| | Mozart (Mozart@mozart.windsor.igs.net) has joined channel #ggi |
|
fries:
|
I just use the scrollbar on my irc app
|
| | graydon is thinking he'll head off, if there's nothing else, and see if he can get mesa to like the new libGGI. |
|
tan:
|
fries: no. there's no putline function. there are only puth/vline
|
|
bri2:
|
e.g. to see what I missed (and I'm using SIRC which doesn't scroll the whole console :()
|
|
graydon:
|
tan: you'll be around the next few days to talk about this stuff? (you know libggi way better than I do!)
|
|
Mozart:
|
hello there ggi and berlin folks
|
|
bri2:
|
hi
|
|
tan:
|
graydon: better ask Andy. I'm just trying to port libggi2d and there are still problems with the extension scheme
|
|
fries:
|
hey Mozart .. graydon is berlin and he's ready to leave to do work .. :-)
|
|
Mozart:
|
fries: :(
|
| | graydon will stay if mozart has berlin questions |
|
Mozart:
|
not any question really
|
|
Mozart:
|
but
|
|
Mozart:
|
i've been reading the berlin lists for the last few days with some fascination about the ui
|
|
tan:
|
ok. have to leave now. bye!
|
|
graydon:
|
mozart: oh, well, since there are no real widget interfaces I though I'd just let that conversation unfold into some new ideas. Doesn't hurt.
|
|
Mozart:
|
i cant really add much more than, Put as much configurability into the hands of the user
|
|
graydon:
|
bye tan!
|
| | Signoff: tan (Leaving) |
|
bri2:
|
bye!
|
| | Signoff: ShadowX (Leaving) |
|
graydon:
|
ok, I'm gonna bail then. Nice talking to y'all. Feel free to demolish my code with something better :)
|