- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NeHeOpenGL第二十九课:Blt函数
NeHe OpenGL第二十九课:Blt函数
2010-08-23 22:10:19
标签: HYPERLINK /tagindex.php?keyword=Blt \t _blank Blt HYPERLINK /tagindex.php?keyword=OpenGL \t _blank OpenGL HYPERLINK /tagindex.php?keyword=NeHe \t _blank NeHe HYPERLINK /tagindex.php?keyword=%BA%AF%CA%FD \t _blank 函数
原创作品,允许转载,转载时请务必以超链接形式标明文章 HYPERLINK /1130898/381869 \t _blank 原始出处 、作者信息和本声明。否则将追究法律责任。 HYPERLINK /1130898/381869 /1130898/381869
NeHe OpenGL第二十九课:Blt函数
Blitter 函数:
类似于DirectDraw的blit函数,过时的技术,我们有实现了它。它非常的简单,就是把一块纹理贴到另一块纹理上。
这篇文章是有Andreas Lffler所写的,它写了一份原始的教程。过了几天,Rob Fletcher发了封邮件给我,他重新改写了所有的代码,我在它的基础上把glut的框架变换为Win32的框架。 现在让我们开始吧!
下面是一个保存图像数据的结构 typedef struct Texture_Image{int width; // 宽int height; // 高int format; // 像素格式unsigned char *data; // 纹理数据} TEXTURE_IMAGE;
接下来定义了两个指向这个结构的指针 typedef TEXTURE_IMAGE *P_TEXTURE_IMAGE;
P_TEXTURE_IMAGE t1; // 指向保存图像结构的指针P_TEXTURE_IMAGE t2; // 指向保存图像结构的指针
下面的函数为w*h的图像分配内存 P_TEXTURE_IMAGE AllocateTextureBuffer( GLint w, GLint h, GLint f){P_TEXTURE_IMAGE ti=NULL; unsigned char *c=NULL; ti = (P_TEXTURE_IMAGE)malloc(sizeof(TEXTURE_IMAGE)); // 分配图像结构内存
if( ti != NULL ) {ti-width = w; // 设置宽度ti-height = h; // 设置高度ti-format = f; // 设置格式// 分配w*h*f个字节c = (unsigned char *)malloc( w * h * f); if ( c != NULL ) {ti-data = c;}else {MessageBox(NULL,内存不足,分配图像内存错误,MB_OK | MB_ICONINFORMATION);return NULL;}}
else{MessageBox(NULL,内存不足,分配图像结构内存错??,MB_OK | MB_ICONINFORMATION);return NULL;}return ti; // 返回指向图像数据的指针}
下面的函数释放分配的内存 // 释放图像内存void DeallocateTexture( P_TEXTURE_IMAGE t ){if(t){if(t-data){free(t-data); // 释放图像内存}
free(t); // 释放图像结构内存}}
下面我们来读取*.raw的文件,这个函数有两个参数,一个为文件名,另一个为保存文件的图像结构指针。 // 读取*.RAW文件,并把图像文件上下翻转一符合OpenGL的使用格式。int ReadTextureData ( char *filename, P_TEXTURE_IMAGE buffer){FILE *f;int i,j,k,done=0;int stride = buffer-width * buffer-format; // 记录每一行的宽度,以字节为单位unsigned char *p = NULL;
f = fopen(filename, rb); // 打开文件if( f != NULL ) // 如果文件存在{
如果文件存在,我们通过一个循环读取我们的纹理,我们从图像的最下面一行,一行一行的读取图像。 for
您可能关注的文档
- 二轮复习高中数学方法——同一法.doc
- 读后感窦宝荣.doc
- 鸿瑞信息孤岛解决方案.doc
- 学术影响因子.doc
- 2011少先队大队.doc
- 基于单片机控制的温度智能控制系统.doc
- 五年级数学竞赛练习题.doc
- 关于货币政策相关问题的理论综述.doc
- 对数的概念-教案最初版.doc
- 面试准备一.doc
- 2025安全监察人员能力提升B卷题库含答案详解【完整版】.docx
- 2025安全监察人员每日一练试卷含答案详解【培优A卷】.docx
- 2024安全监察人员通关题库(全优)附答案详解.docx
- 2024安全监察人员检测卷含完整答案详解【有一套】.docx
- 2024安全监察人员能力检测试卷附参考答案详解【突破训练】.docx
- 2025年安全监察人员模考模拟试题带答案详解AB卷.docx
- 2024安全监察人员模考模拟试题及答案详解(历年真题).docx
- 2024年安全监察人员练习题【培优B卷】附答案详解.docx
- 2024年安全员考试考试黑钻押题带答案详解(精练).docx
- 2024年高职单招考前冲刺练习及参考答案详解【满分必刷】.docx
最近下载
- 院感知识试题(附答案).docx VIP
- 分布式光伏电站屋顶租赁协议(标准范本).docx
- 高温防暑安全培训课件.pptx VIP
- 11SG534带水平段钢斜梯(45°)(OCR).pdf VIP
- 一升二数学《暑假作业》 每日一练.docx VIP
- 《商务-谈判》课程标准).doc VIP
- 对我国长距离浆体管道输送工程设计的思考-论文发表.PDF VIP
- 110(66)kV~500kV架空输电线路运行规范.ppt VIP
- 牛津译林版九年级上册英语Unit 1-Unit 8语法知识点复习提纲.pdf VIP
- 《GBT20001.3-2015标准编写规则第3部分:分类标准》(2025版)深度解析.pptx
文档评论(0)