mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 02:20:11 +01:00
Fixes for 24-bit Windows devices. The old code was trying to do 3-byte
stores with a full DWORD store (yuk). (Jeff Lewis)
This commit is contained in:
parent
43df32e438
commit
4197c0ea9b
1 changed files with 11 additions and 5 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: wmesa.c,v 1.24 2002/01/15 18:14:34 kschultz Exp $ */
|
||||
/* $Id: wmesa.c,v 1.25 2002/01/16 15:42:17 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Windows (Win32) device driver for Mesa 3.4
|
||||
|
|
@ -474,9 +474,9 @@ static clear(GLcontext* ctx, GLbitfield mask,
|
|||
b = GetBValue(Current->clearpixel);
|
||||
iSize = Current->width;
|
||||
while (i < iSize) {
|
||||
*lpb++ = r;
|
||||
*lpb++ = g;
|
||||
*lpb++ = b;
|
||||
*lpb++ = g;
|
||||
*lpb++ = r;
|
||||
i++;
|
||||
}
|
||||
lpb = Current->pbPixels + Current->ScanWidth;
|
||||
|
|
@ -1616,7 +1616,11 @@ wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
|
|||
else if(nBypp == 2)
|
||||
*((LPWORD)lpb) = BGR16(r,g,b);
|
||||
else if (nBypp == 3)
|
||||
*((LPDWORD)lpb) = BGR24(r,g,b);
|
||||
{
|
||||
*lpb++ = b;
|
||||
*lpb++ = g;
|
||||
*lpb = r;
|
||||
}
|
||||
else if (nBypp == 4)
|
||||
*((LPDWORD)lpb) = BGR32(r,g,b);
|
||||
}
|
||||
|
|
@ -1638,7 +1642,9 @@ void wmSetPixel4(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
|
|||
void wmSetPixel3(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
|
||||
{
|
||||
LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel + iPixel;
|
||||
*((LPDWORD)lpb) = BGR24(r,g,b);
|
||||
*lpb++ = b;
|
||||
*lpb++ = g;
|
||||
*lpb = r;
|
||||
}
|
||||
|
||||
void wmSetPixel2(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue