DirectWrite

---恢复内容开始---

文字的呈现要求。

内容,格式。

ID2D1Factory -> DrawText
             -> DreaTextLayout -> SetFontSize                               -> SetUnderlineIDWriteFactory -> IDWriteTextFormat
               -> IDWriteTextLayout

WriteFactory 提供格式。

D2D1Factory 提供画图方法。

IDWriteFactory

hr = DWriteCreateFactory(
        DWRITE_FACTORY_TYPE_SHARED,
        __uuidof(IDWriteFactory),
        reinterpret_cast<IUnknown**>(&pDWriteFactory_)
        );

IDWriteTextFormat

virtual HRESULT CreateTextFormat(
  [in]   const WCHAR * fontFamilyName,                     //字体名
         IDWriteFontCollection * fontCollection,           //字体集合的指针,一般为NULL
         DWRITE_FONT_WEIGHT  fontWeight,                   //指示字体粗细
         DWRITE_FONT_STYLE  fontStyle,                     //指示字体样式
         DWRITE_FONT_STRETCH  fontStretch,                 //指示字体拉伸
         FLOAT  fontSize,                                  //指示字体的逻辑大小,(DPI)
  [in]   const WCHAR * localeName,                         //区域设置名称
  [out]  IDWriteTextFormat ** textFormat
) = 0;

DrawText

void DrawText(
  [in]   WCHAR *string,                                    //字符串         UINT stringLength,                                //字符串长度
  [in]   IDWriteTextFormat *textFormat,                    //IDWriteTextFormat
  [ref]  const D2D1_RECT_F &layoutRect,                    //呈现矩形
  [in]   ID2D1Brush *defaultForegroundBrush,               //画刷
         D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,                  //可省略
         DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL            //可省略
);

 

IDWriteTextLayout

virtual HRESULT CreateTextLayout(
  [in]   const WCHAR * string,                             //字符
         UINT32  stringLength,                             //字符长度
         IDWriteTextFormat * textFormat,                   //IDWriteTextFormat
         FLOAT  maxWidth,                                  //呈现矩形大小
         FLOAT  maxHeight,
  [out]  IDWriteTextLayout ** textLayout
) = 0;

DrawTextLayout

virtual void DrawTextLayout(
        D2D1_POINT_2F origin,                                            //开始位置
  [in]  IDWriteTextLayout *textLayout,                                   //IDWriteTextLayout
  [in]  ID2D1Brush *defaultForegroundBrush,                              //画刷
        D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE
) = 0;

 

使用IDWriteTextLayout可以使文本其中指定的子文本,呈现不同的格式。

SetFontSize

virtual HRESULT SetFontSize(
    FLOAT  fontSize,                           //大小
    DWRITE_TEXT_RANGE  textRange               //指示子文本在原来文本中的位置。
) = 0;

DWRITE_TEXT_RANGE

struct DWRITE_TEXT_RANGE {
  UINT32 startPosition;                        //指示子文本在原文本的开始位置
  UINT32 length;                               //指示自文本的长度
};

---恢复内容结束---

时间: 2024-08-25 11:45:32

DirectWrite的相关文章

使用DirectWrite测量Direct2D文字大小

转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 最近在使用Direct2D和DirectWrite写引擎,在引擎中需要实现文本标签控件.但是文本标签的尺寸最好不是由我们人为指定的,要不然的话就会出现标签中文本溢出.空白存留等等问题,这样很影响美观.这就需要我们在文本标签的创建时根据文本的字体格式.文字排版等等因素来确定标签大小,而不是人为地指定大小,即实现标签大小的自适应功能(根据文本的内容.字体.格式等等因素得出的宽高来设置标签的大小). 然而,想要实现

Chrome 37 Beta: 使用Windows的DirectWrite和支持&lt;dialog&gt;元素

今天的Chrome Beta 发布版包含了许多新的开发者特性.这些特性帮助你制作更丰富的.更迅速的和更引人入胜的网页内容以及应用程序,尤其是移动设备上.除非特别指出,否则下面描述的变化对Android, Windows, Mac, Linux, and Chrome OS的Chrome均有效. 使用Windows的DirectWrite Chrome 37增加了对于DirectWrite的支持.这是Windows用于干净.高质量的文本渲染API,即使是高DPI显示器.在DirectWrite之前

DirectWrite文字排版——字符串去尾

DirectWrite是 DirectX 家族中专门用来做文本处理的部分,主要配合Direct2D进行渲染工作. 一.字符串去尾介绍 在文字渲染中,不免会遇到字符串去尾的需求.字符串去尾指的是:当字符串在指定的RECT中无法全部显示时,如何对文本进行截取,以适应目标区域大小:DirectWrite中的介绍是设置溢出布局宽度的文本的剪裁.我们把这种截取操作称为“字符串去尾”. 首先,给大家介绍一个DirectWrite中的类,IDWriteTextFormat类用于格式化文本的字体和段落属性,并且

Google Chrome Plus&mdash;&mdash;绿色便携多功能谷歌浏览器

一直就很喜欢用谷歌和火狐,不过浏览器默认功能是很少的,界面也不怎么好看,所以这个时候就需要浏览器三大神器:扩展,脚本,样式.Google Chrome Plus,我自己这么叫他,其实就是一个绿色便携多功能谷歌浏览器,是我的第一个定制版,是用shuax的补丁制作而成的,大家可以很方便的放进U盘使用,下面就详细的介绍一下我添加的东西. (不要被这么多的内容吓着,我只是写的比较详细罢了,并不复杂,看下去--) 分别从扩展,脚本,样式三个方面来介绍: [扩展]: 谷歌浏览器是一个多线程浏览器,每个扩展,

什么是字体渲染(Font Rendering)?

一.概述 理想中的文字指的是使用矢量图形描述出来的形状. 栅格化(Rasterization)指的是将矢量转化为像素. 三种渲染策略(Rendering Strategies) 初代:黑白渲染(black-and-white rendering) 二代:灰度渲染(Grayscale rendering) 三代:亚像素渲染(Subpixel rendering) Windows系统拥有两套图形渲染接口:GDI(图形设备接口Graphics Device Interface)与DirectWrite

Windows-universal-samples学习笔记系列二:Controls, layout, and text

Controls, layout, and text AutoSuggestBox migration Clipboard Commanding Context menu Context menu (XAML) Disabling selection Display orientation Downloadable fonts (DirectWrite) Downloadable fonts (XAML) Drag and drop Focus visuals Full screen mode

让Chrome可以修改字体

在chrome地址栏输入chrome://flags/ , 然后将"停用DirectWrite Windows"改为停用 , 这样自定义的字体就可以生效了.

360 浏览器 不显示 bootstrap 字体图标问题

最新在开发项目,需要引用字体图标 glyphicon ,在调试的过程中,google ,firefox 正常显示,360 ,ie 等 ,不显示. 排除了 1. 服务器 web mime 类型 2.项目中 css 路径问题 最终 在网上找的了一个方法:chrome://flags/   不显示字体图标问题.试着在360 浏览器中输入 次 命令,停用DirectWrite Windows 停用实验版DirectWrite字体渲染系 在次打开360 浏览器 glyphicon  字体图标正常显示

Qt5.7.0配置选项(configure非常详细的参数)

configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译目录和安装目录 源码目录就是包含源码的目录.编译目录是包含Makefiles文件.object文件和其他中间文件的目录.安装目录是二进制文件和库文件安装的目录. 当编译目录和源码目录不一样时,称为影子编译(shadow build),比如说,Qt Creator默认是使用影子编译来编译工程的.这里也