From 7d1c017c047e0102714c2d4190783b8f21fc1505 Mon Sep 17 00:00:00 2001 From: Thomas Galland <thomas.galland@kitware.com> Date: Thu, 29 Feb 2024 17:39:42 +0100 Subject: [PATCH] Add warnings when zSpaceSDKCoreCompatibilityManager is not initialized --- .../vtkZSpaceCoreCompatibilitySDKManager.cxx | 83 +++++++------------ 1 file changed, 31 insertions(+), 52 deletions(-) diff --git a/Rendering/ZSpace/vtkZSpaceCoreCompatibilitySDKManager.cxx b/Rendering/ZSpace/vtkZSpaceCoreCompatibilitySDKManager.cxx index 0dc7eb94b73..7097eca63ac 100644 --- a/Rendering/ZSpace/vtkZSpaceCoreCompatibilitySDKManager.cxx +++ b/Rendering/ZSpace/vtkZSpaceCoreCompatibilitySDKManager.cxx @@ -15,6 +15,22 @@ VTK_ABI_NAMESPACE_BEGIN vtkStandardNewMacro(vtkZSpaceCoreCompatibilitySDKManager); +// Macros used to check if initialisation has been done before +// using function entry points. +#define ZSPACE_RETURN_IF_NOT_INIT() \ + if (!this->Initialized) \ + { \ + vtkErrorMacro("zSpace manager not initialized."); \ + return; \ + } + +#define ZSPACE_RETURN_VAL_IF_NOT_INIT(value) \ + if (!this->Initialized) \ + { \ + vtkErrorMacro("zSpace manager not initialized."); \ + return value; \ + } + #define ZSPACE_CHECK_ERROR(fn, error) \ if (error != ZC_COMPAT_ERROR_OK) \ { \ @@ -43,10 +59,8 @@ vtkZSpaceCoreCompatibilitySDKManager::vtkZSpaceCoreCompatibilitySDKManager() //------------------------------------------------------------------------------ vtkZSpaceCoreCompatibilitySDKManager::~vtkZSpaceCoreCompatibilitySDKManager() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); + ZCCompatError error; error = this->EntryPts.zccompatShutDown(this->ZSpaceContext); @@ -224,10 +238,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::InitializeZSpace() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::UpdateViewport() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); if (!this->RenderWindow) { @@ -263,10 +274,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::UpdateViewport() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::UpdateTrackers() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error; @@ -306,10 +314,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::UpdateTrackers() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::UpdateViewAndProjectionMatrix() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error; @@ -354,10 +359,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::UpdateViewAndProjectionMatrix() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::UpdateButtonState() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZSBool isButtonPressed; @@ -379,10 +381,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::UpdateButtonState() void vtkZSpaceCoreCompatibilitySDKManager::CalculateFrustumFit( const double bounds[6], double position[3], double viewUp[3]) { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error; @@ -471,10 +470,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::CalculateFrustumFit( //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::BeginFrame() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error = this->EntryPts.zccompatBeginFrame(this->ZSpaceContext); ZSPACE_CHECK_ERROR(zccompatBeginFrame, error); @@ -483,10 +479,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::BeginFrame() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::EndFrame() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error = this->EntryPts.zccompatEndFrame(this->ZSpaceContext); ZSPACE_CHECK_ERROR(zccompatEndFrame, error); @@ -495,10 +488,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::EndFrame() //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::EnableGraphicsBinding() { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error = this->EntryPts.zccompatEnableGraphicsBindingOpenGL(this->ZSpaceContext); ZSPACE_CHECK_ERROR(zccompatEnableGraphicsBindingOpenGL, error); @@ -508,10 +498,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::EnableGraphicsBinding() void vtkZSpaceCoreCompatibilitySDKManager::SubmitFrame( unsigned int leftText, unsigned int rightText) { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error = this->EntryPts.zccompatSubmitFrameOpenGL(this->ZSpaceContext, leftText, rightText, false); @@ -522,10 +509,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::SubmitFrame( void vtkZSpaceCoreCompatibilitySDKManager::GetPerEyeImageResolution( signed int* width, signed int* height) { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); ZCCompatError error = this->EntryPts.zccompatGetPerEyeImageResolution(this->ZSpaceContext, width, height); @@ -535,10 +519,7 @@ void vtkZSpaceCoreCompatibilitySDKManager::GetPerEyeImageResolution( //------------------------------------------------------------------------------ vtkZSpaceSDKManager::StereoDisplayMode vtkZSpaceCoreCompatibilitySDKManager::GetStereoDisplayMode() { - if (!this->Initialized) - { - return QUAD_BUFFER_STEREO; - } + ZSPACE_RETURN_VAL_IF_NOT_INIT(QUAD_BUFFER_STEREO); ZCCompatStereoDisplayMode mode = ZC_COMPAT_STEREO_DISPLAY_MODE_QUAD_BUFFER_STEREO; ZCCompatError error = this->EntryPts.zccompatGetStereoDisplayMode(this->ZSpaceContext, &mode); @@ -550,10 +531,8 @@ vtkZSpaceSDKManager::StereoDisplayMode vtkZSpaceCoreCompatibilitySDKManager::Get //------------------------------------------------------------------------------ void vtkZSpaceCoreCompatibilitySDKManager::SetRenderWindow(vtkRenderWindow* renderWindow) { - if (!this->Initialized) - { - return; - } + ZSPACE_RETURN_IF_NOT_INIT(); + // Give the application window handle to the zSpace Core Compatibility API. HWND hWnd = static_cast<HWND>(renderWindow->GetGenericWindowId()); ZCCompatError error = -- GitLab