DX11写字体用三种方法,GDI,D2D,Directx write

这里介绍D2D  因为DX11是不能使用D2D的(这里我也不知道为什么)

但我们可以通过一个sharing surface 的概念,先用DX10.1来使用D2D,把渲染目标分享,再用DX11来渲染

Step1:先通过IDXGIFactory1 接口来设置一个容器

创建10.1设备和11的设备

创建贴图,必须是BGRA格式

创建D3D11 KeyedMutex(为了10.1和11设备都能使用贴图,相当于一个互斥锁)

这个锁有两个功能,一个是获得,一个是释放(保证两个设备知道彼此什么时候在用贴图)

因为10.1设备不能直接创建一个贴图的互斥锁,所以我们用11来创建,然后创建一个shared resource Object(有些专业概念我也不知道怎么翻译,就直接拿来用吧),这个object是存储一个指向贴图的指针

创建一个IDXGISurface1 object指向刚才的shared resource Object。(这个surface是用来获得互斥锁的)

初始化D2D

先设置D2D的属性,然后创建D2D Render Target,就是上面的surface

通过CreateDxgiSurfaceRenderTarget() 得到D2D的render target object(这个在下面会用的到)

用上一行得到的Object创建一个画刷(这样才能在屏幕上写字)( CreateSolidColorBrush() method of the ID2D1RenderTarget interface)

初始化DirectxWrite(用来渲染文字,感觉好多功能都是类似的,可能还是我理解不到位)

要创建DW,和其他一样要先创建Blahblah一堆

设置DW的文本格式和对准(具体的函数这里就不列出来了,要学习的朋友们去我贴出来的网页看吧)

Step2:

创建shader resource(和上面提到的不是一个东西),这个是用来做纹理贴图的

(可以把D2D当成是一个画家工具包,把DW当成是一个画家)

原文地址

【杂记】Directx11 Font相关推荐

  1. DirectX11 With Windows SDK--08 Direct2D与Direct3D互操作性以及利用DWrite显示文字

    前言 注意:从这一章起到后面的所有项目无一例外都利用了Direct2D与Direct3D互操作性,但系统要求为Win10, Win8.x 或 Win7 SP1且安装了KB2670838补丁以支持Dir ...

  2. DirectX11教程

    最近在看DirectX11的教程,我对dx的接触也只是皮毛,边看边学吧. 看看网上只有w18767104183翻译了前三章,想着能不能继续他翻译一点呢,希望自己能一起成长. 点击图片是官方网站,译文点 ...

  3. [原创]商城系统下单库存管控系列杂记(二)(并发安全和性能部分延伸)

      商城系统下单库存管控系列杂记(二)(并发安全和性能部分延伸)     前言   参与过几个中小型商城系统的开发,随着时间的增长,以及对系统的深入研究和测试,发现确实有很多值得推敲和商榷的地方(总有 ...

  4. 火狐自定义字体失败 downloadable font: no supported format found

    Bootstrap+AdminLTE搭起来的服务,突然字体图标都访问不了了,报错如下: 解决办法1:FontAwesome官网找解决办法,不引用本地的css,直接引用官网建议的地址 <scrip ...

  5. Flutter中集成Font Awesome

    1.添加引用 在 pubspec.yaml文件中,加入 font awesome的引用 1 dependencies: 2 flutter: 3 sdk: flutter 4 5 # The foll ...

  6. Directx11教程(61) tessellation学习(3)

    现在我们看看在不同tess factor的情况下,三角形是如何细分的?(这儿三条边和内部tess factor值是一样的,而且partitioning("integer")) 下面 ...

  7. Directx11 教程(2) 基本的windows应用程序框架(2)

    Directx11 教程(2) 基本的windows应用程序框架(2) 原文:Directx11 教程(2) 基本的windows应用程序框架(2) 在本教程中,我们把前面一个教程的代码,进行封装.把 ...

  8. CSS文字文本样式(font字体、css外观属性)

    1. font字体 1.1. font-size:大小 作用:font-size属性用于设置字号. p { font-size:20px; } 单位: 可以使用相对长度单位,也可以使用绝对长度单位. ...

  9. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

最新文章

  1. mysql5.5数据库操作_命令行下mysql数据库基本操作
  2. 十一、Redis五大数据类型之三Set
  3. 汉诺塔游戏的python实现——递归函数
  4. 基于ARM A53开发板,使用按键中断及中断底半部实现《led灯状态取反》的驱动
  5. (4)pyspark---dataframe清理
  6. 深入解读:获得 2021 Forrester 全球云数仓卓越表现者的阿里云数据仓库
  7. Dubbo RESTful风格
  8. 最短路算法(3种算法)
  9. 初识java——Java程序的历史、开发和运行
  10. php阿拉伯语字符串,使用PHP将RTL(阿拉伯语)文本写入图像
  11. 【异常】java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte
  12. app inventor制作手机蓝牙遥控器
  13. 如何通俗易懂的跟别人讲一下“人工智能”的发展历史?
  14. 公司名称注册,公司名称查询,企业名称注册事项
  15. 7、purge_haplogs 基因组去冗余
  16. 图灵机器人:到基层去,做人工智能的开放平台
  17. 智能交通组合拳--飞桨实现车辆类别/车牌/车速检测、跨境头跟踪、车流密度检测、逆行检测
  18. Oracle 数据统计计算
  19. 《Frustum PointNets for 3D Object Detection from RGB-D Data》中文翻译
  20. 【评测】小鼠肝细胞系(GHA1、AML12、BNL CL.2)培养实验操作步骤

热门文章

  1. UE4 如何将材质Material保存为本地图片Png
  2. Latex 常用括号类表达式
  3. Linux -- vim编辑器使用教程
  4. vue 如何实现多页面应用(简单版)
  5. 3300万IOPS、39微秒延迟、碳足迹认证,谁在认真搞事情?
  6. bat echo命令
  7. dagger2-重点篇
  8. 最新版SDWebImage的使用 -- 推荐 - 高效
  9. php抓取图片curl,php获取远程图片的两种 CURL方式和sockets方式获取远程图片
  10. 微信公众号调起扫码功能