# HG changeset patch
# User am@osimis.io
# Date 1535642231 -7200
# Node ID faccc4b07b92b5a13fc759d46e6ca71ad6789db4
# Parent 017044be141bac066dcc3e6e06d8db9bb048e938
renamings
diff -r 017044be141b -r faccc4b07b92 Applications/Samples/SampleMainNative.cpp
--- a/Applications/Samples/SampleMainNative.cpp Thu Aug 30 17:15:22 2018 +0200
+++ b/Applications/Samples/SampleMainNative.cpp Thu Aug 30 17:17:11 2018 +0200
@@ -21,7 +21,7 @@
#include "SampleList.h"
#if ORTHANC_ENABLE_SDL==1
-#include "../Sdl/BasicSdlApplication.h"
+#include "../Sdl/SdlStoneApplicationRunner.h"
#endif
#if ORTHANC_ENABLE_QT==1
#include "Qt/SampleQtApplicationRunner.h"
diff -r 017044be141b -r faccc4b07b92 Applications/Sdl/BasicSdlApplication.cpp
--- a/Applications/Sdl/BasicSdlApplication.cpp Thu Aug 30 17:15:22 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/**
- * Stone of Orthanc
- * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
- * Department, University Hospital of Liege, Belgium
- * Copyright (C) 2017-2018 Osimis S.A., Belgium
- *
- * This program is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- **/
-
-
-#if ORTHANC_ENABLE_SDL != 1
-#error this file shall be included only with the ORTHANC_ENABLE_SDL set to 1
-#endif
-
-#include "BasicSdlApplication.h"
-#include
-
-#include "../../Framework/Toolbox/MessagingToolbox.h"
-#include "SdlEngine.h"
-
-#include
-#include
-#include
-#include
-#include "../../Platforms/Generic/OracleWebService.h"
-
-namespace OrthancStone
-{
- void SdlStoneApplicationRunner::Initialize()
- {
- SdlWindow::GlobalInitialize();
- }
-
- void SdlStoneApplicationRunner::DeclareCommandLineOptions(boost::program_options::options_description& options)
- {
- boost::program_options::options_description sdl("SDL options");
- sdl.add_options()
- ("width", boost::program_options::value()->default_value(1024), "Initial width of the SDL window")
- ("height", boost::program_options::value()->default_value(768), "Initial height of the SDL window")
- ("opengl", boost::program_options::value()->default_value(true), "Enable OpenGL in SDL")
- ;
-
- options.add(sdl);
- }
-
- void SdlStoneApplicationRunner::ParseCommandLineOptions(const boost::program_options::variables_map& parameters)
- {
- if (!parameters.count("width") ||
- !parameters.count("height") ||
- !parameters.count("opengl"))
- {
- LOG(ERROR) << "Parameter \"width\", \"height\" or \"opengl\" is missing";
- throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
- }
-
- int w = parameters["width"].as();
- int h = parameters["height"].as();
- if (w <= 0 || h <= 0)
- {
- LOG(ERROR) << "Parameters \"width\" and \"height\" must be positive";
- throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
- }
-
- width_ = static_cast(w);
- height_ = static_cast(h);
- LOG(WARNING) << "Initial display size: " << width_ << "x" << height_;
-
- enableOpenGl_ = parameters["opengl"].as();
- if (enableOpenGl_)
- {
- LOG(WARNING) << "OpenGL is enabled, disable it with option \"--opengl=off\" if the application crashes";
- }
- else
- {
- LOG(WARNING) << "OpenGL is disabled, enable it with option \"--opengl=on\" for best performance";
- }
-
- }
-
- void SdlStoneApplicationRunner::Run(NativeStoneApplicationContext& context, const std::string& title, int argc, char* argv[])
- {
- /**************************************************************
- * Run the application inside a SDL window
- **************************************************************/
-
- LOG(WARNING) << "Starting the application";
-
- SdlWindow window(title.c_str(), width_, height_, enableOpenGl_);
- SdlEngine sdl(window, context);
-
- {
- NativeStoneApplicationContext::GlobalMutexLocker locker(context);
- context.GetCentralViewport().Register(sdl); // (*)
- }
-
- context.Start();
- sdl.Run();
-
- LOG(WARNING) << "Stopping the application";
-
- // Don't move the "Stop()" command below out of the block,
- // otherwise the application might crash, because the
- // "SdlEngine" is an observer of the viewport (*) and the
- // update thread started by "context.Start()" would call a
- // destructed object (the "SdlEngine" is deleted with the
- // lexical scope).
- context.Stop();
- }
-
- void SdlStoneApplicationRunner::Finalize()
- {
- SdlWindow::GlobalFinalize();
- }
-
-
-}
diff -r 017044be141b -r faccc4b07b92 Applications/Sdl/BasicSdlApplication.h
--- a/Applications/Sdl/BasicSdlApplication.h Thu Aug 30 17:15:22 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/**
- * Stone of Orthanc
- * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
- * Department, University Hospital of Liege, Belgium
- * Copyright (C) 2017-2018 Osimis S.A., Belgium
- *
- * This program is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- **/
-
-
-#pragma once
-
-#include "../Generic/NativeStoneApplicationRunner.h"
-
-#if ORTHANC_ENABLE_SDL != 1
-#error this file shall be included only with the ORTHANC_ENABLE_SDL set to 1
-#endif
-
-#include // Necessary to avoid undefined reference to `SDL_main'
-
-namespace OrthancStone
-{
- class SdlStoneApplicationRunner : public NativeStoneApplicationRunner
- {
- unsigned int width_;
- unsigned int height_;
- bool enableOpenGl_;
- public:
- SdlStoneApplicationRunner(MessageBroker& broker,
- IStoneApplication& application)
- : NativeStoneApplicationRunner(broker, application)
- {
- }
-
- virtual void Initialize();
- virtual void DeclareCommandLineOptions(boost::program_options::options_description& options);
- virtual void Run(NativeStoneApplicationContext& context, const std::string& title, int argc, char* argv[]);
- virtual void ParseCommandLineOptions(const boost::program_options::variables_map& parameters);
- virtual void Finalize();
- };
-
-}
diff -r 017044be141b -r faccc4b07b92 Applications/Sdl/SdlStoneApplicationRunner.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Applications/Sdl/SdlStoneApplicationRunner.cpp Thu Aug 30 17:17:11 2018 +0200
@@ -0,0 +1,127 @@
+/**
+ * Stone of Orthanc
+ * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
+ * Department, University Hospital of Liege, Belgium
+ * Copyright (C) 2017-2018 Osimis S.A., Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ **/
+
+
+#if ORTHANC_ENABLE_SDL != 1
+#error this file shall be included only with the ORTHANC_ENABLE_SDL set to 1
+#endif
+
+#include "SdlStoneApplicationRunner.h"
+#include
+
+#include "../../Framework/Toolbox/MessagingToolbox.h"
+#include "SdlEngine.h"
+
+#include
+#include
+#include
+#include
+#include "../../Platforms/Generic/OracleWebService.h"
+
+namespace OrthancStone
+{
+ void SdlStoneApplicationRunner::Initialize()
+ {
+ SdlWindow::GlobalInitialize();
+ }
+
+ void SdlStoneApplicationRunner::DeclareCommandLineOptions(boost::program_options::options_description& options)
+ {
+ boost::program_options::options_description sdl("SDL options");
+ sdl.add_options()
+ ("width", boost::program_options::value()->default_value(1024), "Initial width of the SDL window")
+ ("height", boost::program_options::value()->default_value(768), "Initial height of the SDL window")
+ ("opengl", boost::program_options::value()->default_value(true), "Enable OpenGL in SDL")
+ ;
+
+ options.add(sdl);
+ }
+
+ void SdlStoneApplicationRunner::ParseCommandLineOptions(const boost::program_options::variables_map& parameters)
+ {
+ if (!parameters.count("width") ||
+ !parameters.count("height") ||
+ !parameters.count("opengl"))
+ {
+ LOG(ERROR) << "Parameter \"width\", \"height\" or \"opengl\" is missing";
+ throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+ }
+
+ int w = parameters["width"].as();
+ int h = parameters["height"].as();
+ if (w <= 0 || h <= 0)
+ {
+ LOG(ERROR) << "Parameters \"width\" and \"height\" must be positive";
+ throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+ }
+
+ width_ = static_cast(w);
+ height_ = static_cast(h);
+ LOG(WARNING) << "Initial display size: " << width_ << "x" << height_;
+
+ enableOpenGl_ = parameters["opengl"].as();
+ if (enableOpenGl_)
+ {
+ LOG(WARNING) << "OpenGL is enabled, disable it with option \"--opengl=off\" if the application crashes";
+ }
+ else
+ {
+ LOG(WARNING) << "OpenGL is disabled, enable it with option \"--opengl=on\" for best performance";
+ }
+
+ }
+
+ void SdlStoneApplicationRunner::Run(NativeStoneApplicationContext& context, const std::string& title, int argc, char* argv[])
+ {
+ /**************************************************************
+ * Run the application inside a SDL window
+ **************************************************************/
+
+ LOG(WARNING) << "Starting the application";
+
+ SdlWindow window(title.c_str(), width_, height_, enableOpenGl_);
+ SdlEngine sdl(window, context);
+
+ {
+ NativeStoneApplicationContext::GlobalMutexLocker locker(context);
+ context.GetCentralViewport().Register(sdl); // (*)
+ }
+
+ context.Start();
+ sdl.Run();
+
+ LOG(WARNING) << "Stopping the application";
+
+ // Don't move the "Stop()" command below out of the block,
+ // otherwise the application might crash, because the
+ // "SdlEngine" is an observer of the viewport (*) and the
+ // update thread started by "context.Start()" would call a
+ // destructed object (the "SdlEngine" is deleted with the
+ // lexical scope).
+ context.Stop();
+ }
+
+ void SdlStoneApplicationRunner::Finalize()
+ {
+ SdlWindow::GlobalFinalize();
+ }
+
+
+}
diff -r 017044be141b -r faccc4b07b92 Applications/Sdl/SdlStoneApplicationRunner.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Applications/Sdl/SdlStoneApplicationRunner.h Thu Aug 30 17:17:11 2018 +0200
@@ -0,0 +1,53 @@
+/**
+ * Stone of Orthanc
+ * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
+ * Department, University Hospital of Liege, Belgium
+ * Copyright (C) 2017-2018 Osimis S.A., Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ **/
+
+
+#pragma once
+
+#include "../Generic/NativeStoneApplicationRunner.h"
+
+#if ORTHANC_ENABLE_SDL != 1
+#error this file shall be included only with the ORTHANC_ENABLE_SDL set to 1
+#endif
+
+#include // Necessary to avoid undefined reference to `SDL_main'
+
+namespace OrthancStone
+{
+ class SdlStoneApplicationRunner : public NativeStoneApplicationRunner
+ {
+ unsigned int width_;
+ unsigned int height_;
+ bool enableOpenGl_;
+ public:
+ SdlStoneApplicationRunner(MessageBroker& broker,
+ IStoneApplication& application)
+ : NativeStoneApplicationRunner(broker, application)
+ {
+ }
+
+ virtual void Initialize();
+ virtual void DeclareCommandLineOptions(boost::program_options::options_description& options);
+ virtual void Run(NativeStoneApplicationContext& context, const std::string& title, int argc, char* argv[]);
+ virtual void ParseCommandLineOptions(const boost::program_options::variables_map& parameters);
+ virtual void Finalize();
+ };
+
+}
diff -r 017044be141b -r faccc4b07b92 Resources/CMake/OrthancStoneConfiguration.cmake
--- a/Resources/CMake/OrthancStoneConfiguration.cmake Thu Aug 30 17:15:22 2018 +0200
+++ b/Resources/CMake/OrthancStoneConfiguration.cmake Thu Aug 30 17:17:11 2018 +0200
@@ -182,7 +182,7 @@
)
if (ENABLE_SDL)
list(APPEND APPLICATIONS_SOURCES
- ${ORTHANC_STONE_ROOT}/Applications/Sdl/BasicSdlApplication.cpp
+ ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlStoneApplicationRunner.cpp
${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlEngine.cpp
${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlCairoSurface.cpp
${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlOrthancSurface.cpp