﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-小彪的3D世界-文章分类-OpenGL</title><link>http://www.cnitblog.com/30701735/category/7284.html</link><description>小彪的狗窝</description><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 08:19:38 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 08:19:38 GMT</pubDate><ttl>60</ttl><item><title>使用注意事项GLboolean</title><link>http://www.cnitblog.com/30701735/articles/44906.html</link><dc:creator>Game Fun</dc:creator><author>Game Fun</author><pubDate>Tue, 03 Jun 2008 16:50:00 GMT</pubDate><guid>http://www.cnitblog.com/30701735/articles/44906.html</guid><wfw:comment>http://www.cnitblog.com/30701735/comments/44906.html</wfw:comment><comments>http://www.cnitblog.com/30701735/articles/44906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/30701735/comments/commentRss/44906.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/30701735/services/trackbacks/44906.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">GLboolean是否OpenGL内置的数据类型,之所以使用它是因为OpenGL本身是一个跨平台的3D图形库,所以通常鼓励在使用OpenGL进行编程时尽量使用其内置的数据类型以提高移植性,但必须注意到的是:在Windows平台中的VC8.0测试中发现,GLboolean实际上是unsigned int型,而很多人往往会由于其名称的缘故而将它当作bool型别来使用,这样不仅会带来隐式型别转换带来的效率问题,而已更严重的是由于其实际型别为unsigned int,所以可能导致表达式的非恒等性!<br>例如:当我们不小心写下如下语句<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">GLboolean&nbsp;test&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;GL_TRUE;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;以下为中间过程语句</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/dot.gif"><img src="http://www.cnitblog.com/Images/dot.gif"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(test&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;GL_TRUE)<br><img id=Codehighlighter1_69_79_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_69_79_Open_Text.style.display='none'; Codehighlighter1_69_79_Closed_Image.style.display='inline'; Codehighlighter1_69_79_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_69_79_Closed_Image style="DISPLAY: none; WIDTH: 9px; HEIGHT: 14px" onclick="this.style.display='none'; Codehighlighter1_69_79_Closed_Text.style.display='none'; Codehighlighter1_69_79_Open_Image.style.display='inline'; Codehighlighter1_69_79_Open_Text.style.display='inline';" height=14 src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=9 align=top></span><span id=Codehighlighter1_69_79_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_69_79_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;<img src="http://www.cnitblog.com/Images/dot.gif">.<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p style="FONT-SIZE: 10pt"><br>并人为结果比较结果肯定为真时,其结果有时候会令你失望!<br>因为由于test为的实际型别为unsigned int ,所以其在上述的中间过程中有可能被无意间修改为其它的位于unsigend int范围内的值,而GL_TRUE实际上是一个宏定义#define GL_TRUE 1<br>所以此表达式有可能在某些情况不为真,要知道此处的错误很可能导致长时间的调试.</p>
<img src ="http://www.cnitblog.com/30701735/aggbug/44906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/30701735/" target="_blank">Game Fun</a> 2008-06-04 00:50 <a href="http://www.cnitblog.com/30701735/articles/44906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>