• 大小: 84.34 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-30
  • 语言: 其他
  • 标签:

资源简介

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


评论

共有 条评论

相关资源