Add more error checks to Direct2D wxGraphicsRenderer code.

Check the results of the native Direct2D operations.
This commit is contained in:
Artur Wieczorek
2016-05-26 17:32:58 +02:00
parent 993fcdac7d
commit a64a204749

View File

@@ -1139,7 +1139,8 @@ void wxD2DPathData::Flush()
}
m_figureOpened = false;
m_geometrySink->Close();
HRESULT hr = m_geometrySink->Close();
wxCHECK_HRESULT_RET(hr);
m_geometryWritable = false;
}
@@ -1147,16 +1148,21 @@ void wxD2DPathData::Flush()
void wxD2DPathData::EnsureGeometryOpen()
{
if (!m_geometryWritable) {
if (!m_geometryWritable)
{
wxCOMPtr<ID2D1PathGeometry> newPathGeometry;
m_direct2dfactory->CreatePathGeometry(&newPathGeometry);
HRESULT hr;
hr = m_direct2dfactory->CreatePathGeometry(&newPathGeometry);
wxCHECK_HRESULT_RET(hr);
m_geometrySink.reset();
newPathGeometry->Open(&m_geometrySink);
hr = newPathGeometry->Open(&m_geometrySink);
wxCHECK_HRESULT_RET(hr);
if (m_pathGeometry != NULL)
{
m_pathGeometry->Stream(m_geometrySink);
hr = m_pathGeometry->Stream(m_geometrySink);
wxCHECK_HRESULT_RET(hr);
}
m_pathGeometry = newPathGeometry;
@@ -1170,8 +1176,8 @@ void wxD2DPathData::EnsureSinkOpen()
if (m_geometrySink == NULL)
{
m_geometrySink = NULL;
m_pathGeometry->Open(&m_geometrySink);
HRESULT hr = m_pathGeometry->Open(&m_geometrySink);
wxCHECK_HRESULT_RET(hr);
}
}