ID2D1-Freigabe erzwingen bei Fenster-Größenänderung
Verfasst: 12.06.2013, 11:43
Wie kann man für Windows 8-Store-Apps bei Fenster-Größenänderungen ID2D1 freigeben, damit ResizeBuffers funktioniert?
Bei Windows 8-Desktop-Anwendungen ist das kein Problem, da ich normale Zeiger verwende:
Bei Windows8-Store-Apps verwende ich aber einen COM-Zeiger auf ein ID2D1Factory1-Interface:
Wenn ich für ID2D1 dann ID2D1Device und ID2D1DeviceContext verwenden würde, könnte ich ID2D1 so freigeben:
Da ich aber ID2D1Device und ID2D1DeviceContext aber nicht benötige (D2D1 und DirectWrite funktionieren für Schriften auch ohne diese Interfaces), müsste ich
dann ID2D1Device und ID2D1DeviceContext leider doch für Fenster-Größenänderungen verwenden (für die Freigabe).
Bei Windows 8-Desktop-Anwendungen ist das kein Problem, da ich normale Zeiger verwende:
Code: Alles auswählen
//ID2D1Factory1* lp_Direct2D1_Fabrik_1_Schrift_aktuell;
...
if (lp_Direct2D1_Fabrik_1_Schrift_aktuell)
{
lp_Direct2D1_Fabrik_1_Schrift_aktuell->Release();
lp_Direct2D1_Fabrik_1_Schrift_aktuell = nullptr;
}
Code: Alles auswählen
Microsoft::WRL::ComPtr <ID2D1Factory1> COM_Zeiger_Direct2D1_Fabrik_1_Schrift_aktuell;
Code: Alles auswählen
m_d2dContext->SetTarget(nullptr);
dann ID2D1Device und ID2D1DeviceContext leider doch für Fenster-Größenänderungen verwenden (für die Freigabe).