以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  如何保存OpenGL图像?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=60495)


--  作者:wallace36
--  发布时间:3/26/2008 11:38:00 PM

--  如何保存OpenGL图像?
请问如何保存OpenGL图像?(打开后还能进行缩放平移等操作)。

我看孙鑫的VC++深入详解的第十三章,里面讲到利用可串行化类的Serialize函数保存和加载对象。它里面的例子是:建一个类(CGraph)使这个类串行化(从CObject派生),在类里保存绘图元素(一些变量),同时在类中增加一个绘图函数,在此函数中绘图;然后在View类里的OnLButtonUp函数中画图(同样的画图代码),然后通过定义CObArray类型的成员变量m_obArray保存数据,最后在View类的OnDraw()函数中通过调用CGraph对象的Draw函数完成图形绘制:
((CGraph*)m_obArray.GetAt(i))->Draw(pDC);——1

现在我的问题是,我是在OpenGL中绘图的,我的绘图函数DrawScene()是在View类里的(并不是在CGraph类里)。如果要用到上述语句1,就要把我的View类变成可串行化的类,这好像办不到(我试过把View类头文件和cpp文件中的DECLARE_DYNCREATE宏改成DECLARE_SERIAL,但系统一直报错error LNK2001);或者把绘图函数DrawScene定义在CGraph类里,但这样连图都画不出来了(因为OpenGL的一些设置都是在View类里的)。

请问我现在到底该怎么做才能保存绘制的图形?我对OpenGL的理解还不是很深,不知道上面关于问题的表述有没有说清楚。。。请高手多多指导!


--  作者:wallace36
--  发布时间:3/28/2008 9:27:00 PM

--  
没人指导。。。郁闷
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms