Browse Source

Platform: documentation updates.

It looks much better now without all that explicit/implicit deletion.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
231aaeb4aa
  1. 35
      doc/platform.dox
  2. 2
      src/Platform/AbstractXApplication.cpp
  3. 2
      src/Platform/AbstractXApplication.h
  4. 2
      src/Platform/GlutApplication.cpp
  5. 2
      src/Platform/NaClApplication.cpp
  6. 2
      src/Platform/Sdl2Application.cpp
  7. 2
      src/Platform/WindowlessGlxApplication.cpp
  8. 2
      src/Platform/WindowlessNaClApplication.cpp

35
doc/platform.dox

@ -147,8 +147,10 @@ window size 800x600 pixels). If you want something else, you can pass
constructor. Using method chaining it can be done conveniently like this: constructor. Using method chaining it can be done conveniently like this:
@code @code
MyApplication::MyApplication(int& argc, char** argv): MyApplication::MyApplication(int& argc, char** argv):
Platform::GlutApplication(argc, argv, (new Configuration) Platform::GlutApplication(argc, argv, Configuration()
->setTitle("My Application")->setSize({800, 600}) { .setTitle("My Application")
.setSize({800, 600})
{
// ... // ...
} }
@endcode @endcode
@ -161,33 +163,30 @@ instead of Configuration instance and then specify it later with
MyApplication::MyApplication(int& argc, char** argv): Platform::GlutApplication(argc, argv, nullptr) { MyApplication::MyApplication(int& argc, char** argv): Platform::GlutApplication(argc, argv, nullptr) {
// ... // ...
createContext((new Configuration) createContext(Configuration()
->setTitle("My Application") .setTitle("My Application")
->setSize(size)); .setSize(size));
// ... // ...
} }
@endcode @endcode
The configuration passed to constructor and @ref GlutApplication::createContext() "createContext()" If the context creation in constructor or @ref GlutApplication::createContext() "createContext()"
is automaticall deleted afterwards and if the context creation fails, the fails, the application exits. However, it is also possible to negotiate the
application exits. However, it is also possible to negotiate the context using context using @ref GlutApplication::tryCreateContext() "tryCreateContext()". The
@ref GlutApplication::tryCreateContext() "tryCreateContext()". The major only difference is that this function returns `false` instead of exiting. You
difference is that this function returns `false` instead of exiting and it can for example try enabling MSAA and if the context creation fails, fall back
doesn't delete the configuration afterwards so you can reuse it. You can for to no-AA rendering:
example try enabling MSAA and if the context creation fails, fall back to
no-AA rendering:
@code @code
MyApplication::MyApplication(int& argc, char** argv): Platform::GlutApplication(argc, argv, nullptr) { MyApplication::MyApplication(int& argc, char** argv): Platform::GlutApplication(argc, argv, nullptr) {
// ... // ...
auto conf = new Configuration; Configuration conf;
conf->setTitle("My Application") conf.setTitle("My Application")
->setSampleCount(16); .setSampleCount(16);
if(!tryCreateContext(conf)) if(!tryCreateContext(conf))
createContext(conf->setSampleCount(0)); createContext(conf.setSampleCount(0));
else delete conf;
// ... // ...
} }

2
src/Platform/AbstractXApplication.cpp

@ -42,9 +42,11 @@ AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, Visu
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, VisualID, Window>* contextHandler, const Arguments&): contextHandler(contextHandler), c(nullptr), flags(Flag::Redraw) { AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, VisualID, Window>* contextHandler, const Arguments&): contextHandler(contextHandler), c(nullptr), flags(Flag::Redraw) {
createContext({}); createContext({});
} }
#endif
AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, VisualID, Window>* contextHandler, const Arguments&, std::nullptr_t): contextHandler(contextHandler), c(nullptr), flags(Flag::Redraw) {} AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, VisualID, Window>* contextHandler, const Arguments&, std::nullptr_t): contextHandler(contextHandler), c(nullptr), flags(Flag::Redraw) {}

2
src/Platform/AbstractXApplication.h

