OpenGL在特定条件下的崩溃--浮点协处理器异常

alphapaopao 2004-06-16 08:05:05
OpenGL在特定条件下的崩溃--浮点协处理器异常


程序源代码下载
http://alphasun.icpcn.com/alphasun/download/rubber-banding-OpenGL.rar



崩溃条件
1、调用 gluLookAt
2、_control87(851971, -1); 告诉浮点协处理器 遇到 异常 要报告
3、启用 glEnable(GL_COLOR_LOGIC_OP);
4、画点

glBegin(GL_POINTS);
glVertex3d(0,0,0);
glEnd();


在第四步就会崩溃。不同的机器上可能出现不同类型的 exception。大致种类如下:
1、float devide by zero
2、float overflow
3、float invalid operation

程序源代码下载
http://alphasun.icpcn.com/alphasun/download/rubber-banding-OpenGL.rar



源代码片段

// EXCEPTION AG 2004
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
///################################
gluLookAt(m_pntViewer.x,
m_pntViewer.y,
m_pntViewer.z,
m_pntTarget.x,
m_pntTarget.y,
m_pntTarget.z,
m_vUp.x,
m_vUp.y,
m_vUp.z);

int old = _control87(0, 0);
old = _CW_DEFAULT;

_control87(851971, -1);

//####################################################
//
glEnable(GL_COLOR_LOGIC_OP);
glDisable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);

glBegin(GL_POINTS);
glVertex3d(0,0,0);
glEnd();
glDisable(GL_COLOR_LOGIC_OP);
//####################################################
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphapaopao 2004-07-15
  • 打赏
  • 举报
回复
zhucde(【風間苍月】) 分数都给你了
alphapaopao 2004-06-17
  • 打赏
  • 举报
回复
仍然会崩溃,代码如下

// EXCEPTION AG 2004
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
_control87(851971, -1);
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);

glBegin(GL_POINTS);
glVertex3d(0,0,0);
glEnd();
glDisable(GL_COLOR_LOGIC_OP);
//####################################################
alphapaopao 2004-06-16
  • 打赏
  • 举报
回复
有点眉目。明天再去看程序
alphapaopao 2004-06-16
  • 打赏
  • 举报
回复
应该没问题的阿。是不是缺少文件阿?
zhucde 2004-06-16
  • 打赏
  • 举报
回复
收藏.

你上次的那个代码还是没有编译成功.
还是那个VECTOR的问题
alphapaopao 2004-06-16
  • 打赏
  • 举报
回复
up

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