D3D11的简单字体

本文介绍了如何在Direct3D 11(D3D11)中实现字体渲染,特别是通过Direct2D(D2D)和窗口共享技术来实现。文章详细讲解了在D3D11设备和D3D10.1设备之间如何同步和共享纹理,以及如何使用D2D和DirectWrite创建和渲染文本。内容包括设备创建、纹理共享、互斥量的使用、D2D渲染目标属性设置、画笔创建、字体格式初始化、DirectWrite的使用等步骤,展示了在D3D11中实现字体渲染的复杂过程。
摘要由CSDN通过智能技术生成

本篇的任务是要先学会混合和纹理才能够做到的。

这儿有几种方法能够在D3D11中实现字体显示,一个是学会使用微软想要我们使用的两个新的API,Direct2D和DirectWrite,实际上它们是很有用处的,暂不提它们的灵活性(除了不能够直接使用D3D11设备之外),它的缺点就是 由于不能够直接在D3D11中使用,需要在D3D10.1的设备中使用,导致在渲染时需要在这两种设备之间切换。


本篇是在混合篇基础上进行的,做了一些细微的改动。这儿将会学会到如何同步api。

在d3d11中渲染字体到屏幕会比较慢。


D3D11中的字体渲染(使用Direct2D)

在initializeD3D函数中初始化direct3d 10.1设备,direct2d和directdraw。另外一个从initscene函数调用的函数将会创建一个矩形用来渲染direct2d渲染目标纹理,从direct2d和direct3d 10.1纹理渲染创建一个着色器资源视图。该视图将用于纹理化那个矩形。

想要更为灵活和好看的字体还是用Direct2D ,然而,微软却没有让Direct2D直接作用于Direct3D 11。 

那么要怎么在一个D3D11的应用程序中使用D2D呢?需要使用一种叫做窗口共享(surface sharing)的技术。使用这种方法,能够使用带d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值