Index: [thread] [date] [subject] [author]
  From: teunis <teunis@computersupportcentre.com>
  To  : ggi-develop@eskimo.com
  Date: Wed, 19 Aug 1998 19:24:09 -0700 (MST)

Re: LibGGI3D RFC

On Wed, 19 Aug 1998, Jon M. Taylor wrote:

> On Wed, 19 Aug 1998, teunis wrote:

[clip]

> > Now thinking about it:
> > 	Coordinate clipping requires info about -all- present coordinates.
> > 		(X,Y,Z[,W][,U,V[,U2,V2..]][colour])
> > 	mayhaps we need to think about this further?  (don't know)
> 
> 	The higher layers could clip during tesellation, and as such
> they'd be able to take all those coordinates into account.

Ah - so the only clipping libGGI3D would do would be?
I'm curious, as moving any of the X,Y[,Z] coordinates will affect the
remainder of the coordinate list...

Now there's render-side clipping (Z-buffering)
Tesellation clipping (ie: viewing frustrum clipping)

So what clipping would libGGI3D handle?
Mayhaps just simple (front/rear) clipping?  (but some triangles may be
doublesided...)

[clip]

> > >  - I want clipping in libggi3d also.
> > 
> > See above...  and this requires also the camera info (view frustrum,etc)
> > to be available....
> 
> 	Right. 

So how does this work?

> > >  - I am not yet completly clear of how you want to manage textures ?
> > > What about texture cache management also ? You associate that to
> > > a particular shader, that's the idea ? BTW, I tend to like that idea
> > > of registering & using shaders like you proposed.
> > 
> > extension to libGGI:
> > 	video cache management
> > handles allocation of videobuffers for functions requiring such (BITBLT in
> > libGGI, libGGI2D, texturemapping in libGGI3D, fonts, additional screen
> > targets for displays that support such, ...)
> > 
> > perhaps
> > int register_buffertype(struct buffertype { int visible, char *name; } )
> > <handle> request_videobuffer(int width,int height,int bpp,int buffer,
> > 			     int buffer_type);
> > 	[it makes sense in case hw needs this on specific boundaries]
> > 
> > either that or:
> > <handle> request_videobuffer(size_t size, int blocktype,
> > 			     void *additional_data);
> > 
> > 
> > I'm not sure from here.
> 
> 	Why not set up such caching systems as intermediate display
> targets?  Drawing functions would render to the caching target, which
> would do the appropriate cache lookups, flushing, updating, etc and then
> render to the final target.  I would work the same way as other LibGGI
> intermediat targets (tile, trueemu, palemu, etc).


hmm...  Okay - makes sense.
That means doing a 
vis=ggiOpen("display-texture", [view options]);
vis=ggiOpen("display-Zbuffer", ...);
vis=ggiOpen("display-wbuffer", ...);

Yes?

Though there should be some kind of internal mechanism for handling
display memory!  (so it doesn't get all fragmented and can be used
effectively!)

G'day, eh? :)
	- Teunis

Index: [thread] [date] [subject] [author]