IMGUI官方自带的例子里有一个Widgets项,里面有个Images

由于官方只演示了字体默认图片,并没有演示如何加载自定义图片

我们先搜索一下这个Images关键词

通过代码搜索,观察发现,这个纹理ID是画图的关键

ImTextureID my_tex_id = io.Fonts->TexID;

我们搜索看看io.Fonts->TexID是什么时候被赋值的(以下是Direct11的IMGUI)

观察得到流程为CreateTexture2D->CreateShaderResourceView->TexID

根据D3D11的相关知识,可以知道先创建一个2D纹理得到ID3D11Texture2D句柄,再通过CreateShaderResourceView得到ID3D11ShaderResourceView* g_pFontTextureView

即为纹理ID。

只要模拟这个过程就可以得到纹理ID:


ID3D11ShaderResourceView* DX11LoadTextureImageFromFile(ID3D11Device *pD3dDevice, wchar_t* lpszFilePath)
{ID3D11Texture2D * pTexture2D = NULL;D3D11_TEXTURE2D_DESC dec;HRESULT result;D3DX11_IMAGE_LOAD_INFO loadInfo;ZeroMemory(&loadInfo, sizeof(D3DX11_IMAGE_LOAD_INFO));loadInfo.BindFlags = D3D11_BIND_SHADER_RESOURCE;loadInfo.Format = DXGI_FORMAT_R8G8B8A8_UNORM;loadInfo.MipLevels = D3DX11_DEFAULT; //这时会产生最大的mipmaps层。 loadInfo.MipFilter = D3DX11_FILTER_LINEAR;result = D3DX11CreateTextureFromFile(pD3dDevice, lpszFilePath, &loadInfo, NULL, (ID3D11Resource**)(&pTexture2D), NULL);pTexture2D->GetDesc(&dec);if (result != S_OK){return NULL;}ID3D11ShaderResourceView*pFontTextureView = NULL;// Create texture viewD3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;ZeroMemory(&srvDesc, sizeof(srvDesc));srvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;srvDesc.Texture2D.MipLevels = dec.MipLevels;srvDesc.Texture2D.MostDetailedMip = 0;pD3dDevice->CreateShaderResourceView(pTexture2D, &srvDesc, &pFontTextureView);return pFontTextureView;
}

调用例子:

 if (ImGui::Begin(u8"IMGUI", false, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize)){if (!m_pImageTextureView1){m_pImageTextureView1 = DX11LoadTextureImageFromFile(GetD3dDevice(), (wchar_t*)L"D:\\1.jpg");}ImTextureID my_tex_id = m_pImageTextureView1;float my_tex_w = (float)300;float my_tex_h = (float)400;ImGui::Image(my_tex_id, ImVec2(my_tex_w, my_tex_h), ImVec2(0, 0), ImVec2(1, 1), ImVec4(1.0f, 1.0f, 1.0f, 1.0f), ImVec4(1.0f, 1.0f, 1.0f, 0.5f));}

D3D9同理

IMGUI_DX11显示自定义图片相关推荐

  1. 03-UITableView索引栏显示自定义图片

    如果对iOS开发感兴趣,可以来黑马程序员学习iOS:黑马程序员 1.1-系统API有没有提供相关的属性或者代理呢? 1.2-自定义View作为索引栏 1.3-使用NSString显示图片原理 1.3. ...

  2. vue 图片不存在时 显示自定义图片

    遇见的问题: 当请求的图片为空时,默认图片,路径是对的,但是就是不出来 建议放在store里面,因为使用的自定义图片的地方可能有多处: 第一种:多个页面需要使用时 //这里我是直接放在store里面的 ...

  3. HTML中视频默认显示自定义图片

    用特定的图片给视频做封面 方法一 在HTML代码中直接添加poster属性 代码如下: //html代码,需要在video标签中加入poster属性,把封面图的路径加上 <video id=&q ...

  4. Android 图片黑白显示 自定义饱和度

    Android 自定义显示黑白色图片 1.先下载下来需要显示的图片(或头像) 我模拟下,将图片放到assert文件夹下,拿到他的InputStream.代码如下: 1 InputStream in = ...

  5. qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...

    主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...

  6. 显示自定义表情图片(replace将文字表情替换为图片)

    显示自定义表情图片(replace将文字表情替换为图片) <div id="moment"></div>var face = { '[哎呀]': '< ...

  7. vue图片img加载失败显示自定义默认图片(缺省图)

    vue图片img加载失败显示自定义默认图片(缺省图) 1.图片加载示例  2.加载失败显示默认图片  3.加载失败默认图片代码处理 <div class="book-img" ...

  8. 《前端》echarts排行榜,类目名字在柱子上方全部显示,前三名序号使用自定义图片背景--什么鬼待处理

    echarts排行榜,类目名字在柱子上方全部显示,前三名序号使用自定义图片背景https://blog.csdn.net/orangeverity/article/details/107160849 ...

  9. android 自定义Gifview显示gif图片

    在android 开发中,由于Imagview 不能显示gif图片,所以就得自定义View 来实现显示gif图片 而android.graphics.Movie可以把gif图片解析成Movie帧来显示 ...

  10. Android自定义View实现图片放大,平移和显示大图片

    原文地址 图片如果不显示:点击这里 前言 首先分析一下需求:将一个图片显示在屏幕上,并能够对其放大或者平移. 用 canvas 画 bitmap 主要有这么几个方法. void drawBitmap( ...

最新文章

  1. 虚拟机安装linux系统无法上网的解决方法
  2. Exchange Server 2003 Cluster
  3. Java instanceof 关键字【复习】
  4. Java中Socket通信-服务端和客户端双向传输字符串实现
  5. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档
  6. 【python 3.6】调用另一个文件的类的方法
  7. ambari mysql 密码_Ambari 切换 mysql 数据库
  8. php日志数据统计,PHP统计Nginx日志的User Agent数据
  9. linux文本模式无法打字,文本终端模式下中文输入法(Fcitx)配置(openSUSE Leap 42.1)...
  10. Spring之自动装配注入
  11. R语言colorRampPalette函数-创建颜色梯度(渐变色)
  12. h264视频与pcm音频合成MP4视频格式
  13. android远程协助
  14. 触摸屏控制变频器程序 触摸屏控制变频器程序
  15. 基于Python构建机器学习Web应用
  16. 长时间从事电脑操作者,知道怎样保护你的眼睛吗?
  17. Python 和matlab 关于DMD(动态模态分解)的实现和对比 21/06/08
  18. 《高校bbs或者科研论坛》
  19. Qt 调用echo命令写文件失效
  20. iOS开发之Build版本号自增

热门文章

  1. 工程数学(经常用到的工程数学知识进行整理)
  2. 计算机网络之物联网的特点及其主要应用领域
  3. win FlashFxp与ubuntu vsftpd共享文件
  4. PyQt5 第六章 拖拽和绘画(二)
  5. 如何选用GPU云服务器?
  6. Redis哨兵原理详解
  7. Android沉浸式的两种方法
  8. 数据结构基础— How Long Does It Take
  9. 北京航空航天大学计算机学院保研率,北京航空航天大学计算机学院(专业学位)计算机技术保研条件...
  10. xingtai -斗罗大陆图片下载