diff --git a/src/kiwano/render/DirectX/RenderContextImpl.cpp b/src/kiwano/render/DirectX/RenderContextImpl.cpp index da037a87..552439d2 100644 --- a/src/kiwano/render/DirectX/RenderContextImpl.cpp +++ b/src/kiwano/render/DirectX/RenderContextImpl.cpp @@ -76,19 +76,21 @@ void RenderContextImpl::DiscardDeviceResources() void RenderContextImpl::BeginDraw() { + KGE_ASSERT(render_target_ && "Render target has not been initialized!"); + SaveDrawingState(); RenderContext::BeginDraw(); - if (render_target_) - { - render_target_->BeginDraw(); - } + render_target_->BeginDraw(); } void RenderContextImpl::EndDraw() { - KGE_THROW_IF_FAILED(render_target_->EndDraw(), "ID2D1RenderTarget EndDraw failed"); + KGE_ASSERT(render_target_ && "Render target has not been initialized!"); + + HRESULT hr = render_target_->EndDraw(); + KGE_THROW_IF_FAILED(hr, "ID2D1RenderTarget EndDraw failed"); RenderContext::EndDraw(); diff --git a/src/kiwano/utils/Logger.h b/src/kiwano/utils/Logger.h index 591cf84e..21f79568 100644 --- a/src/kiwano/utils/Logger.h +++ b/src/kiwano/utils/Logger.h @@ -85,6 +85,14 @@ } while (0) #endif +#ifndef KGE_THROW_IF +#define KGE_THROW_IF(EXPRESSION, MESSAGE) \ + if (EXPRESSION) \ + { \ + KGE_THROW(MESSAGE); \ + } +#endif + #ifndef KGE_THROW_SYSTEM_ERROR #define KGE_THROW_SYSTEM_ERROR(ERRCODE, MESSAGE) \ do \