mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Add "Use D2D rendering" option to skin context menu
This commit is contained in:
@@ -121,6 +121,7 @@ MeterWindow::MeterWindow(const std::wstring& folderPath, const std::wstring& fil
|
||||
m_ClickThrough(false),
|
||||
m_KeepOnScreen(true),
|
||||
m_AutoSelectScreen(false),
|
||||
m_UseD2D(true),
|
||||
m_Dragging(false),
|
||||
m_Dragged(false),
|
||||
m_BackgroundMode(BGMODE_IMAGE),
|
||||
@@ -1928,6 +1929,7 @@ void MeterWindow::ReadOptions()
|
||||
m_KeepOnScreen = parser.ReadBool(section, L"KeepOnScreen", true);
|
||||
addWriteFlag(OPTION_KEEPONSCREEN);
|
||||
|
||||
m_UseD2D = parser.ReadBool(section, L"UseD2D", true);
|
||||
m_SavePosition = parser.ReadBool(section, L"SavePosition", true);
|
||||
m_WindowStartHidden = parser.ReadBool(section, L"StartHidden", false);
|
||||
m_AutoSelectScreen = parser.ReadBool(section, L"AutoSelectScreen", false);
|
||||
@@ -2041,6 +2043,11 @@ void MeterWindow::WriteOptions(INT setting)
|
||||
_itow_s(m_WindowZPosition, buffer, 10);
|
||||
WritePrivateProfileString(section, L"AlwaysOnTop", buffer, iniFile);
|
||||
}
|
||||
|
||||
if (setting & OPTION_USED2D)
|
||||
{
|
||||
WritePrivateProfileString(section, L"UseD2D", m_UseD2D ? L"1" : L"0", iniFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2070,14 +2077,8 @@ bool MeterWindow::ReadSkin()
|
||||
// Read options from Rainmeter.ini.
|
||||
ReadOptions();
|
||||
|
||||
// Temporarily read "__UseD2D" from skin for easy testing
|
||||
bool useD2D = GetRainmeter().GetUseD2D();
|
||||
if (revision_beta)
|
||||
{
|
||||
useD2D = m_Parser.ReadBool(L"Rainmeter", L"__UseD2D", useD2D);
|
||||
}
|
||||
|
||||
m_Canvas = Gfx::Canvas::Create(useD2D ? Gfx::Renderer::PreferD2D : Gfx::Renderer::GDIP);
|
||||
m_Canvas = Gfx::Canvas::Create(
|
||||
m_UseD2D && GetRainmeter().GetUseD2D() ? Gfx::Renderer::PreferD2D : Gfx::Renderer::GDIP);
|
||||
m_Canvas->SetAccurateText(m_Parser.ReadBool(L"Rainmeter", L"AccurateText", false));
|
||||
|
||||
const auto d2dParams = m_Parser.ReadFloats(L"Rainmeter", L"__D2DParams");
|
||||
@@ -3437,6 +3438,10 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
SetKeepOnScreen(!m_KeepOnScreen);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_USED2D:
|
||||
SetUseD2D(!m_UseD2D);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_CLICKTHROUGH:
|
||||
SetClickThrough(!m_ClickThrough);
|
||||
break;
|
||||
@@ -3625,6 +3630,17 @@ void MeterWindow::SetKeepOnScreen(bool b)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
** Helper function for setting UseD2D
|
||||
**
|
||||
*/
|
||||
void MeterWindow::SetUseD2D(bool b)
|
||||
{
|
||||
m_UseD2D = b;
|
||||
WriteOptions(OPTION_USED2D);
|
||||
Refresh(false);
|
||||
}
|
||||
|
||||
/*
|
||||
** Helper function for setting WindowDraggable
|
||||
**
|
||||
|
Reference in New Issue
Block a user