/* 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; }