Merge with MPC-HC 6d1472b2f18266d92e5bc068667de348c0cd3b3b.
[xy_vsfilter.git] / src / subtitles / libssf / Glyph.h
blob157bda03cff2c874306e66ad3ece77220901e24f
1 /*
2 * Copyright (C) 2003-2006 Gabest
3 * http://www.gabest.org
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GNU Make; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
22 #pragma once
24 #include <atlcoll.h>
25 #include "GlyphPath.h"
26 #include "FontWrapper.h"
27 #include "Rasterizer.h"
29 namespace ssf
31 class Glyph
33 void Transform(GlyphPath& path, CPoint org, const CRect& subrect);
35 struct SplineCoeffs {float cx[4], cy[4];};
37 public:
38 WCHAR c;
39 Style style;
40 CAtlArray<SplineCoeffs> spline;
41 Size scale;
42 bool vertical;
43 FontWrapper* font;
44 int ascent, descent, width, spacing, fill;
45 int row_ascent, row_descent;
46 GlyphPath path, path_bkg;
47 CRect bbox;
48 CPoint tl, tls;
49 Rasterizer ras, ras_bkg, ras_shadow;
51 public:
52 Glyph();
54 void CreateBkg();
55 void CreateSplineCoeffs(const CRect& spdrc);
56 void Transform(CPoint org, const CRect& subrect);
57 void Rasterize();
59 float GetBackgroundSize() const;
60 float GetShadowDepth() const;
61 CRect GetClipRect() const;