- simplify the code a bit

svn path=/trunk/; revision=43233
This commit is contained in:
Kamil Hornicek 2009-09-30 12:59:06 +00:00
parent 6f17454af4
commit ebe5bb75c0

View file

@ -36,39 +36,6 @@ static DWORD VertBufSize;
static DWORD VertBufIndex; static DWORD VertBufIndex;
static GLenum TessErrorOccurred; static GLenum TessErrorOccurred;
/*****************************************************************************
* InitLineBuf
*
* Initializes the global LineBuf and its associated size and current-element
* counters.
*****************************************************************************/
INT InitLineBuf(VOID)
{
if (!(LineBuf = (FLOAT*)
HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (LineBufSize = LINE_BUF_QUANT) * sizeof(FLOAT))))
return 0;
LineBufIndex = 0;
return 1;
}
/*****************************************************************************
* InitVertBuf
*
* Initializes the global VertBuf and its associated size and current-element
* counters.
*****************************************************************************/
INT InitVertBuf(VOID)
{
if (!(VertBuf = (FLOAT*)
HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (VertBufSize = VERT_BUF_QUANT) * sizeof(FLOAT))))
return 0;
VertBufIndex = 0;
return 1;
}
/***************************************************************************** /*****************************************************************************
* AppendToLineBuf * AppendToLineBuf
* *
@ -81,8 +48,9 @@ INT AppendToLineBuf(FLOAT value)
if (LineBufIndex >= LineBufSize) if (LineBufIndex >= LineBufSize)
{ {
FLOAT* f; FLOAT* f;
LineBufSize += LINE_BUF_QUANT;
f = (FLOAT*) HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, LineBuf, (LineBufSize += LINE_BUF_QUANT) * sizeof(FLOAT)); f = (FLOAT*) HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, LineBuf, (LineBufSize) * sizeof(FLOAT));
if (!f) if (!f)
return 0; return 0;
LineBuf = f; LineBuf = f;
@ -109,36 +77,6 @@ INT AppendToVertBuf(FLOAT value)
return 1; return 1;
} }
/*****************************************************************************
* FreeLineBuf
*
* Cleans up vertex buffer structure.
*****************************************************************************/
VOID FreeLineBuf(VOID)
{
if (LineBuf)
{
HeapFree(GetProcessHeap(), 0, LineBuf);
LineBuf = NULL;
}
}
/*****************************************************************************
* FreeVertBuf
*
* Cleans up vertex buffer structure.
*****************************************************************************/
VOID FreeVertBuf(VOID)
{
if (VertBuf)
{
HeapFree(GetProcessHeap(), 0, VertBuf);
VertBuf = NULL;
}
}
/***************************************************************************** /*****************************************************************************
* GetWord * GetWord
* *
@ -634,9 +572,14 @@ INT DrawGlyph(UCHAR* glyphBuf, DWORD glyphSize, FLOAT chordalDeviation, FLOAT ex
/* /*
* Initialize the global buffer into which we place the outlines: * Initialize the global buffer into which we place the outlines:
*/ */
if (!InitLineBuf()) LineBuf = (FLOAT*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (LINE_BUF_QUANT) * sizeof(FLOAT));
if(!LineBuf)
goto exit; goto exit;
LineBufSize = LINE_BUF_QUANT;
LineBufIndex = 0;
/* /*
* Convert the glyph outlines to a set of polyline loops. * Convert the glyph outlines to a set of polyline loops.
* (See MakeLinesFromGlyph() for the format of the loop data * (See MakeLinesFromGlyph() for the format of the loop data
@ -681,8 +624,14 @@ INT DrawGlyph(UCHAR* glyphBuf, DWORD glyphSize, FLOAT chordalDeviation, FLOAT ex
* auxiliary routines for drawing. * auxiliary routines for drawing.
*/ */
if (!InitVertBuf()) VertBuf = (FLOAT*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (VERT_BUF_QUANT) * sizeof(FLOAT));
if (!VertBuf)
goto exit; goto exit;
VertBufSize = VERT_BUF_QUANT;
VertBufIndex = 0;
if (!(tess = gluNewTess())) if (!(tess = gluNewTess()))
goto exit; goto exit;
@ -799,11 +748,16 @@ INT DrawGlyph(UCHAR* glyphBuf, DWORD glyphSize, FLOAT chordalDeviation, FLOAT ex
exit: exit:
FreeLineBuf();
if(LineBuf)
HeapFree(GetProcessHeap(), 0, LineBuf);
if(VertBuf)
HeapFree(GetProcessHeap(), 0, VertBuf);
if (tess) if (tess)
gluDeleteTess(tess); gluDeleteTess(tess);
FreeVertBuf();
return status; return status;
} }