最近做了一个项目,需要给Linux桌面的Unity3d游戏做一个Splash屏。 在无盘系统中,游戏启动到显示游戏的内容,可能需要很长时间。 这个时候显示黑屏,用户体验肯定不大好。 Unity3d对移动端提供了Splash Screen的设置和显示,但是在桌面系统中(Windows,Linux,MAC)没有提供该服务。 为了克服无盘系统长时间的黑屏,特增加Splash屏幕。
对Linux下的图形编程是新手,所有先是浏览了所有的Xlib的编程接口,推荐http://tronche.com/gui/x/xlib/。 由于Unity3d的窗口创建,显示是unity3d自己创建出来的,而且其没有提供任何方法做控制,但是只能设置其background 的pixmap来实现。 需要彻底解决黑屏和增加Splash Screen的问题,需要准备一下基础知识:
X Bitmap和Pixmap
大家可以从网上能找出答案,我需要指出的是,X Bitmap是黑白的,不支持彩色,而且Xlib或是X Window在设置背景图片的时候,需要用的是pixmap (这点太坑了,花了很久才知道这个问题)。 而Xlib不直接提供方法从*.xpm文件中读入,需要libXpm库,但是一般装Xorg的时候带了。XLib编程的错误代码解析
在遇到自己程序不起作用的时候,如何分析错误代码是关键,大家可以参考http://www.r