adamj@WEB.BERKELEY.EDU (07/07/88)
It would be a lot easier to write cursor drivers, hardware
accelerators, performance monitors, and other graphics operation traps
if all of the information in a GC that ValidateGC could change were
stored in a seperate data structure. Life would also be much better if
all of the GC client functions were of exactly the same format.
For example:
(*pGC->pDriver->functions[FILL_POLYGONS])
(pGC, pDrawable, pGC->pDriver, FILL_POLYGONS,
pPolygonArguments)
typedef struct _GC {
...alu, fg, bg, fillStyle, font, etc...
GCClientPtr pClient;
} GC;
typedef struct _GCClient {
void (*functions) () [NUM_GC_FUNCTIONS];
GCInterestPtr pInterest;
/* GC driver packages allocate extra data here. */
} GCClientRec, *GCClientPtr;
etc., etc.
I'd be willing to write this myself if I could get some
assurance that there is a good chance of it being incorporated into a
future standard X release. Bear in mind that the kind of change that
I want is a fundamental change in the DDX interface.
--Adam J. Richter
adamj@zen.berkeley.edu