diff --git a/.gitignore b/.gitignore index 17c59e1..9e5ec64 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ build* *.user *.autosave +*.o +*.make +Makefile +CMakeFiles +cmake_install.cmake diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..511b89a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "KKK/tests/Catch"] + path = KKK/tests/Catch + url = https://github.com/philsquared/Catch diff --git a/KKK/CMakeCache.txt b/KKK/CMakeCache.txt new file mode 100644 index 0000000..f706de3 --- /dev/null +++ b/KKK/CMakeCache.txt @@ -0,0 +1,694 @@ +# This is the CMakeCache file. +# For build in directory: /home/end/projects/KlassischeKeplerKriege/KKK +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=KKK + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +KKK_BINARY_DIR:STATIC=/home/end/projects/KlassischeKeplerKriege/KKK + +//Value Computed by CMake +KKK_SOURCE_DIR:STATIC=/home/end/projects/KlassischeKeplerKriege/KKK + +//Path to a file. +OPENGL_INCLUDE_DIR:PATH=/usr/include + +//Path to a library. +OPENGL_gl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGL.so + +//Path to a library. +OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLU.so + +//Path to a file. +OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + +//Path to a file. +X11_ICE_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_ICE_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libICE.so + +//Path to a file. +X11_SM_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_SM_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libSM.so + +//Path to a file. +X11_X11_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_X11_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libX11.so + +//Path to a file. +X11_XRes_INCLUDE_PATH:PATH=X11_XRes_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_XRes_LIB:FILEPATH=X11_XRes_LIB-NOTFOUND + +//Path to a file. +X11_XShm_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_XSync_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_XTest_INCLUDE_PATH:PATH=X11_XTest_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_XTest_LIB:FILEPATH=X11_XTest_LIB-NOTFOUND + +//Path to a file. +X11_Xaccessrules_INCLUDE_PATH:PATH=X11_Xaccessrules_INCLUDE_PATH-NOTFOUND + +//Path to a file. +X11_Xaccessstr_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xau_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_Xau_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXau.so + +//Path to a file. +X11_Xcomposite_INCLUDE_PATH:PATH=X11_Xcomposite_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xcomposite_LIB:FILEPATH=X11_Xcomposite_LIB-NOTFOUND + +//Path to a file. +X11_Xcursor_INCLUDE_PATH:PATH=X11_Xcursor_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xcursor_LIB:FILEPATH=X11_Xcursor_LIB-NOTFOUND + +//Path to a file. +X11_Xdamage_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_Xdamage_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXdamage.so + +//Path to a file. +X11_Xdmcp_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_Xdmcp_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXdmcp.so + +//Path to a library. +X11_Xext_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXext.so + +//Path to a file. +X11_Xfixes_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_Xfixes_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXfixes.so + +//Path to a file. +X11_Xft_INCLUDE_PATH:PATH=X11_Xft_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xft_LIB:FILEPATH=X11_Xft_LIB-NOTFOUND + +//Path to a file. +X11_Xi_INCLUDE_PATH:PATH=X11_Xi_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xi_LIB:FILEPATH=X11_Xi_LIB-NOTFOUND + +//Path to a file. +X11_Xinerama_INCLUDE_PATH:PATH=X11_Xinerama_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xinerama_LIB:FILEPATH=X11_Xinerama_LIB-NOTFOUND + +//Path to a file. +X11_Xinput_INCLUDE_PATH:PATH=X11_Xinput_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xinput_LIB:FILEPATH=X11_Xinput_LIB-NOTFOUND + +//Path to a file. +X11_Xkb_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xkbfile_INCLUDE_PATH:PATH=X11_Xkbfile_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xkbfile_LIB:FILEPATH=X11_Xkbfile_LIB-NOTFOUND + +//Path to a file. +X11_Xkblib_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xlib_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xmu_INCLUDE_PATH:PATH=X11_Xmu_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xmu_LIB:FILEPATH=X11_Xmu_LIB-NOTFOUND + +//Path to a file. +X11_Xpm_INCLUDE_PATH:PATH=X11_Xpm_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xpm_LIB:FILEPATH=X11_Xpm_LIB-NOTFOUND + +//Path to a file. +X11_Xrandr_INCLUDE_PATH:PATH=X11_Xrandr_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xrandr_LIB:FILEPATH=X11_Xrandr_LIB-NOTFOUND + +//Path to a file. +X11_Xrender_INCLUDE_PATH:PATH=X11_Xrender_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xrender_LIB:FILEPATH=X11_Xrender_LIB-NOTFOUND + +//Path to a file. +X11_Xscreensaver_INCLUDE_PATH:PATH=X11_Xscreensaver_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xscreensaver_LIB:FILEPATH=X11_Xscreensaver_LIB-NOTFOUND + +//Path to a file. +X11_Xshape_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xt_INCLUDE_PATH:PATH=/usr/include + +//Path to a library. +X11_Xt_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXt.so + +//Path to a file. +X11_Xutil_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_Xv_INCLUDE_PATH:PATH=X11_Xv_INCLUDE_PATH-NOTFOUND + +//Path to a library. +X11_Xv_LIB:FILEPATH=X11_Xv_LIB-NOTFOUND + +//Path to a library. +X11_Xxf86misc_LIB:FILEPATH=X11_Xxf86misc_LIB-NOTFOUND + +//Path to a library. +X11_Xxf86vm_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libXxf86vm.so + +//Path to a file. +X11_dpms_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +X11_xf86misc_INCLUDE_PATH:PATH=X11_xf86misc_INCLUDE_PATH-NOTFOUND + +//Path to a file. +X11_xf86vmode_INCLUDE_PATH:PATH=/usr/include + +//Path to a file. +epoxy_INCLUDE_DIR:PATH=/usr/include + +//Path to a library. +epoxy_LIBRARY_NAMES:FILEPATH=/usr/lib/x86_64-linux-gnu/libepoxy.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/end/projects/KlassischeKeplerKriege/KKK +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=5 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Have function connect +CMAKE_HAVE_CONNECT:INTERNAL=1 +//Have function gethostbyname +CMAKE_HAVE_GETHOSTBYNAME:INTERNAL=1 +//Have function remove +CMAKE_HAVE_REMOVE:INTERNAL=1 +//Have function shmat +CMAKE_HAVE_SHMAT:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/end/projects/KlassischeKeplerKriege/KKK +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//Have library ICE +CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.5 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding OpenGL +FIND_PACKAGE_MESSAGE_DETAILS_OpenGL:INTERNAL=[/usr/lib/x86_64-linux-gnu/libGL.so][/usr/include][v()] +//Details about finding PkgConfig +FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v0.29.1()] +//Details about finding X11 +FIND_PACKAGE_MESSAGE_DETAILS_X11:INTERNAL=[/usr/lib/x86_64-linux-gnu/libX11.so][/usr/include] +//ADVANCED property for variable: OPENGL_INCLUDE_DIR +OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_gl_LIBRARY +OPENGL_gl_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_glu_LIBRARY +OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_xmesa_INCLUDE_DIR +OPENGL_xmesa_INCLUDE_DIR-ADVANCED:INTERNAL=1 +PC_EPOXY_CFLAGS:INTERNAL= +PC_EPOXY_CFLAGS_I:INTERNAL= +PC_EPOXY_CFLAGS_OTHER:INTERNAL= +PC_EPOXY_FOUND:INTERNAL=1 +PC_EPOXY_INCLUDEDIR:INTERNAL=/usr/include +PC_EPOXY_INCLUDE_DIRS:INTERNAL= +PC_EPOXY_LDFLAGS:INTERNAL=-lepoxy +PC_EPOXY_LDFLAGS_OTHER:INTERNAL= +PC_EPOXY_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu +PC_EPOXY_LIBRARIES:INTERNAL=epoxy +PC_EPOXY_LIBRARY_DIRS:INTERNAL= +PC_EPOXY_LIBS:INTERNAL= +PC_EPOXY_LIBS_L:INTERNAL= +PC_EPOXY_LIBS_OTHER:INTERNAL= +PC_EPOXY_LIBS_PATHS:INTERNAL= +PC_EPOXY_PREFIX:INTERNAL=/usr +PC_EPOXY_STATIC_CFLAGS:INTERNAL= +PC_EPOXY_STATIC_CFLAGS_I:INTERNAL= +PC_EPOXY_STATIC_CFLAGS_OTHER:INTERNAL= +PC_EPOXY_STATIC_INCLUDE_DIRS:INTERNAL= +PC_EPOXY_STATIC_LDFLAGS:INTERNAL=-lepoxy;-ldl +PC_EPOXY_STATIC_LDFLAGS_OTHER:INTERNAL= +PC_EPOXY_STATIC_LIBDIR:INTERNAL= +PC_EPOXY_STATIC_LIBRARIES:INTERNAL=epoxy;dl +PC_EPOXY_STATIC_LIBRARY_DIRS:INTERNAL= +PC_EPOXY_STATIC_LIBS:INTERNAL= +PC_EPOXY_STATIC_LIBS_L:INTERNAL= +PC_EPOXY_STATIC_LIBS_OTHER:INTERNAL= +PC_EPOXY_STATIC_LIBS_PATHS:INTERNAL= +PC_EPOXY_VERSION:INTERNAL=1.3.1 +PC_EPOXY_epoxy_INCLUDEDIR:INTERNAL= +PC_EPOXY_epoxy_LIBDIR:INTERNAL= +PC_EPOXY_epoxy_PREFIX:INTERNAL= +PC_EPOXY_epoxy_VERSION:INTERNAL= +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_ICE_INCLUDE_PATH +X11_ICE_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_ICE_LIB +X11_ICE_LIB-ADVANCED:INTERNAL=1 +//Have library /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so +X11_LIB_X11_SOLO:INTERNAL=1 +//ADVANCED property for variable: X11_SM_INCLUDE_PATH +X11_SM_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_SM_LIB +X11_SM_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_X11_INCLUDE_PATH +X11_X11_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_X11_LIB +X11_X11_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XRes_INCLUDE_PATH +X11_XRes_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XRes_LIB +X11_XRes_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XShm_INCLUDE_PATH +X11_XShm_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XSync_INCLUDE_PATH +X11_XSync_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XTest_INCLUDE_PATH +X11_XTest_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_XTest_LIB +X11_XTest_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xaccessrules_INCLUDE_PATH +X11_Xaccessrules_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xaccessstr_INCLUDE_PATH +X11_Xaccessstr_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xau_INCLUDE_PATH +X11_Xau_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xau_LIB +X11_Xau_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xcomposite_INCLUDE_PATH +X11_Xcomposite_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xcomposite_LIB +X11_Xcomposite_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xcursor_INCLUDE_PATH +X11_Xcursor_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xcursor_LIB +X11_Xcursor_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xdamage_INCLUDE_PATH +X11_Xdamage_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xdamage_LIB +X11_Xdamage_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xdmcp_INCLUDE_PATH +X11_Xdmcp_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xdmcp_LIB +X11_Xdmcp_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xext_LIB +X11_Xext_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xfixes_INCLUDE_PATH +X11_Xfixes_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xfixes_LIB +X11_Xfixes_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xft_INCLUDE_PATH +X11_Xft_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xft_LIB +X11_Xft_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xi_INCLUDE_PATH +X11_Xi_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xi_LIB +X11_Xi_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xinerama_INCLUDE_PATH +X11_Xinerama_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xinerama_LIB +X11_Xinerama_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xinput_INCLUDE_PATH +X11_Xinput_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xinput_LIB +X11_Xinput_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xkb_INCLUDE_PATH +X11_Xkb_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xkbfile_INCLUDE_PATH +X11_Xkbfile_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xkbfile_LIB +X11_Xkbfile_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xkblib_INCLUDE_PATH +X11_Xkblib_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xlib_INCLUDE_PATH +X11_Xlib_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xmu_INCLUDE_PATH +X11_Xmu_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xmu_LIB +X11_Xmu_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xpm_INCLUDE_PATH +X11_Xpm_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xpm_LIB +X11_Xpm_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xrandr_INCLUDE_PATH +X11_Xrandr_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xrandr_LIB +X11_Xrandr_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xrender_INCLUDE_PATH +X11_Xrender_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xrender_LIB +X11_Xrender_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xscreensaver_INCLUDE_PATH +X11_Xscreensaver_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xscreensaver_LIB +X11_Xscreensaver_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xshape_INCLUDE_PATH +X11_Xshape_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xt_INCLUDE_PATH +X11_Xt_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xt_LIB +X11_Xt_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xutil_INCLUDE_PATH +X11_Xutil_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xv_INCLUDE_PATH +X11_Xv_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xv_LIB +X11_Xv_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xxf86misc_LIB +X11_Xxf86misc_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_Xxf86vm_LIB +X11_Xxf86vm_LIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_dpms_INCLUDE_PATH +X11_dpms_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_xf86misc_INCLUDE_PATH +X11_xf86misc_INCLUDE_PATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: X11_xf86vmode_INCLUDE_PATH +X11_xf86vmode_INCLUDE_PATH-ADVANCED:INTERNAL=1 +__pkg_config_checked_PC_EPOXY:INTERNAL=1 +prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu + diff --git a/KKK/CMakeLists.txt b/KKK/CMakeLists.txt new file mode 100644 index 0000000..be8ad5c --- /dev/null +++ b/KKK/CMakeLists.txt @@ -0,0 +1,15 @@ +project(KKK) +cmake_minimum_required(VERSION 3.0) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") + +function(setup_target NAME) + set_property(TARGET ${NAME} PROPERTY CXX_STANDARD 14) + set_property(TARGET ${NAME} PROPERTY CXX_STANDARD_REQUIRED ON) + target_compile_options(${NAME} PRIVATE -Wall -Wextra) + target_compile_options(${NAME} PRIVATE $<$:-ggdb -O2>) + target_compile_options(${NAME} PRIVATE $<$:-O3 -NDEBUG>) +endfunction(setup_target) + +add_subdirectory(game) +add_subdirectory(tests) diff --git a/KKK/CMakeModules/Findepoxy.cmake b/KKK/CMakeModules/Findepoxy.cmake new file mode 100644 index 0000000..2dc32a9 --- /dev/null +++ b/KKK/CMakeModules/Findepoxy.cmake @@ -0,0 +1,20 @@ +set(epoxy_FOUND "no") + +find_package(PkgConfig REQUIRED) +pkg_check_modules(PC_EPOXY QUIET epoxy) + +find_path(epoxy_INCLUDE_DIR epoxy/gl.h + HINTS ${PC_EPOXY_INCLUDEDIR} ${PC_EPOXY_INCLUDE_DIRS} + PATH_SUFFIXES epoxy) +find_library(epoxy_LIBRARY_NAMES epoxy + HINTS ${PC_EPOXY_LIBDIR} ${PC_EPOXY_LIBRARY_DIRS}) + +if (epoxy_LIBRARY_NAMES) + set(epoxy_FOUND "yes") + add_library(epoxy SHARED IMPORTED) + set_property(TARGET epoxy APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${epoxy_INCLUDE_DIR}) + set_property(TARGET epoxy PROPERTY INTERFACE_LINK_LIBRARIES ${epoxy_LIBRARY_NAMES}) + set_property(TARGET epoxy APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_property(TARGET epoxy PROPERTY IMPORTED_LOCATION_RELEASE "${epoxy_LIBRARY_NAMES}") + set_property(TARGET epoxy PROPERTY IMPORTED_SONAME_RELEASE "${epoxy_LIBRARY_NAMES}") + endif (epoxy_LIBRARY_NAMES) diff --git a/KKK/KKK.pro b/KKK/KKK.pro deleted file mode 100644 index cb1180d..0000000 --- a/KKK/KKK.pro +++ /dev/null @@ -1,22 +0,0 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2016-07-29T18:45:26 -# -#------------------------------------------------- - -QT += core gui - -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - -TARGET = KKK -TEMPLATE = app - - -SOURCES += main.cpp\ - mainwindow.cpp \ - glwindow.cpp - -HEADERS += mainwindow.h \ - glwindow.h - -FORMS += mainwindow.ui diff --git a/KKK/game/CMakeLists.txt b/KKK/game/CMakeLists.txt new file mode 100644 index 0000000..562fa03 --- /dev/null +++ b/KKK/game/CMakeLists.txt @@ -0,0 +1,23 @@ +set(CMAKE_INCLUDE_CURRENT_DIRS ON) +set(CMAKE_AUTOMOC ON) + +find_package(OpenGL REQUIRED) +find_package(epoxy REQUIRED) +find_package(X11 REQUIRED) + +set(GAME_SRC + src/main.cpp + src/opengl.cpp + ) + +set(GAME_HEADERS + include/opengl.h + ) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${OPENGL_INCLUDE_DIR}) + +add_executable(game ${GAME_SRC} ${GAME_HEADERS}) +setup_target(game) +target_link_libraries(game X11 epoxy) diff --git a/KKK/game/include/opengl.h b/KKK/game/include/opengl.h new file mode 100644 index 0000000..97da407 --- /dev/null +++ b/KKK/game/include/opengl.h @@ -0,0 +1,66 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace endofthejedi { + +class GLWindow { + private: + Display* m_display; + Window m_rootwnd; + GLint m_attributes[23] = + { + GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT, + GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_X_VISUAL_TYPE, GLX_TRUE_COLOR, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, + GLX_DEPTH_SIZE, 24, + GLX_STENCIL_SIZE, 8, + GLX_DOUBLEBUFFER, True, + None + }; + + XVisualInfo* m_visualinfo; + Colormap m_colormap; + XSetWindowAttributes m_swa; + Window m_window; + GLXContext m_glcontext; + XWindowAttributes m_gwa; + Atom m_atomWmDeleteWindow; + + unsigned int m_width; + unsigned int m_height; + bool m_running = false; + + protected: + virtual void handle(XEvent event); + virtual void init(); + virtual void render(double time); + virtual void resize(); + + public: + GLWindow(unsigned int width, unsigned int height); + ~GLWindow(); + + void loop(); + void stop(); + void swap(); + + unsigned int getheight() const { + return m_height; + } + + unsigned int getwidth() const { + return m_width; + } +}; + +} diff --git a/KKK/game/src/main.cpp b/KKK/game/src/main.cpp new file mode 100644 index 0000000..31641a2 --- /dev/null +++ b/KKK/game/src/main.cpp @@ -0,0 +1,36 @@ +#include +#include + +class MainWindow : public endofthejedi::GLWindow { +private: +protected: + void init() override { + glClearColor(0.5f, 0.6f, 0.7f, 1.0f); + resize(); + + glEnable(GL_DEPTH_TEST); + } + void render(double time) override { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glBegin(GL_TRIANGLES); + glColor3f(1.0f, 0.0f, 0.0f); + glVertex3f(0.0f, -1.0f, 0.0f); + glColor3f(0.0f, 1.0f, 0.0f); + glVertex3f(-1.0f, 1.0f, 0.0f); + glColor3f(0.0f, 0.0f, 1.0f); + glVertex3f(1.0f, 1.0f, 0.0f); + glEnd(); + } + void resize() override { glViewport(0, 0, getwidth(), getheight()); } + +public: + MainWindow(unsigned int width, unsigned int height) + : endofthejedi::GLWindow(width, height) {} +}; + +int main(int argc, const char *argv[]) { + MainWindow window(500, 500); + window.loop(); + window.stop(); +} diff --git a/KKK/game/src/opengl.cpp b/KKK/game/src/opengl.cpp new file mode 100644 index 0000000..97734cc --- /dev/null +++ b/KKK/game/src/opengl.cpp @@ -0,0 +1,122 @@ +#include + +#include +#include + +#define UNUSED(foo) (void)foo; + +timespec diff(timespec start, timespec end) { + timespec result; + if ((end.tv_nsec - start.tv_nsec) < 0) { + result.tv_sec = end.tv_sec - start.tv_sec - 1; + result.tv_nsec = 1000000000 + end.tv_nsec - start.tv_nsec; + } else { + result.tv_sec = end.tv_sec - start.tv_sec; + result.tv_nsec = end.tv_nsec - start.tv_nsec; + } + return result; +} + +endofthejedi::GLWindow::GLWindow(unsigned int width, unsigned int height) + : m_width(width), m_height(height) { + m_display = XOpenDisplay(NULL); + + if (m_display == NULL) { + throw std::runtime_error("XOpenDisplay NULL"); + } + + m_rootwnd = DefaultRootWindow(m_display); + + m_visualinfo = glXChooseVisual(m_display, 0, m_attributes); + + if (m_visualinfo == NULL) { + throw std::runtime_error("glXChooseVisual NULL"); + } + + m_colormap = + XCreateColormap(m_display, m_rootwnd, m_visualinfo->visual, AllocNone); + + m_swa.colormap = m_colormap; + m_swa.event_mask = ExposureMask | KeyPressMask; + + m_window = XCreateWindow( + m_display, m_rootwnd, 0, 0, width, height, 0, m_visualinfo->depth, + InputOutput, m_visualinfo->visual, CWColormap | CWEventMask, &m_swa); + + m_atomWmDeleteWindow = XInternAtom(m_display, "WM_DELETE_WINDOW", False); + XSetWMProtocols(m_display, m_window, &m_atomWmDeleteWindow, 1); + + XMapWindow(m_display, m_window); + XStoreName(m_display, m_window, "NAME"); + + m_glcontext = glXCreateContext(m_display, m_visualinfo, NULL, GL_TRUE); + + XSync(m_display, False); + + glXMakeCurrent(m_display, m_window, m_glcontext); + + std::cout << "GL Renderer: " << glGetString(GL_RENDERER) << "\n"; + std::cout << "GL Version: " << glGetString(GL_VERSION) << "\n"; + std::cout << "GLSL Version: " << glGetString(GL_SHADING_LANGUAGE_VERSION) + << "\n"; + + init(); + + XClearWindow(m_display, m_window); + XMapRaised(m_display, m_window); +} + +endofthejedi::GLWindow::~GLWindow() { + glXMakeCurrent(m_display, None, NULL); + glXDestroyContext(m_display, m_glcontext); + XDestroyWindow(m_display, m_window); + XCloseDisplay(m_display); +} + +void endofthejedi::GLWindow::handle(XEvent event) { + if (event.type == Expose) { + XWindowAttributes attribs; + XGetWindowAttributes(m_display, m_window, &attribs); + m_width = attribs.width; + m_height = attribs.height; + resize(); + } else if (event.type == ClientMessage) { + if (event.xclient.data.l[0] == m_atomWmDeleteWindow) { + stop(); + } + } else if (event.type == DestroyNotify) { + stop(); + } +} + +void endofthejedi::GLWindow::swap() { glXSwapBuffers(m_display, m_window); } + +void endofthejedi::GLWindow::loop() { + m_running = true; + timespec prev; + clock_gettime(CLOCK_MONOTONIC_RAW, &prev); + timespec current; + clock_gettime(CLOCK_MONOTONIC_RAW, ¤t); + double delta = 0.0; + while (m_running) { + + if (XPending(m_display) > 0) { + XEvent xev; + XNextEvent(m_display, &xev); + handle(xev); + } + + render(delta); + swap(); + + clock_gettime(CLOCK_MONOTONIC_RAW, ¤t); + delta = diff(prev, current).tv_nsec; + prev = current; + } +} + +void endofthejedi::GLWindow::stop() { m_running = false; } + +void endofthejedi::GLWindow::init() {} +void endofthejedi::GLWindow::render(double time) { UNUSED(time) } +void endofthejedi::GLWindow::resize() {} diff --git a/KKK/glwindow.cpp b/KKK/glwindow.cpp deleted file mode 100644 index 6bc6a66..0000000 --- a/KKK/glwindow.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "glwindow.h" - -void GLWindow::initializeGL() -{ - -} - -void GLWindow::paintGL() -{ -} - -void GLWindow::resizeGL(int width, int height) -{ - -} - -GLWindow::GLWindow(QWidget* parent) -{ - -} diff --git a/KKK/glwindow.h b/KKK/glwindow.h deleted file mode 100644 index 67db465..0000000 --- a/KKK/glwindow.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include - -class GLWindow : public QOpenGLWidget -{ - private: - protected: - void initializeGL(); - void paintGL(); - void resizeGL(int width, int height); - public: - explicit GLWindow(QWidget* parent); -}; diff --git a/KKK/main.cpp b/KKK/main.cpp deleted file mode 100644 index a080bdd..0000000 --- a/KKK/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "mainwindow.h" -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - w.show(); - - return a.exec(); -} diff --git a/KKK/mainwindow.cpp b/KKK/mainwindow.cpp deleted file mode 100644 index 6352813..0000000 --- a/KKK/mainwindow.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "mainwindow.h" - -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent) -{ - Ui::MainWindow::setupUi(this); -} - -MainWindow::~MainWindow() -{ -} diff --git a/KKK/mainwindow.h b/KKK/mainwindow.h deleted file mode 100644 index d899a33..0000000 --- a/KKK/mainwindow.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include -#include - -class MainWindow : public QMainWindow, private Ui::MainWindow -{ - Q_OBJECT - - private: - protected: - public: - explicit MainWindow(QWidget *parent = 0); - ~MainWindow(); -}; diff --git a/KKK/mainwindow.ui b/KKK/mainwindow.ui deleted file mode 100644 index 39a2b9a..0000000 --- a/KKK/mainwindow.ui +++ /dev/null @@ -1,53 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 400 - 300 - - - - MainWindow - - - - - - - - - - - - 0 - 0 - 400 - 19 - - - - - - TopToolBarArea - - - false - - - - - - - - GLWindow - QOpenGLWidget -
glwindow.h
-
-
- - -
diff --git a/KKK/tests/CMakeLists.txt b/KKK/tests/CMakeLists.txt new file mode 100644 index 0000000..b5bf982 --- /dev/null +++ b/KKK/tests/CMakeLists.txt @@ -0,0 +1,7 @@ +set(TEST_SRC + src/main.cpp +) + +add_executable(tests ${TEST_SRC}) +setup_target(tests) +target_include_directories(tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Catch/include) diff --git a/KKK/tests/Catch b/KKK/tests/Catch new file mode 160000 index 0000000..35f5105 --- /dev/null +++ b/KKK/tests/Catch @@ -0,0 +1 @@ +Subproject commit 35f510545d55a831372d3113747bf1314ff4f2ef diff --git a/KKK/tests/src/main.cpp b/KKK/tests/src/main.cpp new file mode 100644 index 0000000..b3143fb --- /dev/null +++ b/KKK/tests/src/main.cpp @@ -0,0 +1,2 @@ +#define CATCH_CONFIG_MAIN +#include diff --git a/KKK/tests/tests b/KKK/tests/tests new file mode 100755 index 0000000..240bfbe Binary files /dev/null and b/KKK/tests/tests differ