@ -72,6 +72,7 @@ class AbstractXApplication {
* @brief Default constructor * @brief Default constructor
* @param contextHandler OpenGL context handler * @param contextHandler OpenGL context handler
* @param arguments Application arguments * @param arguments Application arguments
* @param configuration %Configuration
* *
* Creates application with default or user-specified configuration. * Creates application with default or user-specified configuration.
* See Configuration for more information. The program exits if the * See Configuration for more information. The program exits if the
@ -89,7 +90,6 @@ class AbstractXApplication {
* @brief Constructor * @brief Constructor
* @param contextHandler OpenGL context handler * @param contextHandler OpenGL context handler
* @param arguments Application arguments * @param arguments Application arguments
* @param configuration Configuration
* *
* Unlike above, the context is not created and must be created later * Unlike above, the context is not created and must be created later
* with createContext() or tryCreateContext(). * with createContext() or tryCreateContext().

2
src/Platform/GlutApplication.cpp

@ -38,10 +38,12 @@ GlutApplication::GlutApplication(const Arguments& arguments, const Configuration
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
GlutApplication::GlutApplication(const Arguments& arguments): c(nullptr) { GlutApplication::GlutApplication(const Arguments& arguments): c(nullptr) {
initialize(arguments.argc, arguments.argv); initialize(arguments.argc, arguments.argv);
createContext({}); createContext({});
} }
#endif
GlutApplication::GlutApplication(const Arguments& arguments, std::nullptr_t): c(nullptr) { GlutApplication::GlutApplication(const Arguments& arguments, std::nullptr_t): c(nullptr) {
initialize(arguments.argc, arguments.argv); initialize(arguments.argc, arguments.argv);

2
src/Platform/NaClApplication.cpp

@ -56,10 +56,12 @@ NaClApplication::NaClApplication(const Arguments& arguments, const Configuration
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
NaClApplication::NaClApplication(const Arguments& arguments): Instance(arguments), Graphics3DClient(this), MouseLock(this), c(nullptr) { NaClApplication::NaClApplication(const Arguments& arguments): Instance(arguments), Graphics3DClient(this), MouseLock(this), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this); debugOutput = new ConsoleDebugOutput(this);
createContext({}); createContext({});
} }
#endif
NaClApplication::NaClApplication(const Arguments& arguments, std::nullptr_t): Instance(arguments), Graphics3DClient(this), MouseLock(this), c(nullptr) { NaClApplication::NaClApplication(const Arguments& arguments, std::nullptr_t): Instance(arguments), Graphics3DClient(this), MouseLock(this), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this); debugOutput = new ConsoleDebugOutput(this);

2
src/Platform/Sdl2Application.cpp

@ -54,10 +54,12 @@ Sdl2Application::Sdl2Application(const Arguments&, const Configuration& configur
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
Sdl2Application::Sdl2Application(const Arguments&): context(nullptr), flags(Flag::Redraw) { Sdl2Application::Sdl2Application(const Arguments&): context(nullptr), flags(Flag::Redraw) {
initialize(); initialize();
createContext({}); createContext({});
} }
#endif
Sdl2Application::Sdl2Application(const Arguments&, std::nullptr_t): context(nullptr), flags(Flag::Redraw) { Sdl2Application::Sdl2Application(const Arguments&, std::nullptr_t): context(nullptr), flags(Flag::Redraw) {
initialize(); initialize();

2
src/Platform/WindowlessGlxApplication.cpp

@ -39,9 +39,11 @@ WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&, const Confi
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&): c(nullptr) { WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&): c(nullptr) {
createContext({}); createContext({});
} }
#endif
WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&, std::nullptr_t): c(nullptr) {} WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&, std::nullptr_t): c(nullptr) {}

2
src/Platform/WindowlessNaClApplication.cpp

@ -55,10 +55,12 @@ WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments,
createContext(configuration); createContext(configuration);
} }
#ifndef DOXYGEN_GENERATING_OUTPUT
WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments): Instance(arguments), Graphics3DClient(this), c(nullptr) { WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments): Instance(arguments), Graphics3DClient(this), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this); debugOutput = new ConsoleDebugOutput(this);
createContext({}); createContext({});
} }
#endif
WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments, std::nullptr_t): Instance(arguments), Graphics3DClient(this), graphics(nullptr), c(nullptr) { WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments, std::nullptr_t): Instance(arguments), Graphics3DClient(this), graphics(nullptr), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this); debugOutput = new ConsoleDebugOutput(this);

Loading…
Cancel
Save