资源简介
opengl写的轮廓字体,有贴图,会动,3D旋转效果,有源代码,有exe。
代码片段和文件信息
#define WIN32_LEAN_AND_MEAN // trim the excess fat from Windows
/*******************************************************************
* Program: Chapter 12 Texture Mapped Font Example 1
* Author: Kevin Hawkins
* Description:
********************************************************************/
////// Defines
#define BITMAP_ID 0x4D42 // the universal bitmap ID
////// Includes
#include // standard Windows app include
#include
#include
#include
#include // standard OpenGL include
#include // OpenGL utilties
#include
// 在此处加入程序要求的库到链接器中:
#pragma comment(lib “opengl32.lib“) // 链接时查找OpenGL32.lib
#pragma comment(lib “glu32.lib“) // 链接时查找glu32.lib
#pragma comment(lib “glaux.lib“) // 定义每象素的位数
#define MAXTEXTURE 1 // 定义最大的纹理数目
#define pageNum 1
////// Types
typedef struct
{
int width; // width of texture
int height; // height of texture
unsigned int texID; // the texture object id of this texture
unsigned char *data; // the texture data
} texture_t;
////// Global Variables
HDC g_HDC; // global device context
bool fullScreen = false; // true = fullscreen; false = windowed
bool keyPressed[256]; // holds true for keys that are pressed
float angle = 0.0f;
unsigned int listbase; // display list base
GLYPHMETRICSFLOAT gmf[256]; // holds orientation and placement
// info for display lists
float zDepth = -10.0f; // control position along the z-axis
GLuint texture[MAXTEXTURE];
AUX_RGBImageRec *LoadImage(char *Filename) // 加载一个图片
{
FILE *File = NULL; // 文件句柄
if (!Filename) // 确保文件名已经提供
{
return NULL; // 如果没有则返回NULL
}
File = fopen(Filename“r“); // 检查文件是否存在
if (File) // 文件存在吗?
{
fclose(File); // 关闭File文件句柄
return auxDIBImageLoad(Filename); // 载入图片并返回其指针
}
return NULL; // 如果加载错误则返回NULL
}
BOOL LoadAllTextures(void) // 加载图片并转换为纹理
{
BOOL State = FALSE; // 状态指示
AUX_RGBImageRec *TextureImage[MAXTEXTURE]; // 为纹理开辟存储空间
memset(TextureImage 0 sizeof(void *) * MAXTEXTURE); // 清除图像记录,确保其内容为空并使指针指向NULL
// 加载图片并检查是否出错 ,如果图片不存在则返回
if ( (TextureImage[0]=LoadImage(“Data/8.bmp“)))
{
State=TRUE; // 设置状态变量为TRUE
glGenTextures(MAXTEXTURE &texture[0]); // 返回唯一的纹理名字来标识纹理保存在texture中
// 用图片数据产生纹理
for (int loop=0; loop {
// 使用来自位图数据生成的典型纹理
glBindTexture(GL_TEXTURE_2D texture[loop]);
// 生成纹理
gluBuild2DMipmaps(GL_TEXTURE_2D 3 TextureImage[loop]->sizeX TextureImage[loop]->sizeY GL_RGB GL_UNSIGNED_BYTE TextureImage[loop]->data);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR); // 线形滤波
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR); // 线形滤波
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 524 2009-04-18 12:19 轮廓字体\轮廓字体.dsw
文件 13665 2009-04-18 12:20 轮廓字体\轮廓字体.cpp
文件 237682 2009-04-18 12:21 轮廓字体\轮廓字体.exe
文件 14 2009-04-18 12:24 轮廓字体\read.txt
文件 264054 2009-04-18 12:23 轮廓字体\Data\8.bmp
目录 0 2009-04-24 12:42 轮廓字体\Data
目录 0 2009-04-24 12:42 轮廓字体
----------- --------- ---------- ----- ----
515939 7
评论
共有 条评论