#ifndef OGEDGETABLE_H #define OGEDGETABLE_H #include "ogTypes.h" #include "objgfx.h" struct ogEdgeState { ogEdgeState* nextEdge; int32 x; int32 startY; int32 wholePixelXMove; int32 xDirection; int32 errorTerm; int32 errorTermAdjUp; int32 errorTermAdjDown; int32 count; ogRGBA8 colour; int32 rStepY; int32 gStepY; int32 bStepY; int32 aStepY; int32 rIncY; int32 gIncY; int32 bIncY; int32 aIncY; }; class ogEdgeTable { public: ogEdgeState * globalEdges; ogEdgeState * activeEdges; ogEdgeTable(void) { globalEdges = activeEdges = nullptr; return; } void AdvanceAET(void); void BuildGET(uInt32 numPoints, ogPoint2d * polyPoints); void BuildGET_G(uInt32 numPoints, ogPoint2d * polyPoints, ogRGBA8 * colours); void MoveXSortedToAET(int32 yToMove); void ScanOutAET(ogSurface & destObject, int32 yToScan, uInt32 colour); void ScanOutAET_G(ogSurface & destObject, int32 yToScan); void XSortAET(void); ~ogEdgeTable(void); }; // ogEdgeTable #endif