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

  • 大小: 8KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-29
  • 語言: 其他
  • 標簽: 中文??

資源簡介

使用FreeType接受Unicode字符集渲染到紋理。。。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?FT_FREETYPE_H
#include?
#include?
#ifdef?_WIN32
#pragma?comment(lib??“freetype2312MT_D.lib“)
#endif
#define?MAX_NO_TEXTURES?1

#define?CUBE_TEXTURE?0

GLuint?texture_id[MAX_NO_TEXTURES];

struct?xCharTexture
{
GLuint??m_texID;
wchar_t?m_chaID;
int?????m_Width;
int?????m_Height;

????int?????m_adv_x;
????int?????m_adv_y;
????int?????m_delta_x;
????int?????m_delta_y;
public:
xCharTexture()
{
m_texID??=?0;
m_chaID??=?0;
m_Width??=?0;
m_Height?=?0;
}
}g_TexID[65536];
class?xFreeTypeLib
{
????FT_Library?m_FT2Lib;
FT_Face????m_FT_Face;

int???m_w;
int???m_h;
public:
xFreeTypeLib()
{
if?(FT_Init_FreeType(?&m_FT2Lib)?)?
exit(0);
}

void?load(const?char*?font_file??int?_w??int?_h)
{
//加載一個字體取默認的Face一般為Regualer
if?(FT_New_Face(?m_FT2Lib?font_file?0?&m_FT_Face?))?
{
getchar();
exit(0);
}
FT_Select_Charmap(m_FT_Face?FT_ENCODING_UNICODE);
m_w?=?_w?;?m_h?=?_h;
m_FT_Face->num_fixed_sizes;
//大小要乘64.這是規定。照做就可以了。
//FT_Set_Char_Size(?m_FT_Face??0??m_w?< FT_Set_Pixel_Sizes(m_FT_Facem_w?m_h);
}

GLuint?loadChar(wchar_t?ch)
{
if(g_TexID[ch].m_texID)
return?g_TexID[ch].m_texID;

if(FT_Load_Char(m_FT_Face?chFT_LOAD_RENDER|FT_LOAD_FORCE_AUTOHINT|
(true???FT_LOAD_TARGET_NORMAL?:?FT_LOAD_MONOCHROME?|?FT_LOAD_TARGET_MONO)?)???)
{
return?0;
}

????????xCharTexture&?charTex?=?g_TexID[ch];

//得到字模
FT_Glyph?glyph;
if(FT_Get_Glyph(?m_FT_Face->glyph?&glyph?))
return?0;

//轉化成位圖
FT_Render_Glyph(?m_FT_Face->glyph???FT_RENDER_MODE_LCD?);//FT_RENDER_MODE_NORMAL??);?
FT_Glyph_To_Bitmap(?&glyph?ft_render_mode_normal?0?1?);
FT_BitmapGlyph?bitmap_glyph?=?(FT_BitmapGlyph)glyph;

//取道位圖數據
FT_Bitmap&?bitmap=bitmap_glyph->bitmap;

//把位圖數據拷貝自己定義的數據區里.這樣舊可以畫到需要的東西上面了。
int?width??=??bitmap.width;
int?height?=??bitmap.rows;

m_FT_Face->size->metrics.y_ppem;
m_FT_Face->glyph->metrics.horiAdvance;


charTex.m_Width?=?width;
charTex.m_Height?=?height;
charTex.m_adv_x?=?m_FT_Face->glyph->advance.x?/?64.0f;
charTex.m_adv_y?=?m_FT_Face->size->metrics.y_ppem;?//m_FT_Face->glyph->metrics.horiBearingY?/?64.0f;
charTex.m_delta_x?=?(float)bitmap_glyph->left;
charTex.m_delta_y?=?(float)bitmap_glyph->top?-?height;
glGenTextures(1&charTex.m_texID);
????????glBindTexture(GL_TEXTURE_2DcharTex.m_texID);
char*?pBuf?=?new?char[width?*?height?*?4];
for(int?j=0;?j?? {
for(int?i=0;?i? {
unsigned?char?_vl?=??(i>=bitmap.width?||?j>=bitmap.rows)???0?:?bitmap.buffer[i?+?bitmap.width*j];
pBuf[(4*i?+?(height?-?j?-?1)?*?width?*?4)??]?=?0xff;
pBuf[(4*i?+?(height?-?j?-?1)?*?width?*?4)+1]?=?0xff;
pBuf[(4*i?+?(height?-?j?-?1)?*?width?*

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-10-29?10:13??glut_rar_15123\
?????文件?????????889??2010-10-28?16:24??glut_rar_15123\FreeTypeTest.sln
?????文件????????9728??2010-10-29?09:51??glut_rar_15123\FreeTypeTest.suo
?????文件????????3833??2010-10-28?16:24??glut_rar_15123\FreeTypeTest.vcproj
?????文件????????1425??2010-10-29?09:51??glut_rar_15123\FreeTypeTest.vcproj.20100524-1519.Administrator.user
?????文件????????8388??2010-10-28?16:34??glut_rar_15123\freetype_test.cpp

評論

共有 條評論