91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

OpenGL使用Window API繪制矢量字體(非常簡(jiǎn)單)

資源截圖

代碼片段和文件信息

#include?“Font.h“

bool?CFontPrinter::makeChar(wchar_t?wChar)
{
HDC?hdc?=?CreateCompatibleDC(wglGetCurrentDC());

if(!hdc)
return?false;

HBITMAP?hbitmap?=?CreateCompatibleBitmap(hdc?1?1);
HBITMAP?hbitmapOld?=?(HBITMAP)Selectobject(hdc?hbitmap);

if((DWORD)hbitmapOld?==?GDI_ERROR)
return?false;

CFontData*?fontData?=?new?CFontData();

glGenTextures(1?&fontData->m_TextureID);
glBindTexture(GL_TEXTURE_2D?fontData->m_TextureID);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_LINEAR);
glTexEnvi(GL_TEXTURE_ENV?GL_TEXTURE_ENV_MODE?GL_MODULATE);

glPixelStorei(GL_UNPACK_SWAP_BYTES?GL_FALSE);
glPixelStorei(GL_UNPACK_LSB_FIRST?GL_FALSE);
glPixelStorei(GL_UNPACK_ROW_LENGTH?0);
glPixelStorei(GL_UNPACK_SKIP_ROWS?0);
glPixelStorei(GL_UNPACK_SKIP_PIXELS?0);
glPixelStorei(GL_UNPACK_ALIGNMENT?1);

int?iTexWidth?=?m_FontSize;
int?iTexHeight?=?m_FontSize;
int?iLevel?=?0;

if?(!m_Font)
{
//?創(chuàng)建文字
m_Font?=?CreateFontW(-m_FontSize?0?0?0?500?false?false?false
DEFAULT_CHARSET?OUT_TT_ONLY_PRECIS?CLIP_DEFAULT_PRECIS
DEFAULT_QUALITY?DEFAULT_PITCH?|?(m_FontName?FF_DONTCARE:FF_SWISS) m_FontName);
}
if(!m_Font)
return?false;

HFONT?hfontOld?=?(HFONT)Selectobject(hdc?m_Font);
if((DWORD)hfontOld?==?GDI_ERROR)
return?false;

GLYPHMETRICS?gm={0};
MAT2?const?matrix22_identity={{01}{00}{00}{01}};

DWORD?dwBuffSize?=?GetGlyphOutlineW(hdc?wChar?GGO_GRAY8_BITMAP?&gm?0?NULL?&matrix22_identity);

if((signed)dwBuffSize?==?-1)
{
return?false;
}

if(GetGlyphOutlineW(hdc?wChar?GGO_METRICS?&gm?0?NULL?&matrix22_identity)==GDI_ERROR)
{
return?false;
}

BYTE?*pBuff?=?new?BYTE[dwBuffSize];
BYTE?*pSwapBuff=new?BYTE[dwBuffSize];
memset(pBuff?0xff?dwBuffSize);
memset(pSwapBuff?0xff?dwBuffSize);

if(GetGlyphOutlineW(hdc?wChar?GGO_GRAY8_BITMAP?&gm?dwBuffSize?pBuff?&matrix22_identity)?==?GDI_ERROR)
{
delete[]?pBuff;
return?false;
}

if(gm.gmBlackBoxY?==?0)
{
printf(“black?box?Y?zero!!!\n“);
return?false;
}

//?從?Gray64?轉(zhuǎn)換到?Gray256
unsigned?int?const?uiRowSize?=?dwBuffSize?/?gm.gmBlackBoxY;
BYTE*?pPtr;
BYTE*?pSPtr;
for(unsigned?int?nY?=?0;?nY? {
pPtr?=?pBuff?+?uiRowSize?*?nY;
pSPtr?=?pSwapBuff?+?gm.gmBlackBoxX?*?nY;
for?(unsigned?int?nX?=?0;?nX? {
if?(*pPtr?==?0)
{
*pSPtr?=?0;
}
else?if?(*pPtr?==?0x40)
{
*pSPtr?=?0xff;
}
else
{
*pSPtr?=?*pPtr?< }

pPtr++;
pSPtr++;
}
}

//?加載紋理
glTexImage2D(GL_TEXTURE_2D?iLevel?GL_LUMINANCE8?gm.gmBlackBoxX?gm.gmBlackBoxY?0?GL_LUMINANCE?GL_UNSIGNED_BYTE?pSwapBuff);

//?記錄文字信息
fontData->m_FontWidth?=?(float)gm.gmCellIncX?/?(float)m_FontSize;
fontData->m_Width?=?(float)gm.gmBlackBoxX?/?(float)m_FontSize;
fontData->m_Height?=?(float)g

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????6126??2014-08-21?13:59??FontDemo\FontDemo\Debug\BuildLog.htm

?????文件???????4676??2014-08-21?13:51??FontDemo\FontDemo\Font.cpp

?????文件???????1083??2014-08-21?13:14??FontDemo\FontDemo\Font.h

?????文件???????7354??2014-08-21?14:09??FontDemo\FontDemo\FontDemo.cpp

?????文件???????3602??2014-08-21?14:00??FontDemo\FontDemo\FontDemo.vcproj

?????文件???????1415??2014-08-21?17:09??FontDemo\FontDemo\FontDemo.vcproj.TianYu-PC.TianYu.user

?????文件???????6202??2014-08-21?16:45??FontDemo\FontDemo\Release\BuildLog.htm

?????文件????????890??2014-08-20?13:37??FontDemo\FontDemo.sln

????..A..H.?????23552??2014-08-21?17:09??FontDemo\FontDemo.suo

?????目錄??????????0??2014-08-21?16:43??FontDemo\FontDemo\Debug

?????目錄??????????0??2014-08-21?17:08??FontDemo\FontDemo\Release

?????目錄??????????0??2014-08-21?17:08??FontDemo\Debug

?????目錄??????????0??2014-08-21?14:09??FontDemo\FontDemo

?????目錄??????????0??2014-08-21?17:08??FontDemo\Release

?????目錄??????????0??2014-08-21?17:09??FontDemo

-----------?---------??----------?-----??----

????????????????54900????????????????????15


評(píng)論

共有 條評(píng)論