/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// /* OdVisualizeFirstQtApp Simple application that can render .VSFX file in QWidget. Also supports Zoom and Pan commands. */ #include "OdaCommon.h" #include "RxInit.h" #include #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) #include #endif #include "Tv.h" #include "TvFactory.h" #include "OdVisualizeFirstQtAppWindow.h" #ifndef _TOOLKIT_IN_DLL_ // Visualize API ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdRxCommonDataAccessModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvDbCoreModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvDbIOModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( TvISMModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( TvSCENEOEModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvTfModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvDbPartialViewingModuleImpl ); //Raster images ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdRasterProcessingServicesImpl ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( ExRasterModule ); //Device ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTrGL2RenderModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( GLES2Module ); //TvCore ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvCoreDatabaseModule ); ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT( OdTvCoreDatabaseIOModule ); ODRX_BEGIN_STATIC_MODULE_MAP() ODRX_DEFINE_STATIC_APPMODULE( OdTvModuleName, OdTvModule ) ODRX_DEFINE_STATIC_APPMODULE( RxCommonDataAccessModuleName, OdRxCommonDataAccessModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTvDbCoreModuleName, OdTvDbCoreModule ) ODRX_DEFINE_STATIC_APPMODULE( L"TV_SCENEOE", TvSCENEOEModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTvDbIOAppName, OdTvDbIOModule ) ODRX_DEFINE_STATIC_APPMODULE( L"TV_ISM", TvISMModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTvTfModuleName, OdTvTfModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTvPartialViewingModuleName, OdTvDbPartialViewingModuleImpl ) ODRX_DEFINE_STATIC_APPMODULE( OdRasterProcessorModuleName, OdRasterProcessingServicesImpl ) ODRX_DEFINE_STATIC_APPMODULE( RX_RASTER_SERVICES_APPNAME, ExRasterModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTrGL2ModuleName, OdTrGL2RenderModule ) ODRX_DEFINE_STATIC_APPMODULE( OdWinGLES2ModuleName, GLES2Module ) //TvCore ODRX_DEFINE_STATIC_APPMODULE( OdTvCoreDatabaseModuleName, OdTvCoreDatabaseModule ) ODRX_DEFINE_STATIC_APPMODULE( OdTvCoreDatabaseIOModuleName, OdTvCoreDatabaseIOModule ) ODRX_DEFINE_STATIC_APPMODULE( OdThreadPoolModuleName, OdRxThreadPoolImpl ) // uncomment for multicore/multicpu support in statically linked version ODRX_END_STATIC_MODULE_MAP() #endif void ODASdkActivate() { static const char* ActInfo[] = { #ifdef TEIGHA_TRIAL "", "" #else //"UserInfo", "UserSignature" // Before compiling, a ODA SDK activation file should be placed in a location that a compiler can access, // otherwise you get a compiler error such as "Kernel/Extensions/ExServices/ExSystemServices.h:43:10: fatal error: 'OdActivationInfo' file not found". // To learn about ODA SDK activation, see the activation guide at https://docs.opendesign.com/tkernel/oda_activation.html #include "OdActivationInfo" #endif }; odActivate(ActInfo[0], ActInfo[1]); } void ODASdkDeactivate() { odCleanUpStaticData(); } int main( int argc, char* argv[] ) { #ifndef _TOOLKIT_IN_DLL_ ODRX_INIT_STATIC_MODULE_MAP(); #endif // Activate ODA SDK ODASdkActivate(); // Initialize factory odTvInitialize(); //Create QApplication QApplication a( argc, argv ); //Show OdTvMainWindow OdTvMainWindow w; w.resize( QSize( 400, 400 ) ); w.show(); int retCode = a.exec(); // Uninitialize factory odTvUninitialize(); // Deactivate ODA SDK ODASdkDeactivate(); return retCode; }