Simple dx examples working.
This commit is contained in:
parent
e0cad34d55
commit
850bd6906f
4 changed files with 18 additions and 16 deletions
|
@ -28,7 +28,6 @@ DirectXTextPainter::DirectXTextPainter()
|
|||
void DirectXTextPainter::initialize(ID2D1DeviceContext2* d2dContext, IDWriteFactory* directWriteFactory)
|
||||
{
|
||||
initializeBrush(d2dContext);
|
||||
initializeTextFormat(directWriteFactory);
|
||||
}
|
||||
|
||||
void DirectXTextPainter::initializeBrush(ID2D1DeviceContext2* d2dContext)
|
||||
|
@ -36,7 +35,7 @@ void DirectXTextPainter::initializeBrush(ID2D1DeviceContext2* d2dContext)
|
|||
d2dContext->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black), &mTextBrush);
|
||||
}
|
||||
|
||||
void DirectXTextPainter::initializeTextFormat(IDWriteFactory* directWriteFactory)
|
||||
void DirectXTextPainter::updateTextFormat(IDWriteFactory* directWriteFactory, unsigned fontSize)
|
||||
{
|
||||
directWriteFactory->CreateTextFormat(
|
||||
L"Verdana",
|
||||
|
@ -44,23 +43,26 @@ void DirectXTextPainter::initializeTextFormat(IDWriteFactory* directWriteFactory
|
|||
DWRITE_FONT_WEIGHT_NORMAL,
|
||||
DWRITE_FONT_STYLE_NORMAL,
|
||||
DWRITE_FONT_STRETCH_NORMAL,
|
||||
50,
|
||||
fontSize,
|
||||
L"en-us",
|
||||
&mTextFormat
|
||||
);
|
||||
mTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER);
|
||||
mTextFormat->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER);
|
||||
//mTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER);
|
||||
//mTextFormat->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER);
|
||||
}
|
||||
|
||||
void DirectXTextPainter::paint(SceneText* text, DrawingContext* context, ID2D1DeviceContext2* d2dContext, float width, float height)
|
||||
void DirectXTextPainter::paint(SceneText* text, DrawingContext* context, ID2D1DeviceContext2* d2dContext, IDWriteFactory* directWriteFactory)
|
||||
{
|
||||
D2D1_RECT_F textRect = D2D1::RectF(0, 0, width, height);
|
||||
const auto location = text->getTransform().getLocation();
|
||||
D2D1_RECT_F textRect = D2D1::RectF(location.getX(), location.getY(), location.getX() + 100, location.getY() + 100);
|
||||
|
||||
updateTextFormat(directWriteFactory, text->getTextData().mFont.getSize());
|
||||
|
||||
auto content = StringUtils::convert(text->getTextData().mContent);
|
||||
|
||||
d2dContext->BeginDraw();
|
||||
d2dContext->SetTransform(D2D1::Matrix3x2F::Identity());
|
||||
d2dContext->DrawText(content.c_str(), static_cast<UINT32>(content.size()) - 1, mTextFormat.Get(), &textRect, mTextBrush.Get());
|
||||
d2dContext->DrawText(content.c_str(), static_cast<UINT32>(content.size()), mTextFormat.Get(), &textRect, mTextBrush.Get());
|
||||
d2dContext->EndDraw();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue