home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 6
/
AACD06.ISO
/
AACD
/
System
/
Mesa-3.1
/
src
/
AOS
/
TODO
< prev
next >
Wrap
Text File
|
1999-09-23
|
4KB
|
134 lines
/*
* TODO:
* Dynamic allocate the vectorbuffer for polydrawing. (memory improvment)
* implement shared list.
* fix resizing bug.
* some native asm rutine
* fast asm line drawin in db mode
* fast asm clear in db mode
* read buffer rutines in db-mode
*
* IDEAS:
*/
/*
* TODO:
* -implement dither-availability as kind of doublebuffering
* can be done as cybergraphics + doublebuffer + swap[dither and/or quantize]
*/
/*
* remove all amigaMesaContext-variables out of the kernel-functions
*/
/*
* maybe the standard Line/Area-functions can even be used by
* the cybDisplay:
* - allocate an exact pen of the rgb-value and use that pen for
* drawing
* that means we must remove the AllocCMap for >8bit
* and there is a question: are there any CI*-function calls in cybDisplay?
* maybe I must recheck the CreateVisual-function ...
*/
/*
* - changes in the non-doublebuffer functions:
* - implemented GL_INVERTED for cybergraphx (via InvertPixelArray) and
* all others for the native (via minterms) display
* - changed the WriteCI32/WriteCI8-functions to use WriteLUTArray
* - changes in the doublebuffer functions:
* - dithered output
*/
/*
* remove casts from all that index-stuff
*/
/*
* for (s = n - 1; s >= 0; s--, x++) {
* ==
* for (--((GLshort)n); ((GLshort)n) >= 0; --((GLshort)n) x++) {
* ==
* while (--((GLshort)n) >= 0) {
* ...
* x++;
* }
*/
/*
* remove *Base-references from a4-relative to absolute addresses
* to give the optimizer one more register in case of not loading
* a4
*/
/*
* LayerWidth/LayerHeight seems not to work with Screen->RastPort->Layer
* Why?
*/
/*
* split amigamesa.c into manager, client and server functions
* and restructure the source in that way it reflect
* the split cleanly
*/
void netPointers(GLcontext * ctx)
{
DEBUGOUT(1, "netPointers()\n");
ctx->Driver.RendererString = netRendererString;
if (((netMesaContext) ctx->DriverCtx)->Client.ExtensionString)
ctx->Driver.ExtensionString = netExtensionString;
ctx->Driver.UpdateState = netPointers;
ctx->Driver.ClearIndex = netClearIndex;
ctx->Driver.ClearColor = netClearColor;
ctx->Driver.Clear = netClear;
ctx->Driver.Index = netSetIndex;
ctx->Driver.Color = netSetColor;
if (((netMesaContext) ctx->DriverCtx)->Client.IndexMask)
ctx->Driver.IndexMask = netIndexMask;
if (((netMesaContext) ctx->DriverCtx)->Client.ColorMask)
ctx->Driver.ColorMask = netColorMask;
if (((netMesaContext) ctx->DriverCtx)->Client.LogicOp)
ctx->Driver.LogicOp = netLogicOp;
if (((netMesaContext) ctx->DriverCtx)->Client.Dither)
ctx->Driver.Dither = netDither;
ctx->Driver.SetBuffer = netSetBuffer;
ctx->Driver.GetBufferSize = netStandardResize;
if (((netMesaContext) ctx->DriverCtx)->Client.Finish)
ctx->Driver.Finish = netFinish;
if (((netMesaContext) ctx->DriverCtx)->Client.Flush)
ctx->Driver.Flush = netFlush;
ctx->Driver.PointsFunc = netChoosePointsFunction(ctx);
ctx->Driver.LineFunc = netChooseLineFunction(ctx);
ctx->Driver.TriangleFunc = netChooseTriangleFunction(ctx);
ctx->Driver.QuadFunc = netChooseQuadFunction(ctx);
ctx->Driver.RectFunc = netChooseRectFunction(ctx);
/* Pixel/span writing functions: */
ctx->Driver.WriteRGBASpan = netWriteRGBASpan;
ctx->Driver.WriteRGBSpan = netWriteRGBSpan;
ctx->Driver.WriteCI32Span = netWriteCI32Span;
ctx->Driver.WriteCI8Span = netWriteCI8Span;
ctx->Driver.WriteMonoRGBASpan = netWriteMonoCISpan; /* same */
ctx->Driver.WriteMonoCISpan = netWriteMonoCISpan;
ctx->Driver.WriteRGBAPixels = netWriteRGBAPixels;
ctx->Driver.WriteCI32Pixels = netWriteCI32Pixels;
ctx->Driver.WriteMonoRGBAPixels = netWriteMonoCIPixels; /* same */
ctx->Driver.WriteMonoCIPixels = netWriteMonoCIPixels;
/* Pixel/span reading functions: */
ctx->Driver.ReadRGBASpan = netReadRGBASpan;
ctx->Driver.ReadCI32Span = netReadCI32Span;
ctx->Driver.ReadRGBAPixels = netReadRGBAPixels;
ctx->Driver.ReadCI32Pixels = netReadCI32Pixels;
}