游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1525|回复: 1

又遇到了问题,请教高手。谢!

[复制链接]

5

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-4-26 22:26:00 | 显示全部楼层 |阅读模式
我在学习写D3D8的程序。是个在D3D中用帖图的方法来实现二维描绘的。为了让渲染模块能实时渲染被“数据控制类”修改的“基本数据”(基本数据包括:有多少个要渲染的对象,分别的帖图是什么,还有位置。数据控制类:是我自己写的,习惯了MFC中的文档/视图模式)
我把“基本数据”写成了链表。
struct MYOBJECT
{
MYOBJECT * TOP;  //上一链
MYOBJECT * NEXT; //下一链
int P;  //object的属性
float fH,fW;  //object的长和宽
float fx,fy;  //object的当然位置,最终屏幕位置结果由矩阵变换后得出。
LPCTSTR mFileName;  //纹理的文件名
LPDIRECT3DVERTEXBUFFER8 *g_pVertices;
LPDIRECT3DTEXTURE8 *g_pText;
};
在每个循环中都会根据链表的链数从头开始渲染。
可是总是非法操作,说d3d8.dll文件产生无效页。我跟踪了程序的所有变量的变化(当然,特别注意了链表数据的变化),没有发现明显的错误。渲染单幅图像(不用链表)时就不会出错。
不明白!按道理应该行的通啊。
请教高手,我的作法是不是不可行啊。在链表中保存顶点指针和纹理指针是不是不行,(这是我自己想出来的)。因为微软的例程中是固定了要渲染对象的个数,做的数组。而我的程序不想固定对象的个数。

5

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2004-4-28 22:27:00 | 显示全部楼层

Re:又遇到了问题,请教高手。谢!

怎么没人?再次请教,有没有其它的方法?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-1 22:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表