#pragma once #include #include #include #include #include #include #include class DrawingContext; class DirectXShaderProgram; class TextData; class SceneText; struct ID2D1DeviceContext2; struct ID2D1SolidColorBrush; struct IDWriteFactory; class DirectXTextPainter { public: DirectXTextPainter(); void initialize(ID2D1DeviceContext2* d2dContext, IDWriteFactory* directWriteFactory); void paint(SceneText* text, DrawingContext* context, ID2D1DeviceContext2* d2dContext, IDWriteFactory* directWriteFactory); private: void initializeBrush(ID2D1DeviceContext2* d2dContext); void updateTextFormat(IDWriteFactory* directWriteFactory, float fontSize); Microsoft::WRL::ComPtr mTextBrush; Microsoft::WRL::ComPtr mTextFormat; };