summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2001-04-03 16:25:54 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2001-04-03 16:25:54 +0000
commit2e1ed6447a1eea18bf7d8180f86381574127e370 (patch)
tree8d5e95c52b1dc8ed40b23dd9692d9c9790c0c980 /src
parent9d205e3542dbcec948725be74732745fc4dda95a (diff)
fixed wglUseFontBitmapsA() bugs (Frank Warmerdam)
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/windows/wgl.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/mesa/drivers/windows/wgl.c b/src/mesa/drivers/windows/wgl.c
index 6b7635d560..87fd5f7b0a 100644
--- a/src/mesa/drivers/windows/wgl.c
+++ b/src/mesa/drivers/windows/wgl.c
@@ -1,4 +1,4 @@
-/* $Id: wgl.c,v 1.4 2000/11/22 08:55:53 joukj Exp $ */
+/* $Id: wgl.c,v 1.5 2001/04/03 16:25:54 brianp Exp $ */
/*
* This library is free software; you can redistribute it and/or
@@ -247,7 +247,6 @@ static FIXED FixedFromDouble(double d)
return *(FIXED *)&l;
}
-
GLAPI BOOL GLWINAPI wglUseFontBitmapsA(HDC hdc, DWORD first,
DWORD count, DWORD listBase)
{
@@ -266,46 +265,45 @@ GLAPI BOOL GLWINAPI wglUseFontBitmapsA(HDC hdc, DWORD first,
if (listBase<0)
return FALSE;
- font_list = glGenLists( count );
- if(font_list == 0)
- return FALSE;
+ font_list = listBase;
mat.eM11 = FixedFromDouble(1);
mat.eM12 = FixedFromDouble(0);
mat.eM21 = FixedFromDouble(0);
- mat.eM22 = FixedFromDouble(1);
+ mat.eM22 = FixedFromDouble(-1);
memset(&gm,0,sizeof(gm));
for (i = 0; i < count; i++)
{
+ DWORD err;
+
glNewList( font_list+i, GL_COMPILE );
/* allocate space for the bitmap/outline */
size = GetGlyphOutline(hdc, first + i, GGO_BITMAP, &gm, 0, NULL, &mat);
if (size == GDI_ERROR)
{
- DWORD err;
err = GetLastError();
return(FALSE);
}
- hBits = GlobalAlloc(GHND, size);
+ hBits = GlobalAlloc(GHND, size+1);
lpBits = GlobalLock(hBits);
+ err =
GetGlyphOutline(hdc, /* handle to device context */
first + i, /* character to query */
GGO_BITMAP, /* format of data to return */
- &gm, /* pointer to structure for metrics */
+ &gm, /* pointer to structure for metrics*/
size, /* size of buffer for data */
lpBits, /* pointer to buffer for data */
&mat /* pointer to transformation */
/* matrix structure */
);
- if (*lpBits == GDI_ERROR)
+ if (err == GDI_ERROR)
{
- DWORD err;
err = GetLastError();
GlobalUnlock(hBits);
@@ -326,7 +324,7 @@ GLAPI BOOL GLWINAPI wglUseFontBitmapsA(HDC hdc, DWORD first,
glEndList( );
}
- return TRUE;
+ return TRUE;
}
GLAPI BOOL GLWINAPI wglUseFontBitmapsW(HDC hdc,DWORD first,DWORD count,DWORD listBase)