On Fri, 9 Feb 2001, Brian S. Julin wrote:

> 
> On Fri, 9 Feb 2001, Christoph Egger wrote:
> > > LibGGI
> > >      LibGAlloc - Feature Negotation/Allocation API
> > >          LibBSE
> > >              LibOVL
> > >                  LibSprite
> > >                  LibVideoPort - YUV port, VGA feature connector, 
> > >                           TV capture, etc.
> > >              LibBlit
> > >          LibMISC -    Splitline, frame-flip-on-sync, etc.
> 
> > hmm... is libmisc that one, which is already in libggi?
> 
> Yes.  LibMISC would use LibGAlloc to find out if (or demand that)
> any of the miscellaneous features that it provides an API for are
> available on the target along with the desired video mode.

So it can be used as an example code for the others extensions,
right?

 
> > >          Lib3DMem -   3D textures, AGP, Z-buffer, etc.
> > 
> > Does libxmi fit here as well?
> 
> Libxmi would use Lib3DMem to allocate it's VRAM, but It's a
> pseudo-wrapper library which is quite a lot more than a "feature
> API implementation"; listing it "under" LibGAlloc didn't really
> do it justice.

Please explain "pseudo-wrapper".
 
> > Regarding to my question above:
> > 
> > Textures - if 2d or 3d - are usually distorted by the (3d) rendering
> > engine. That's why I asked, if the "features" can really be handled
> > by LibOVL. But looking at your sketch, textures and all kind of
> > buffers should be handled by Lib3DMem, no?
> 
> Just the part of the process that gets the texture-capable VRAM
> from the target; once the VRAM is allocated, it is handed over to
> a higher level library to actually manipulate it.  In the case of
> a 2D application, another kind of "feature" it might want to get
> along with the texture is a "BLT engine", because some cards have
> more than one drawing engine, which would allow the app to use
> multithread access without calling ggiResourceAcquire.  I suppose
> the same kind of thing must be true for 3D; Steffen Seeger's KGI
> allows multiple communications channels to be defined to the
> video card, and LibGAlloc would be able to pass these channels to
> the 3d cards "pipelines" to a 3d library.


OK.

To not lose the stuff libOVL should handle, I want to sum up:

It (de)allocates resources for sprites, video overlayers and generic
window overlayers like YUV viewports. Furthermore it displays the
layers _only_ in hardware. Anything else is handled by higher/other
libs.

OK, so far?

If yes, then I think that those "features" makes sense in libOVL:

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

#define GGI_FT_SUBTYPE_MASK     0x00000fff  /* defined by extension */
#define GGI_FT_TYPE_MASK        0x000ff000

#define GGI_FT_FRAME            0x00001000  /* frame of main framebuffer */
#define GGI_FT_SWATCH           0x00002000  /* generic drawing area in same
                                               format as the main fb */
#define GGI_FT_STEREO           0x00003000  /* Right/left eye data */
#define GGI_FT_SPRITE           0x00004000  /* Sprite/hw cursors */
#define GGI_FT_VIDEO            0x00005000  /* video */
#define GGI_FT_WINDOW           0x00006000  /* any window */
#define GGI_FT_PASSTHRU         0x00007000  /* e.g. feature connector */
#define GGI_FT_OVERLAY_MASK     0x0ff00000  /* # of hardware "layers" */


/* Subtypes for sprite features */
#define GGI_FT_SPRITE_DONTCARE  0x00000000
#define GGI_FT_SPRITE_POINTER   0x00000001   /* Hardware pointer cursor */
#define GGI_FT_SPRITE_CURSOR    0x00000002   /* Hardware text cursor */
#define GGI_FT_SPRITE_SPRITE    0x00000003   /* True sprite (a-la C-64) */


/* Subtypes for video features */
#define GGI_FT_VIDEO_DONTCARE   0x00000000

/* Subtypes for window features */
#define GGI_FT_WINDOW_DONTCARE  0x00000000
#define GGI_FT_WINDOW_YUV       0x00000020   /* YUV-Viewport */

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


 
> > > > 3. Can anyone explain me, what GGI_FT_PASSTHRU is intended to be and 
> > > >    should allow?
> > > 
> > > Video overlay, e.g. from a TV capture card.
> > 
> > err... the comment says, it is FOR EXAMPLE a feature connector.
> > 
> > A feature connector of what? 
> 
> What I'm referring to is a 26 pin header or 2x13 edge connector
> on older SVGA cards that used to be used to plug into video
> capture cards and off-board 3d graphics processors like the
> original 3dfx cards.  Some of the SVGA cards would just turn off
> the whole screen and let the data from that connector run through
> the CRTC.  Others would actually allow you to define a window
> where the data would show through instead of the VRAM data.


But this _not_ the job of LibOVL...


Christoph Egger
E-Mail: [EMAIL PROTECTED]


Reply via email to