cocos2d-x全屏切换

前段时间研究了下cocos2d-x的全屏功能,虽然勉强算是实现了,但是却没有办法进行全屏的切换。

一直都是参照着nehe的opengl教程学习gl的,切换全屏这个功能描述起来也不复杂,就是给rc换成切换之后的dc就可以了。但是其中牵涉到句柄啊什么的各种windows api的东西,这些东西只在操作系统中接触过,而且只是原理层,实在是看到就头大。而且cocos的音频引擎似乎也和hwnd相关,实际改动起来各种bug,完全摸不着头脑。

昨天把引擎的音频换成openal了,cocos貌似因为al是lgpl的协议没有支持这个好东西?不过这不是重点。这样一来切换全屏就只剩下wgl上的问题了。但是原来的思路依然是行不通呢,生成新的dc的过程中哪些资源应该被销毁,哪些资源应该保留完全靠自己试。虽然rc中的东西肯定是不用动了,但是dc相关的各个变量也足以让人dt。于是在试了一阵之后终于还是放弃在网上找了一个新的思路。

之所以要切换dc是为了销毁原来的窗口,生成全屏窗口,然后再把rc付上去。但其实windows还是提供了别的方法来做这些事情的。过程姑且不计,能看到效果就行。代码如下,需要切换的时候直接调用即可。

这样的话也不用原来那些繁琐的重建窗口了,就避免了很多麻烦。

本博客所有内容遵循CC BY-NC-SA 4.0协议, 如有转载,请注明出处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">