mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Gfx: Cosmetics
This commit is contained in:
parent
73adaffe43
commit
b73735251e
@ -95,25 +95,24 @@ void TextFormatD2D::SetProperties(
|
||||
{
|
||||
Dispose();
|
||||
|
||||
HRESULT hr = E_FAIL;
|
||||
|
||||
// |fontFamily| uses the GDI/GDI+ font naming convention so try to create DirectWrite font
|
||||
// using the GDI family name and then create a text format using the DirectWrite family name
|
||||
// obtained from it.
|
||||
WCHAR dwFamilyName[LF_FACESIZE];
|
||||
DWRITE_FONT_WEIGHT dwFontWeight;
|
||||
DWRITE_FONT_STYLE dwFontStyle;
|
||||
DWRITE_FONT_STRETCH dwFontStretch;
|
||||
if (Util::GetDWritePropertiesFromGDIProperties(
|
||||
CanvasD2D::c_DWFactory, fontFamily, bold, italic, dwFontWeight, dwFontStyle, dwFontStretch,
|
||||
dwFamilyName, _countof(dwFamilyName)))
|
||||
WCHAR dwriteFamilyName[LF_FACESIZE];
|
||||
DWRITE_FONT_WEIGHT dwriteFontWeight;
|
||||
DWRITE_FONT_STYLE dwriteFontStyle;
|
||||
DWRITE_FONT_STRETCH dwriteFontStretch;
|
||||
HRESULT hr = Util::GetDWritePropertiesFromGDIProperties(
|
||||
CanvasD2D::c_DWFactory, fontFamily, bold, italic, dwriteFontWeight, dwriteFontStyle,
|
||||
dwriteFontStretch, dwriteFamilyName, _countof(dwriteFamilyName));
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = CanvasD2D::c_DWFactory->CreateTextFormat(
|
||||
dwFamilyName,
|
||||
dwriteFamilyName,
|
||||
nullptr,
|
||||
dwFontWeight,
|
||||
dwFontStyle,
|
||||
dwFontStretch,
|
||||
dwriteFontWeight,
|
||||
dwriteFontStyle,
|
||||
dwriteFontStretch,
|
||||
size * (4.0f / 3.0f),
|
||||
L"",
|
||||
&m_TextFormat);
|
||||
|
@ -21,12 +21,12 @@
|
||||
namespace Gfx {
|
||||
namespace Util {
|
||||
|
||||
bool GetDWritePropertiesFromGDIProperties(
|
||||
HRESULT GetDWritePropertiesFromGDIProperties(
|
||||
IDWriteFactory* factory, const WCHAR* gdiFamilyName, const bool gdiBold, const bool gdiItalic,
|
||||
DWRITE_FONT_WEIGHT& dwriteFontWeight, DWRITE_FONT_STYLE& dwriteFontStyle,
|
||||
DWRITE_FONT_STRETCH& dwriteFontStretch, WCHAR* dwriteFamilyName, UINT dwriteFamilyNameSize)
|
||||
{
|
||||
bool result = false;
|
||||
HRESULT hr = E_FAIL;
|
||||
IDWriteFont* dwriteFont = CreateDWriteFontFromGDIFamilyName(factory, gdiFamilyName);
|
||||
if (dwriteFont)
|
||||
{
|
||||
@ -57,13 +57,13 @@ bool GetDWritePropertiesFromGDIProperties(
|
||||
|
||||
dwriteFontStretch = dwriteFont->GetStretch();
|
||||
|
||||
result = true;
|
||||
hr = S_OK;
|
||||
}
|
||||
|
||||
dwriteFont->Release();
|
||||
}
|
||||
|
||||
return result;
|
||||
return hr;
|
||||
}
|
||||
|
||||
IDWriteFont* CreateDWriteFontFromGDIFamilyName(IDWriteFactory* factory, const WCHAR* gdiFamilyName)
|
||||
@ -95,7 +95,7 @@ IDWriteFont* CreateDWriteFontFromGDIFamilyName(IDWriteFactory* factory, const WC
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool GetFamilyNameFromDWriteFont(IDWriteFont* font, WCHAR* buffer, const UINT bufferSize)
|
||||
HRESULT GetFamilyNameFromDWriteFont(IDWriteFont* font, WCHAR* buffer, const UINT bufferSize)
|
||||
{
|
||||
IDWriteFontFamily* dwriteFontFamily;
|
||||
HRESULT hr = font->GetFontFamily(&dwriteFontFamily);
|
||||
@ -103,33 +103,29 @@ bool GetFamilyNameFromDWriteFont(IDWriteFont* font, WCHAR* buffer, const UINT bu
|
||||
{
|
||||
GetFamilyNameFromDWriteFontFamily(dwriteFontFamily, buffer, bufferSize);
|
||||
dwriteFontFamily->Release();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return hr;
|
||||
}
|
||||
|
||||
bool GetFamilyNameFromDWriteFontFamily(
|
||||
HRESULT GetFamilyNameFromDWriteFontFamily(
|
||||
IDWriteFontFamily* fontFamily, WCHAR* buffer, const UINT bufferSize)
|
||||
{
|
||||
bool result = false;
|
||||
IDWriteLocalizedStrings* dwFamilyNames;
|
||||
HRESULT hr = fontFamily->GetFamilyNames(&dwFamilyNames);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
// TODO: Determine the best index?
|
||||
hr = dwFamilyNames->GetString(0, buffer, bufferSize);
|
||||
result = SUCCEEDED(hr);
|
||||
dwFamilyNames->Release();
|
||||
}
|
||||
|
||||
return result;
|
||||
return hr;
|
||||
}
|
||||
|
||||
bool IsFamilyInSystemFontCollection(IDWriteFactory* factory, const WCHAR* familyName)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
IDWriteFontCollection* systemFontCollection;
|
||||
HRESULT hr = factory->GetSystemFontCollection(&systemFontCollection);
|
||||
if (SUCCEEDED(hr))
|
||||
|
@ -26,7 +26,7 @@ namespace Util {
|
||||
|
||||
// Maps the GDI family name and italic/bold flags to the DirectWrite family name, weight, style,
|
||||
// and stretch.
|
||||
bool GetDWritePropertiesFromGDIProperties(
|
||||
HRESULT GetDWritePropertiesFromGDIProperties(
|
||||
IDWriteFactory* factory, const WCHAR* gdiFamilyName, const bool gdiBold, const bool gdiItalic,
|
||||
DWRITE_FONT_WEIGHT& dwriteFontWeight, DWRITE_FONT_STYLE& dwriteFontStyle,
|
||||
DWRITE_FONT_STRETCH& dwriteFontStretch, WCHAR* dwriteFamilyName, UINT dwriteFamilyNameSize);
|
||||
@ -37,9 +37,9 @@ bool GetDWritePropertiesFromGDIProperties(
|
||||
// style.
|
||||
IDWriteFont* CreateDWriteFontFromGDIFamilyName(IDWriteFactory* factory, const WCHAR* fontFamily);
|
||||
|
||||
bool GetFamilyNameFromDWriteFont(IDWriteFont* font, WCHAR* buffer, UINT bufferSize);
|
||||
HRESULT GetFamilyNameFromDWriteFont(IDWriteFont* font, WCHAR* buffer, UINT bufferSize);
|
||||
|
||||
bool GetFamilyNameFromDWriteFontFamily(
|
||||
HRESULT GetFamilyNameFromDWriteFontFamily(
|
||||
IDWriteFontFamily* fontFamily, WCHAR* buffer, UINT bufferSize);
|
||||
|
||||
bool IsFamilyInSystemFontCollection(IDWriteFactory* factory, const WCHAR* familyName);
|
||||
|
Loading…
Reference in New Issue
Block a user