/* Affiche tous les pixels dans le segment de ligne horizontale, de (LeftX,Y) à (RightX,Y), dans la couleur spécifiée du mode 13h, le mode 320x200 en 256 couleurs. Aucun affichage ne se fera si LeftX > RightX. Testé avec Borland C++ 4.02 par Jim Mischel 12/16/94. */ #include #include "polygon.h" #define SCREEN_WIDTH 320 #define SCREEN_SEGMENT 0xA000 static void DrawPixel(int, int, int); void DrawHorizontalLineSeg(Y, LeftX, RightX, Color) { int X; /* Affiche chaque pixel dans le segment de la ligne horizontale, en commençant par le plus à gauche */ for (X = LeftX; X <= RightX; X++) DrawPixel(X, Y, Color); } /* Affiche le pixel en(X, Y) dans la couleur Color du mode 13h de VGA */ static void DrawPixel(int X, int Y, int Color) { unsigned char far *ScreenPtr; #ifdef __TURBOC__ ScreenPtr = MK_FP(SCREEN_SEGMENT, Y * SCREEN_WIDTH + X); #else /* MSC 5.0 */ FP_SEG(ScreenPtr) = SCREEN_SEGMENT; FP_OFF(ScreenPtr) = Y * SCREEN_WIDTH + X; #endif *ScreenPtr = (unsigned char) Color; }