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:
@code
MyApplication::MyApplication(int& argc, char** argv):
Platform::GlutApplication(argc, argv, (new Configuration)
->setTitle("My Application")->setSize({800, 600}) {
Platform::GlutApplication(argc, argv, Configuration()
.setTitle("My Application")
.setSize({800, 600})
{
// ...
}
@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) {
// ...
createContext((new Configuration)
->setTitle("My Application")
->setSize(size));
createContext(Configuration()
.setTitle("My Application")
.setSize(size));
// ...
}
@endcode
The configuration passed to constructor and @ref GlutApplication::createContext() "createContext()"
is automaticall deleted afterwards and if the context creation fails, the
application exits. However, it is also possible to negotiate the context using
@ref GlutApplication::tryCreateContext() "tryCreateContext()". The major
difference is that this function returns `false` instead of exiting and it
doesn't delete the configuration afterwards so you can reuse it. You can for
example try enabling MSAA and if the context creation fails, fall back to
no-AA rendering:
If the context creation in constructor or @ref GlutApplication::createContext() "createContext()"
fails, the application exits. However, it is also possible to negotiate the
context using @ref GlutApplication::tryCreateContext() "tryCreateContext()". The
only difference is that this function returns `false` instead of exiting. You
can for example try enabling MSAA and if the context creation fails, fall back
to no-AA rendering:
@code
MyApplication::MyApplication(int& argc, char** argv): Platform::GlutApplication(argc, argv, nullptr) {
// ...
auto conf = new Configuration;
conf->setTitle("My Application")
->setSampleCount(16);
Configuration conf;
conf.setTitle("My Application")
.setSampleCount(16);
if(!tryCreateContext(conf))
createContext(conf->setSampleCount(0));
else delete conf;
createContext(conf.setSampleCount(0));
// ...
}

2
src/Platform/AbstractXApplication.cpp

@ -42,9 +42,11 @@ AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, Visu
createContext(configuration);
}
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractXApplication::AbstractXApplication(AbstractContextHandler<Display*, VisualID, Window>* contextHandler, const Arguments&): contextHandler(contextHandler), c(nullptr), flags(Flag::Redraw) {
createContext({});
}
#endif
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
* @param contextHandler OpenGL context handler
* @param arguments Application arguments
* @param configuration %Configuration
*
* Creates application with default or user-specified configuration.
* See Configuration for more information. The program exits if the
@ -89,7 +90,6 @@ class AbstractXApplication {
* @brief Constructor
* @param contextHandler OpenGL context handler
* @param arguments Application arguments
* @param configuration Configuration
*
* Unlike above, the context is not created and must be created later
* with createContext() or tryCreateContext().

2
src/Platform/GlutApplication.cpp

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

2
src/Platform/NaClApplication.cpp

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

2
src/Platform/Sdl2Application.cpp

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

2
src/Platform/WindowlessGlxApplication.cpp

@ -39,9 +39,11 @@ WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&, const Confi
createContext(configuration);
}
#ifndef DOXYGEN_GENERATING_OUTPUT
WindowlessGlxApplication::WindowlessGlxApplication(const Arguments&): c(nullptr) {
createContext({});
}
#endif
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);
}
#ifndef DOXYGEN_GENERATING_OUTPUT
WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments): Instance(arguments), Graphics3DClient(this), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this);
createContext({});
}
#endif
WindowlessNaClApplication::WindowlessNaClApplication(const Arguments& arguments, std::nullptr_t): Instance(arguments), Graphics3DClient(this), graphics(nullptr), c(nullptr) {
debugOutput = new ConsoleDebugOutput(this);

Loading…
Cancel
Save