在前面我们可以看到闪屏的图片,这个图片是通过函数wm_block_splash_image来加载进来的,然后图片就在数据结构ImBuf,这个数据结构保存了图像相关的属性和显示的内容。刚刚有这个图片的数据,还不能在界面上显示出来,因为图片在界面上没有办法进行布局,如果是多张图片,就会重叠在一起,所以需要把图片放入按钮的数据结构里面,这样提供了布局的功能。
下面这行代码,就是解决图片放入到按钮的过程,最后得到uiBut对象,
uiBut *but = uiDefButImage(
block, ibuf, 0, 0.5f * U.widget_unit, splash_width, splash_height, NULL);
这次我们就来分析这个函数uiDefButImage: