Basic FreeType renderer implementation.
[gdipp.git] / gdipp_server / ggo_renderer.h
blob0872f7b2b87e0839a7cab267b38b898da49ee355
1 #pragma once
3 #include "gdipp_server/renderer.h"
5 namespace gdipp
8 class ggo_renderer : public renderer
10 public:
11 explicit ggo_renderer(rpc_session *render_session);
12 bool render(bool is_glyph_index, LPCWSTR lpString, UINT c, glyph_run *new_glyph_run);
14 private:
15 static void outline_ggo_to_ft(DWORD ggo_outline_buf_len, const BYTE *ggo_outline_buf, std::vector<FT_Vector> &curve_points, std::vector<char> &curve_tags, std::vector<short> &contour_indices);
17 bool get_glyph_metrics(wchar_t ch, GLYPHMETRICS &glyph_metrics) const;
18 const FT_Glyph outline_to_bitmap(wchar_t ch, GLYPHMETRICS &glyph_metrics) const;
20 static FT_Glyph _empty_outline_glyph;
22 UINT _ggo_format;
23 MAT2 _matrix;