资源简介
opengl游戏编程徐明亮版
代码片段和文件信息
/**
* @file GLFont.cpp
*
* 项目描述: DirectInput键盘演示
* 文件描述: 字体类
* 适用平台: Windows98/2000/NT/XP
*
* 作者: WWBOSS
* 电子邮件: wwboss123@gmail.com
* 创建日期: 2006-09-13
* 修改日期: 2006-12-02
*
*/
//========================================================
#include “Font.h“
GLFont::GLFont()
{
}
/** 析构函数 */
GLFont::~GLFont()
{
if(m_hFont)
Deleteobject(m_hFont); /**< 删除字体句柄 */
}
/** 初始化字体 */
bool GLFont::InitFont()
{
/**< 创建字体 */
m_hFont = CreateFont(-26 /**< 字体高度 */
0 /**< 字体宽度 */
0 /**< 字体的旋转角度 Angle Of Escapement */
0 /**< 字体底线的旋转角度Orientation Angle */
FW_BOLD /**< 字体的重量 */
FALSE /**< 是否使用斜体 */
FALSE /**< 是否使用下划线 */
FALSE /**< 是否使用删除线 */
GB2312_CHARSET /**< 设置字符集 */
OUT_TT_PRECIS /**< 输出精度 */
CLIP_DEFAULT_PRECIS /**< 裁剪精度 */
ANTIALIASED_QUALITY /**< 输出质量 */
FF_DONTCARE|DEFAULT_PITCH /**< Family And Pitch */
“宋体“); /**< 字体名称 */
if(!m_hFont)
return false; /**< 创建字体失败则返回 */
/** 初始化成功则返回true */
return true;
}
/** 在指定位置输出字符串 */
void GLFont::PrintText(char *string float x float y)
{
HBITMAP hBitmaphOldBmp; /**< 定义两个位图句柄 */
BITMAP bm; /**< 位图结构变量 */
SIZE size; /**< 位图尺寸 */
GLboolean lptp;
HDC hDC = ::CreateCompatibleDC(0); /**< 暂存设备场景 */
glGetBooleanv(GL_LIGHTING&lp); /**< 查看场景中是否有光照 */
glGetBooleanv(GL_TEXTURE_2D&tp);/**< 查看场景中是否启用纹理 */
/** 保存和设置一些属性 */
glLoadIdentity();
glPushMatrix();
glTranslatef(00-10.0f);
glDisable(GL_LIGHTING); /**< 关闭光照 */
glDisable(GL_TEXTURE_2D); /**< 关闭纹理 */
glDisable(GL_DEPTH_TEST); /**< 关闭深度测试 */
Selectobject(hDC m_hFont); /**< 选择字体 */
::GetTextExtentPoint32(hDC string strlen(string) &size);/**< 获取字符位图大小 */
hBitmap = CreateBitmap(size.cx size.cy1 1 NULL); /**< 创建与hDC相关单色位图 */
hOldBmp = (HBITMAP)Selectobject(hDChBitmap); /**< 选择位图 */
SetBkColor(hDC RGB(0 0 0)); /**< 背景色为黑色 */
SetTextColor(hDC RGB(255 255 255)); /**< 字体颜色白色 */
SetBkMode(hDC OPAQUE); /**< 用当前的背景颜色填充背景 */
TextOut(hDC 0 0 string strlen(string)); /**< 输出文字到暂存hDC */
/** 获得相关位图数据结构 */
Getobject(hBitmap sizeof(bm) &bm);
size.cx = (bm.bmWidth + 31) & (~31); /**< 边缘对齐 */
size.cy = bm.bmHeight;
int bufsize = size.cx * size.cy/8; /**< 图形数据长度 */
/** 定义单色位图结构 */
struct {
BITMAPINFOHEADER bih;
RGBQUAD col[2];
}bic;
/** 获取单色位图结构信息 */
BITMAPINFO *binf = (BITMAPINFO *)&bic;
binf->bmiHeader.biSize = sizeof(binf->bmiHeader); /**< 修改结构信息 */
binf->bmiHeader.biWidth = bm.bmWidth;
binf->bmiHeader.biHeight = bm.bmHeight;
binf->bmiHeader.biPlanes = 1;
binf->bmiHeader.biBitCount = 1; /**< 单色 */
binf->bmiHeader.biCompression = BI_RGB; /**< 颜色方式 */
binf->bmiHeader.biSizeImage = bufsize;
binf->bmiHeader.biXPelsPerMeter = 1;
binf->bmiHeader.biYPelsPerMeter = 1;
binf->bmiHeader
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15 2011-05-15 19:43 openglgame\New Text Document.txt
文件 315904 2007-11-13 11:05 openglgame\OpenGL开发库\DLL\GLU.DLL
文件 154624 2007-11-13 11:05 openglgame\OpenGL开发库\DLL\GLUT.DLL
文件 237568 2007-11-13 11:05 openglgame\OpenGL开发库\DLL\GLUT32.DLL
文件 1213440 2007-11-13 11:05 openglgame\OpenGL开发库\DLL\OPENGL.DLL
文件 69083 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\GL.H
文件 12024 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\GLAUX.H
文件 12794 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\GLEXT.H
文件 18282 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\GLU.H
文件 27670 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\GLUT.H
文件 17183 2007-11-13 11:05 openglgame\OpenGL开发库\INCLUDE\WGLEXT.H
文件 1312394 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\GLAUX.LIB
文件 35606 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\glu.lib
文件 49514 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\GLU32.LIB
文件 79654 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\glut.lib
文件 69580 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\GLUT32.LIB
文件 242802 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\opengl.lib
文件 336274 2007-11-13 11:05 openglgame\OpenGL开发库\LIB\OPENGL32.LIB
文件 2566 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\BuildLog.htm
文件 188416 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\DirectInput键盘演示.exe
文件 796940 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\DirectInput键盘演示.ilk
文件 846848 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\DirectInput键盘演示.pdb
文件 18015 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\Font.obj
文件 28600 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\GLfr
文件 23394 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\GLWindow.obj
文件 47111 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\Input.obj
文件 32426 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\KeyboardDemo.obj
文件 10551 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\stdafx.obj
文件 388096 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\vc70.idb
文件 126976 2007-11-13 11:04 openglgame\第10章\DirectInput键盘演示\Debug\vc70.pdb
............此处省略1364个文件信息
相关资源
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
- OpenGL场景漫游
- 用opengl实现的太阳系模型
- OpenGL 3D贪吃蛇程序,很小
- OpenGL爆炸碎片化效果 源码
- OpenGL三茶壶三光源光源绕着茶壶旋转
- 10个OpenGL的源码
- vc写的一个游戏里面三维场景漫游
- OpenGL实现的简单游戏引擎
- OpenGL游戏程序设计源码
- glew最新版本glew1.11.0
- OpenGL 火箭
- 天空盒和地面
- 三维场景漫游.zip
- openGL实现的正方体六面贴图
- opengl简易翻牌游戏
- Qt Openglwidget 显示图片纹理贴图
- OpenGL实现三维物体旋转,缩放
- MD5GPU.rar
- OpenGL立方体在世界坐标系中缩放_旋转
- OpenGL ES 2.0 编程指南 中文版.pdf
- openGL实现三维点云显示
- opengl写的趣味3D骰子
- 计算机图形学实验 opengl实现太阳系运
- opengl实现地球围绕太阳转动
评论
共有 条评论