YSTest
PreAlpha_b400_20130424
The YSLib Test Project
首页
相关页面
模块
命名空间
类
文件
文件列表
文件成员
全部
类
命名空间
文件
函数
变量
类型定义
枚举
枚举值
友元
宏定义
组
页
TextLayout.cpp
浏览该文件的文档.
1
/*
2
Copyright (C) by Franksoft 2009 - 2012.
3
4
This file is part of the YSLib project, and may only be used,
5
modified, and distributed under the terms of the YSLib project
6
license, LICENSE.TXT. By continuing to use, modify, or distribute
7
this file you indicate that you have read the license and
8
understand and accept it fully.
9
*/
10
28
#include "
YSLib/Service/TextLayout.h
"
29
#include "
YSLib/Service/yblit.h
"
30
31
using namespace
ystdex;
32
33
YSL_BEGIN
34
35
using namespace
Drawing;
36
using namespace
Text;
37
38
YSL_BEGIN_NAMESPACE
(Drawing)
39
40
SDst
41
FetchResizedBottomMargin
(const TextState& ts,
SDst
h
)
42
{
43
YAssert
(
GetTextLineHeightExOf
(ts) != 0,
"Zero line height found."
);
44
45
return
ts.Margin.Bottom + (h + ts.LineGap -
GetVerticalOf
(ts.Margin))
46
%
GetTextLineHeightExOf
(ts);
47
}
48
49
u16
50
FetchResizedLineN
(
const
TextState& ts,
SDst
h
)
51
{
52
YAssert
(
GetTextLineHeightExOf
(ts) != 0,
"Zero line height found."
);
53
54
return
(h + ts.LineGap -
GetVerticalOf
(ts.Margin))
55
/
GetTextLineHeightExOf
(ts);
56
}
57
58
SPos
59
FetchLastLineBasePosition
(
const
TextState& ts,
SDst
h
)
60
{
61
const
u16
n(
FetchResizedLineN
(ts, h));
62
63
return
ts.Margin.Top + ts.Font.GetAscender()
64
+
GetTextLineHeightExOf
(ts) * (n > 0 ? n - 1 : n);
65
// return h - ts.Margin.Bottom + ts.GetCache().GetDescender() + 1;
66
}
67
68
69
SDst
70
FetchCharWidth
(
const
Font& font,
ucs4_t
c)
71
{
72
return
font.GetAdvance(c, font.GetGlyph(c));
73
}
74
75
YSL_END_NAMESPACE
(Drawing)
76
77
YSL_END
78
YFramework
source
YSLib
Service
TextLayout.cpp
生成于 2013年 四月 24日 星期三 18:41:28 , 为 YSTest使用
1.8.2