-
OpenGL ES glTexSubImage2D返回GL_INVALID_OPERATION
Xcode升级成4.2正式版后,使用IOS5.0的SDK,以前一直真机与模拟器都正常的程序。发现在真机正常,模拟器发现不能正常显示。很长见模拟器正常,真机出问题的,没想到这次正好反了。想找出其中的原因,GL的初始化应该没什么好说的,在render处逐条语句glGetError,在glTexSubImage2D是返回GL_INVALID_OPERATION错误,百思不得其解。
根据文档中的说法引起GL_INVALID_OPERATION错误的不外乎这几种原因:
GL_INVALID_OPERATION is generated if the texture array has not been defined by a previous glTexImage2D or glCopyTexImage2D operation.
GL_INVALID_OPERATION is generated if type is GL_UNSIGNED_SHORT_5_6_5 and format is not GL_RGB
GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, or GL_UNSIGNED_SHORT_5_5_5_1 and format is not GL_RGBA.
上面,那几种情况我都不太像,很悲情。这种用法应该没有什么太大问题,但就是不能正常显示。另外新写个Demo程序可以正常显示贴图。然后逐步Demo中对工程对比排查,最终原因是glTexImage2D生成材质是的type指定了GL_RGBA,而在glTexSubImage2D时由于BMP格式的数据,使用了GL_BGRA,导致显示不了。相当悲情的是,以前写的时候居然可以正常运行,这次升级SDK后,才爆露出问题,不过幸好真机正常。
开发是一门严谨的活,来不了半点差错,不能麻痹大意。遇到棘手的问题,将问题抽取出来缩小范围,一点一点的排除,速度不要求快,保证每一步不出错就可以,总能定位出问题的。[......]
5 条评论 -
Arm Neon intrinsics
The ARMv7 CPU (Cortex-A8) used in the iPhone 3GS is a very nice CPU. One of the things it can do is real SIMD intrinsics. Although Apple don’t document this, the fine folks who made GCC do.
Here’s how to demonstrate this on Xcode.[......]
-
OpenGL ES Programming Guide for iOS
一份OpenGL ES for IOS的英文文档,来自苹果官方。
在线版参见这里:查看原文
[......]
OpenGLES_ProgrammingGuide.rar (1.3 MiB, 142 hits) -
Introduction to NEON on iPhone zz
ComeFrom:http://wanderingcoder.net/2010/06/02/intro-neon/
A sometimes overlooked addition to the iPhone platform that debuted with the iPhone 3GS is[......]
-
RVDS 2.2 Introductory Tutorial
-
VS2010 ReportViewer 卸载Appdomain 时出错(异常来自HRESULT:0×80131015)
使用ReportViewer窗体在退出程序时,会报“异常来自HRESULT:0×80131015”。
解决方法:
在窗体退出处加上,reportViewer1.LocalReport.ReleaseSandboxAppDomain()。
-
NHibernate文档(中文版)
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。一份中文文档,感谢原作者和翻译者付出的辛劳。
如果您看到[......] -
CentOS 5.5升级PHP5.1.6到5.2.14
今天把手里的一台VPS中的PHP升级到5.2.14,简单记录一下。
服务器是CentOS 5.5,采用yum -y update php,但是由于CentOS源中没有最新的PHP源,所以需要在/etc/yum.repos.d/增加一个repo文件,名称任意,比如vcfans.repo,具体的文件内容如下:
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka然后执行yum -y update php,如果提示“thread.error: can’t start new thread”,需要关闭fastestmirror。
位置:/etc/yum/pluginconf.d/fastestmirror.conf,将其中的enable=1改成enable=0。重新执行yum -y update php。
执行完成后,php -v 看看版本是不是已经最新了?service httpd restart重启apache结束。[......]
-
枚举IE窗口
-
windows 驱动编程规范
原文:http://hi.baidu.com/kernelkit/blog/item/3e291d230d4d595b9922ed35.html
最近又在看恶心的代码,于是在地铁上想了想windows驱动编程的规范问题。整理了一下,如下,欢迎指正和补充。
1 驱动编程中,代码的规范性比[......]
-
html中的select控件的美化
-
这两天做了一个SSH登录器
我兄弟刚子做一些SSH帐号的小买卖,SSH登录的本机配置对一些入门级选手,还是比较烦琐的。本着买帐号包教包会服务宗旨,手把手教用户使用。由于用户的网络环境千差万别,每个用户都要教一遍真是累死人。
那天聊天的时候,他想请我帮他做一个自动登录的小程序,要求就是输入用户名和密码后就点登录,开IE就能上墙外网站。兄弟从来没请我做过什么事,别的忙帮不上,这点小忙还是能帮上的。这几天就着手写这个小程序,到昨晚为止已经基本完成了。
上图:
主要功能:
1.无需手动设置,输入帐号密码登录连接成功后,打开IE就可上墙外网站。2.支持路由上网和ADSL上网的两种方式,自动进入代理状态。
3.支持DNS代理,解决国内的DNS污染问题。
4.支持脚本加速,让你飞快的畅游国内外。
其他还有一些小功能,就不提了。
最后广告时间:
如果没有SSH帐号的朋友可以去he99.taobao.com买一个,在国内混没有个帐号真的扛不住,这不DropBox不是也挂了么,想查一下胡罗卜含有哪些营养元素都不容易。我兄弟这家有专业人员在管理相当正规,非VPS搭建的SSH服务,绝对物理主机,不放任何网站,专用SSH服务器。
PS One:如果你朋友也想畅游海内外,对电脑也不是太懂,你又没太多时间帮助TA配置。那直接使用我做的这个小程序,一键搞定这些繁琐事务。
PS 兔:说从vcfans.com的Lonkil介绍过去的,可能还会有一点小优惠,不过这幅度应该不大,因为已经很便宜了。
再次PS:本人纯属友情帮兄弟忙,与我没有任何利益挂勾。
[......]
-
C/C++代码异常处理技巧
在dbgger上看到这个小技巧,这样写代码真的很比我用goto优雅多了,特别是很多种异常需要处理时,一个处理函数中将有无数个goto来goto去的,虽然只是向一个方向跳,但还是好乱。当然Goto灵活性还是比较好的,可能会给阅读造成障碍。[......]
-
Araxis Merge 2010 patch
-
另一种自动更新MS的调试符号
如果你的网速还行的话,可以按下面链接中提到方法更新本机符号。
Use the Microsoft Symbol Server to obtain debug symbol files
此法一个好处,让众多调试器自动更新符号文件,VC, Windbg, IDA均支持。
缺点影响你速度,因为需要下载符号文件。[......]