Add more error checks to Direct2D wxGraphicsRenderer code.
Check the results of the native Direct2D operations.
This commit is contained in:
@@ -1139,7 +1139,8 @@ void wxD2DPathData::Flush()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_figureOpened = false;
|
m_figureOpened = false;
|
||||||
m_geometrySink->Close();
|
HRESULT hr = m_geometrySink->Close();
|
||||||
|
wxCHECK_HRESULT_RET(hr);
|
||||||
|
|
||||||
m_geometryWritable = false;
|
m_geometryWritable = false;
|
||||||
}
|
}
|
||||||
@@ -1147,16 +1148,21 @@ void wxD2DPathData::Flush()
|
|||||||
|
|
||||||
void wxD2DPathData::EnsureGeometryOpen()
|
void wxD2DPathData::EnsureGeometryOpen()
|
||||||
{
|
{
|
||||||
if (!m_geometryWritable) {
|
if (!m_geometryWritable)
|
||||||
|
{
|
||||||
wxCOMPtr<ID2D1PathGeometry> newPathGeometry;
|
wxCOMPtr<ID2D1PathGeometry> newPathGeometry;
|
||||||
m_direct2dfactory->CreatePathGeometry(&newPathGeometry);
|
HRESULT hr;
|
||||||
|
hr = m_direct2dfactory->CreatePathGeometry(&newPathGeometry);
|
||||||
|
wxCHECK_HRESULT_RET(hr);
|
||||||
|
|
||||||
m_geometrySink.reset();
|
m_geometrySink.reset();
|
||||||
newPathGeometry->Open(&m_geometrySink);
|
hr = newPathGeometry->Open(&m_geometrySink);
|
||||||
|
wxCHECK_HRESULT_RET(hr);
|
||||||
|
|
||||||
if (m_pathGeometry != NULL)
|
if (m_pathGeometry != NULL)
|
||||||
{
|
{
|
||||||
m_pathGeometry->Stream(m_geometrySink);
|
hr = m_pathGeometry->Stream(m_geometrySink);
|
||||||
|
wxCHECK_HRESULT_RET(hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pathGeometry = newPathGeometry;
|
m_pathGeometry = newPathGeometry;
|
||||||
@@ -1170,8 +1176,8 @@ void wxD2DPathData::EnsureSinkOpen()
|
|||||||
|
|
||||||
if (m_geometrySink == NULL)
|
if (m_geometrySink == NULL)
|
||||||
{
|
{
|
||||||
m_geometrySink = NULL;
|
HRESULT hr = m_pathGeometry->Open(&m_geometrySink);
|
||||||
m_pathGeometry->Open(&m_geometrySink);
|
wxCHECK_HRESULT_RET(hr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user