1 #ifndef OSMSCOUT_MAP_MAPPAINTERDIRECTX_H 2 #define OSMSCOUT_MAP_MAPPAINTERDIRECTX_H 23 #include <unordered_map> 25 #include <osmscout/MapDirectXFeatures.h> 39 #if defined(UNICODE) || defined(_UNICODE) || defined(_MBCS) || defined(MBCS) 50 std::wstring character;
69 DirectXTextLayout(IDWriteFactory* m_pWriteFactory,
double fontSize, IDWriteTextFormat* font, std::string text);
80 typedef std::unordered_map<uint32_t, IDWriteTextFormat*> FontMap;
82 typedef std::unordered_map<uint32_t, ID2D1SolidColorBrush*> BrushMap;
84 typedef std::unordered_map<uint64_t, ID2D1PathGeometry*> GeometryMap;
85 GeometryMap m_Geometries;
86 GeometryMap m_Polygons;
87 typedef std::unordered_map<uint64_t, ID2D1Bitmap*> BitmapMap;
89 typedef std::unordered_map<uint64_t, ID2D1StrokeStyle*> StrokeStyleMap;
90 StrokeStyleMap m_StrokeStyles;
91 ID2D1StrokeStyle* m_dashLessStrokeStyle;
93 ID2D1Factory* m_pDirect2dFactory;
94 IDWriteFactory* m_pWriteFactory;
95 ID2D1RenderTarget* m_pRenderTarget;
96 IWICImagingFactory* m_pImagingFactory;
97 IDWriteRenderingParams* m_pRenderingParams;
100 std::map<double, double> fontHeightMap;
106 D2D1_COLOR_F GetColorValue(
const Color& color);
107 ID2D1SolidColorBrush* GetColorBrush(
const Color& color);
108 ID2D1SolidColorBrush* GetColorBrush(D2D1_COLOR_F& color);
109 ID2D1StrokeStyle* GetStrokeStyle(
const std::vector<double>& dash);
110 void _DrawText(
double x,
double y,
const Color& color,
const DirectXTextLayout& textLayout);
111 bool LoadBitmapFromFile(PCWSTR uri, ID2D1Bitmap **ppBitmap);
112 IDWriteTextFormat* GetFont(
const Projection& projection,
const MapParameter& parameter,
double fontSize);
115 virtual void AfterPreprocessing(
const StyleConfig& styleConfig,
117 const MapParameter& parameter,
118 const MapData& data);
120 virtual void BeforeDrawing(
const StyleConfig& styleConfig,
122 const MapParameter& parameter,
123 const MapData& data);
125 virtual void AfterDrawing(
const StyleConfig& styleConfig,
127 const MapParameter& parameter,
128 const MapData& data);
130 virtual bool HasIcon(
const StyleConfig& styleConfig,
132 const MapParameter& parameter,
136 virtual double GetFontHeight(
const Projection& projection,
137 const MapParameter& parameter,
141 const MapParameter& parameter,
144 const std::string& text);
146 virtual void DrawGround(
const Projection& projection,
147 const MapParameter& parameter,
151 const MapParameter& parameter,
157 const MapParameter ¶meter,
165 virtual void RegisterRegularLabel(
const Projection &projection,
166 const MapParameter ¶meter,
167 const std::vector<LabelData> &labels,
168 const Vertex2D &position,
174 virtual void RegisterContourLabel(
const Projection &projection,
175 const MapParameter ¶meter,
180 const MapParameter& parameter,
181 const MapData& data);
183 virtual void DrawIcon(
const IconStyle* style,
184 double centerX,
double centerY,
185 double width,
double height);
187 virtual void DrawSymbol(
const Projection& projection,
188 const MapParameter& parameter,
192 virtual void DrawPath(
const Projection& projection,
193 const MapParameter& parameter,
196 const std::vector<double>& dash,
199 size_t transStart,
size_t transEnd);
201 std::shared_ptr<DirectXLabel> Layout(
const Projection& projection,
202 const MapParameter& parameter,
203 const std::string& text,
206 bool enableWrapping =
false,
207 bool contourLabel =
false);
220 virtual void DrawContourSymbol(
const Projection& projection,
221 const MapParameter& parameter,
224 size_t transStart,
size_t transEnd);
226 virtual void DrawArea(
const Projection& projection,
227 const MapParameter& parameter,
232 ID2D1Factory* pDirect2dFactory,
233 IDWriteFactory* pWriteFactory);
236 void DiscardDeviceResources();
239 const MapParameter& parameter,
241 ID2D1RenderTarget* renderTarget);
Definition: MapPainterDirectX.h:45
Definition: LabelLayouter.h:144
Index selectors by type and level.
Definition: StyleConfig.h:553
FLOAT m_fSize
Definition: MapPainterDirectX.h:64
Definition: LabelLayouter.h:87
#define OSMSCOUT_MAP_DIRECTX_API
Definition: MapDirectXImportExport.h:45
IDWriteTextLayout * m_pDWriteTextLayout
Definition: MapPainterDirectX.h:65
Definition: MapPainterDirectX.h:60
std::string character
Definition: MapPainterDirectX.h:52
IDWriteFactory * m_pWriteFactory
Definition: MapPainterDirectX.h:63
Definition: Projection.h:43
Definition: MapPainter.h:75
std::shared_ptr< PathTextStyle > PathTextStyleRef
Definition: Styles.h:877
double height
Definition: MapPainterDirectX.h:55
Definition: Styles.h:1135
double width
Definition: MapPainterDirectX.h:54
Definition: LabelPath.h:42
Definition: LabelLayouter.h:98
Definition: PathTextRenderer.h:67
std::shared_ptr< StyleConfig > StyleConfigRef
Definition: StyleConfig.h:849
Definition: MapPainterDirectX.h:48
Definition: MapPainter.h:87
DWRITE_TEXT_METRICS m_TextMetrics
Definition: MapPainterDirectX.h:66
Definition: LabelLayouter.h:129
std::shared_ptr< TypeConfig > TypeConfigRef
Definition: TypeConfig.h:1227
Definition: MapPainter.h:179
CapStyle
Definition: Styles.h:69