首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectWrite.TextLayout变换矩阵没有影响

DirectWrite.TextLayout变换矩阵没有影响
EN

Stack Overflow用户
提问于 2013-07-23 16:18:11
回答 1查看 491关注 0票数 0

我正在使用DirectWrite (通过SharpDX)绘制一个TextLayout,除了几件事情之外,它的工作原理与预期一样。我调用这个TextLayout构造函数:

http://sharpdx.org/documentation/api/m-sharpdx-directwrite-textlayout--ctor-2

我的代码非常直接:

代码语言:javascript
复制
// define 45 deg rotation matrix
var transformMatrix = new SharpDX.DirectWrite.Matrix();
transformMatrix.M11 = 0.7f;
transformMatrix.M12 = 0.7f;
transformMatrix.M21 = -0.7f;
transformMatrix.M22 = 0.7f;
transformMatrix.Dx = 0;
transformMatrix.Dy = 0;

var pixelsPerDip = 5;

var TextLayout = new SharpDX.DirectWrite.TextLayout(DWFactory, "Hello world!",
        TextFormat, 400, 200, pixelsPerDip, transformMatrix, true);

我可以将转换矩阵更改为任何值,但它对输出没有影响。我还发现,除了当我指定零时不绘制文本外,pixelsPerDip没有任何效果。我深入研究了SharpDX源代码,这些输入似乎被正确地处理了。我做错了什么?

我使用的TextLayout构造函数调用CreateGdiCompatibleTextLayout()。我正在做/使用的其他事情是否可能与GDI不兼容,从而导致了我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-30 00:57:59

传递给IDWriteTextLayout构造函数的转换只会影响布局的暗示/网格拟合和微妙的度量(除非您需要GDI兼容的像素对齐度量,否则创建自然布局的另一个构造函数将提供更精确的亚像素布局)。要绘制具有不同方向的文本布局,必须设置要绘制到的内容的转换(如果使用的是SetTransform设备上下文/呈现目标或SetCurrentTransform (如果是IDWriteBitmapRenderTarget) )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17815599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档