zl程序教程

您现在的位置是:首页 >  工具

当前栏目

(12)Blender源码分析之加载图片的uiDefButImage过程

源码 分析 图片 过程 加载 12 Blender
2023-09-14 09:16:23 时间

在前面我们可以看到闪屏的图片,这个图片是通过函数wm_block_splash_image来加载进来的,然后图片就在数据结构ImBuf,这个数据结构保存了图像相关的属性和显示的内容。刚刚有这个图片的数据,还不能在界面上显示出来,因为图片在界面上没有办法进行布局,如果是多张图片,就会重叠在一起,所以需要把图片放入按钮的数据结构里面,这样提供了布局的功能。

下面这行代码,就是解决图片放入到按钮的过程,最后得到uiBut对象,

  uiBut *but = uiDefButImage(

      block, ibuf, 0, 0.5f * U.widget_unit, splash_width, splash_height, NULL);

这次我们就来分析这个函数uiDefButImage:

uiBut *uiDefButImage(

    uiBlock *block, void *imbuf, int x, int y, shor