Compare commits
10 Commits
36945a8a9d
...
76f5d88466
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
76f5d88466 | ||
|
|
e8a82bca90 | ||
|
|
8d9d6e0e66 | ||
|
|
c6ab527eb2 | ||
|
|
41e4bba278 | ||
|
|
3863cd7626 | ||
|
|
7574de3187 | ||
|
|
a1baac3e15 | ||
|
|
4e73a49932 | ||
|
|
5415a01885 |
@ -7,6 +7,9 @@ set(CMAKE_CXX_STANDARD 17)
|
|||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
function(toAbsolutePath SETVAR PATHS)
|
function(toAbsolutePath SETVAR PATHS)
|
||||||
set(PATHS ${PATHS} ${ARGN})
|
set(PATHS ${PATHS} ${ARGN})
|
||||||
set(RET_VAL "")
|
set(RET_VAL "")
|
||||||
@ -31,6 +34,7 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|||||||
set(NB_LOGGING ON)
|
set(NB_LOGGING ON)
|
||||||
set(NB_BUILD_TESTS ON)
|
set(NB_BUILD_TESTS ON)
|
||||||
set(NB_BUILD_DOCS ON)
|
set(NB_BUILD_DOCS ON)
|
||||||
|
set(NBENGINE_INSTALL ON)
|
||||||
add_compile_definitions(_NB_BUILD_DEBUG)
|
add_compile_definitions(_NB_BUILD_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -55,7 +59,6 @@ if(NB_BUILD_TESTS)
|
|||||||
FetchContent_MakeAvailable(gtest)
|
FetchContent_MakeAvailable(gtest)
|
||||||
endif()
|
endif()
|
||||||
set(GTEST_COLOR ON)
|
set(GTEST_COLOR ON)
|
||||||
set(GLFW_BUILD_TESTS ON CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NB_LOGGING)
|
if (NB_LOGGING)
|
||||||
@ -70,13 +73,7 @@ elseif (NB_TARGET_LINUX)
|
|||||||
add_compile_definitions(_NB_TARGET_LINUX)
|
add_compile_definitions(_NB_TARGET_LINUX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# External Dep paths
|
get_filename_component(NBENGINE_ROOT ./ ABSOLUTE)
|
||||||
set(GLFW_PATH ../glfw/)
|
|
||||||
set(GLAD_PATH ../glad/)
|
|
||||||
set(STBIMAGE_PATH ../stbi_image)
|
|
||||||
get_filename_component(GLFW_PATH ${GLFW_PATH} ABSOLUTE)
|
|
||||||
get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE)
|
|
||||||
get_filename_component(STBIMAGE_PATH ${STBIMAGE_PATH} ABSOLUTE)
|
|
||||||
|
|
||||||
add_subdirectory(./engine)
|
add_subdirectory(./engine)
|
||||||
|
|
||||||
@ -86,3 +83,23 @@ set(NB_REBUILD_DOCS)
|
|||||||
if (NB_BUILD_DOCS)
|
if (NB_BUILD_DOCS)
|
||||||
add_subdirectory(./docs)
|
add_subdirectory(./docs)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (NBENGINE_INSTALL)
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
configure_package_config_file(
|
||||||
|
"NBEngineConfig.cmake.in"
|
||||||
|
"NBEngineConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||||
|
PATH_VARS CMAKE_INSTALL_LIBDIR
|
||||||
|
)
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBEngineConfigVersion.cmake"
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBEngineConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBEngineConfigVersion.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|||||||
8
NBEngineConfig.cmake.in
Normal file
8
NBEngineConfig.cmake.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
set(NBENGINE_PACKAGES
|
||||||
|
NBCore
|
||||||
|
NBGraphics
|
||||||
|
)
|
||||||
|
foreach(NBENGINE_LIB ${NBENGINE_PACKAGES})
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/${NBENGINE_LIB}Config.cmake")
|
||||||
|
endforeach()
|
||||||
BIN
awesomeface.png
Normal file
BIN
awesomeface.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
@ -1,6 +1,8 @@
|
|||||||
include_directories(./.)
|
|
||||||
|
|
||||||
add_subdirectory(./NBCore)
|
add_subdirectory(./NBCore)
|
||||||
|
|
||||||
|
get_target_property(NBCORE_INTERFACE_INCLUDES NBCore INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
include_directories(${NBCORE_INTERFACE_INCLUDES})
|
||||||
|
|
||||||
add_subdirectory(./NBEvents)
|
add_subdirectory(./NBEvents)
|
||||||
add_subdirectory(./NBGraphics)
|
add_subdirectory(./NBGraphics)
|
||||||
|
|
||||||
@ -10,7 +12,6 @@ if (NB_CORE_SOURCE OR NB_EVENTS_SOURCE OR NB_GRAPHICS_SOURCE)
|
|||||||
set(NB_SOURCE_FILES ${NB_SOURCE_FILES} PARENT_SCOPE)
|
set(NB_SOURCE_FILES ${NB_SOURCE_FILES} PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if (NB_CORE_INCLUDE OR NB_EVENTS_INCLUDE OR NB_GRAPHICS_INCLUDE)
|
if (NB_CORE_INCLUDE OR NB_EVENTS_INCLUDE OR NB_GRAPHICS_INCLUDE)
|
||||||
set(NB_INCLUDE_FILES "")
|
set(NB_INCLUDE_FILES "")
|
||||||
list(APPEND NB_INCLUDE_FILES ${NB_CORE_INCLUDE} ${NB_GRAPHICS_INCLUDE} ${NB_EVENTS_INCLUDE})
|
list(APPEND NB_INCLUDE_FILES ${NB_CORE_INCLUDE} ${NB_GRAPHICS_INCLUDE} ${NB_EVENTS_INCLUDE})
|
||||||
|
|||||||
@ -1,3 +1,6 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
project(NBCore VERSION 0.1)
|
||||||
|
|
||||||
toAbsolutePath(NB_CORE_SOURCE
|
toAbsolutePath(NB_CORE_SOURCE
|
||||||
./src/ErrorsImpl.cpp
|
./src/ErrorsImpl.cpp
|
||||||
./src/Logger.cpp
|
./src/Logger.cpp
|
||||||
@ -5,27 +8,64 @@ toAbsolutePath(NB_CORE_SOURCE
|
|||||||
./src/StringUtils.cpp
|
./src/StringUtils.cpp
|
||||||
./src/Utils.cpp
|
./src/Utils.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
toAbsolutePath(NB_CORE_INCLUDE
|
toAbsolutePath(NB_CORE_INCLUDE
|
||||||
./ANSITerm.hpp
|
./include/NBCore/ANSITerm.hpp
|
||||||
./DataSink.hpp
|
./include/NBCore/DataSink.hpp
|
||||||
./Errors.hpp
|
./include/NBCore/Errors.hpp
|
||||||
./ErrorsImpl.hpp
|
./include/NBCore/ErrorsImpl.hpp
|
||||||
./Logger.hpp
|
./include/NBCore/Logger.hpp
|
||||||
./Processes.hpp
|
./include/NBCore/Processes.hpp
|
||||||
./StringUtils.hpp
|
./include/NBCore/StringUtils.hpp
|
||||||
./ThreadsafeQueue.hpp
|
./include/NBCore/ThreadsafeQueue.hpp
|
||||||
./Types.hpp
|
./include/NBCore/Types.hpp
|
||||||
./TypeTraits.hpp
|
./include/NBCore/TypeTraits.hpp
|
||||||
./Utils.hpp
|
./include/NBCore/Utils.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(NB_CORE_SOURCE ${NB_CORE_SOURCE} PARENT_SCOPE)
|
set(NB_CORE_SOURCE ${NB_CORE_SOURCE} PARENT_SCOPE)
|
||||||
set(NB_CORE_INCLUDE ${NB_CORE_INCLUDE} PARENT_SCOPE)
|
set(NB_CORE_INCLUDE ${NB_CORE_INCLUDE} PARENT_SCOPE)
|
||||||
|
|
||||||
add_library(NBCore ${NB_CORE_SOURCE})
|
add_library(NBCore ${NB_CORE_SOURCE})
|
||||||
|
add_library(NBEngine::Core ALIAS NBCore)
|
||||||
|
target_include_directories(NBCore
|
||||||
|
PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
|
||||||
|
PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||||
|
)
|
||||||
|
|
||||||
target_include_directories(NBCore PUBLIC ./.)
|
if (NBENGINE_INSTALL)
|
||||||
|
message("Installing NBCore to ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
install(
|
||||||
|
TARGETS NBCore
|
||||||
|
EXPORT NBCoreTargets
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
DIRECTORY "${PROJECT_SOURCE_DIR}/include/NBCore"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
EXPORT NBCoreTargets
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||||
|
NAMESPACE NBEngine::
|
||||||
|
)
|
||||||
|
configure_package_config_file(
|
||||||
|
"NBCoreConfig.cmake.in"
|
||||||
|
"NBCoreConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||||
|
PATH_VARS CMAKE_INSTALL_LIBDIR
|
||||||
|
)
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfigVersion.cmake"
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfigVersion.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NB_BUILD_TESTS)
|
if (NB_BUILD_TESTS)
|
||||||
add_subdirectory(./tests)
|
add_subdirectory(./tests)
|
||||||
|
|||||||
2
engine/NBCore/NBCoreConfig.cmake.in
Normal file
2
engine/NBCore/NBCoreConfig.cmake.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/NBCoreTargets.cmake")
|
||||||
@ -5,7 +5,7 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
#include "ThreadSafeQueue.hpp"
|
#include <NBCore/ThreadSafeQueue.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -2,8 +2,8 @@
|
|||||||
#ifndef _NB_ERROR
|
#ifndef _NB_ERROR
|
||||||
#define _NB_ERROR
|
#define _NB_ERROR
|
||||||
|
|
||||||
#include "ErrorsImpl.hpp"
|
#include <NBCore/ErrorsImpl.hpp>
|
||||||
#include "Logger.hpp"
|
#include <NBCore/Logger.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -8,7 +8,7 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
#include "StringUtils.hpp"
|
#include <NBCore/StringUtils.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -25,14 +25,15 @@ class ErrorBase {
|
|||||||
|
|
||||||
ErrorBase(const ErrorBase&) = default;
|
ErrorBase(const ErrorBase&) = default;
|
||||||
ErrorBase(const std::exception&) noexcept;
|
ErrorBase(const std::exception&) noexcept;
|
||||||
|
ErrorBase(const std::string&) noexcept;
|
||||||
virtual std::string what() const noexcept {
|
virtual std::string what() const noexcept {
|
||||||
std::string ret = msg;
|
std::string ret = msg;
|
||||||
if (trace) {
|
if (trace) {
|
||||||
std::string trace_msg = msg;
|
std::string trace_msg = msg;
|
||||||
ret += nb::NEWLINE + indent_strblock(
|
ret += NEWLINE + indent_strblock(
|
||||||
trace_msg,
|
trace_msg,
|
||||||
nb::TABOVER,
|
TABOVER,
|
||||||
nb::TABOVER+"Trace: "
|
TABOVER+"Trace: "
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -52,7 +53,7 @@ class ErrorBase {
|
|||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class ErrorType>
|
template <class ErrorType=NoneType>
|
||||||
class Error : public ErrorBase {
|
class Error : public ErrorBase {
|
||||||
private:
|
private:
|
||||||
void inline check_asserts() {
|
void inline check_asserts() {
|
||||||
@ -132,39 +133,43 @@ class Error : public ErrorBase {
|
|||||||
using ErrorBase::type;
|
using ErrorBase::type;
|
||||||
};
|
};
|
||||||
|
|
||||||
class NBError : public Error<NBError> {
|
template<>
|
||||||
|
class Error<NoneType> : public Error<Error<NoneType>> {
|
||||||
protected:
|
protected:
|
||||||
using Base = Error<NBError>;
|
using Base = Error<Error<NoneType>>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
using Base::what;
|
||||||
|
using Base::code;
|
||||||
|
using Base::trace;
|
||||||
enum Codes : unsigned int {
|
enum Codes : unsigned int {
|
||||||
STANDARD, UNDEFINED, INDEX_ERROR
|
STANDARD, UNDEFINED, INDEX_ERROR
|
||||||
};
|
};
|
||||||
|
|
||||||
NBError(unsigned int code_=1) noexcept : Base(code_) {}
|
|
||||||
NBError(const std::exception& err) : Base(
|
|
||||||
STANDARD,
|
|
||||||
std::string(err.what()),
|
|
||||||
"std::exception",
|
|
||||||
nullptr
|
|
||||||
) {}
|
|
||||||
|
|
||||||
// fix
|
|
||||||
NBError(std::string msg_) noexcept : Base(
|
|
||||||
Codes::UNDEFINED,
|
|
||||||
msg_
|
|
||||||
) {}
|
|
||||||
|
|
||||||
inline static const std::string type = "nb::Error";
|
inline static const std::string type = "nb::Error";
|
||||||
inline static const ErrorCodeMap ErrorMessages = {
|
inline static const ErrorCodeMap ErrorMessages = {
|
||||||
{STANDARD, "std::exception"},
|
{STANDARD, "std::exception"},
|
||||||
{UNDEFINED, "Error"},
|
{UNDEFINED, "Error"},
|
||||||
{INDEX_ERROR, "Indexing error"}
|
{INDEX_ERROR, "Indexing error"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Error(unsigned int code_=1) noexcept : Base(code_) {}
|
||||||
|
Error(const std::exception& err) : Base(
|
||||||
|
STANDARD,
|
||||||
|
std::string(err.what()),
|
||||||
|
"std::exception",
|
||||||
|
nullptr
|
||||||
|
) {}
|
||||||
|
|
||||||
|
Error(const std::string& msg_) noexcept : Base(
|
||||||
|
Codes::UNDEFINED,
|
||||||
|
msg_,
|
||||||
|
type,
|
||||||
|
nullptr
|
||||||
|
) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
// template<typename... Args>
|
template<typename... Args>
|
||||||
// Error(Args...) -> Error<NoneType>;
|
Error(Args...) -> Error<NoneType>;
|
||||||
|
|
||||||
} // namespace nb
|
} // namespace nb
|
||||||
|
|
||||||
@ -8,11 +8,11 @@
|
|||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "DataSink.hpp"
|
#include <NBCore/DataSink.hpp>
|
||||||
#include "ErrorsImpl.hpp"
|
#include <NBCore/ErrorsImpl.hpp>
|
||||||
#include "Processes.hpp"
|
#include <NBCore/Processes.hpp>
|
||||||
#include "ThreadSafeQueue.hpp"
|
#include <NBCore/ThreadSafeQueue.hpp>
|
||||||
#include "TypeTraits.hpp"
|
#include <NBCore/TypeTraits.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -99,6 +99,14 @@ public:
|
|||||||
static_cast<LoggerType*>(this)->write_message(val, 0xFF, file, line);
|
static_cast<LoggerType*>(this)->write_message(val, 0xFF, file, line);
|
||||||
static_cast<LoggerType*>(this)->flush();
|
static_cast<LoggerType*>(this)->flush();
|
||||||
}
|
}
|
||||||
|
void error(
|
||||||
|
const std::string& val,
|
||||||
|
std::string file="",
|
||||||
|
unsigned int line=0
|
||||||
|
) {
|
||||||
|
static_cast<LoggerType*>(this)->write_message(Error(val), 0xFF, file, line);
|
||||||
|
static_cast<LoggerType*>(this)->flush();
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::vector<std::ostream*> _ostream;
|
std::vector<std::ostream*> _ostream;
|
||||||
@ -6,17 +6,17 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
|
|
||||||
#include "TypeTraits.hpp"
|
#include <NBCore/TypeTraits.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
#ifdef _NB_TARGET_WINDOWS
|
#ifdef _NB_TARGET_WINDOWS
|
||||||
const std::string NEWLINE = "\n";
|
inline static const std::string NEWLINE = "\n";
|
||||||
const std::wstring WNEWLINE = L"\n";
|
inline static const std::wstring WNEWLINE = L"\n";
|
||||||
#endif // _NB_TARGET_WINDOWS
|
#endif // _NB_TARGET_WINDOWS
|
||||||
#ifdef _NB_TARGET_LINUX
|
#ifdef _NB_TARGET_LINUX
|
||||||
const std::string NEWLINE = "\n";
|
inline const std::string NEWLINE = "\n";
|
||||||
const std::wstring WNEWLINE = L"\n";
|
inline const std::wstring WNEWLINE = L"\n";
|
||||||
#endif // _NB_TARGET_LINUX
|
#endif // _NB_TARGET_LINUX
|
||||||
|
|
||||||
const std::string TABOVER = " ";
|
const std::string TABOVER = " ";
|
||||||
@ -34,7 +34,7 @@ void stream(const Stream& s, Args&&... args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void term(Args&&... args) { stream(std::cout, args..., nb::NEWLINE); }
|
void term(Args&&... args) { stream(std::cout, args..., NEWLINE); }
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void wterm(Args&&... args) { stream(std::wcout, args..., nb::WNEWLINE); }
|
void wterm(Args&&... args) { stream(std::wcout, args..., nb::WNEWLINE); }
|
||||||
@ -5,7 +5,7 @@
|
|||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "Errors.hpp"
|
#include <NBCore/Errors.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
#include "ErrorsImpl.hpp"
|
#include <NBCore/ErrorsImpl.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
//ErrorBase::
|
//ErrorBase::
|
||||||
ErrorBase::ErrorBase(const std::exception& exception_) noexcept
|
ErrorBase::ErrorBase(const std::exception& exception_) noexcept
|
||||||
: ErrorBase(NBError(exception_)) {}
|
: ErrorBase(Error(exception_)) {}
|
||||||
|
|
||||||
} // namespace nb
|
} // namespace nb
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "Logger.hpp"
|
#include <NBCore/Logger.hpp>
|
||||||
#include "StringUtils.hpp"
|
#include <NBCore/StringUtils.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif // _NB_TARGET_LINUX
|
#endif // _NB_TARGET_LINUX
|
||||||
|
|
||||||
#include "Processes.hpp"
|
#include <NBCore/Processes.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "StringUtils.hpp"
|
#include <NBCore/StringUtils.hpp>
|
||||||
|
|
||||||
/* std::string nb::wstr_to_str(std::wstring in) {
|
/* std::string nb::wstr_to_str(std::wstring in) {
|
||||||
std::size_t wstrlen = in.length();
|
std::size_t wstrlen = in.length();
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Utils.hpp"
|
#include <NBCore/Utils.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
#define CODE_ERROR_LOCATIONS
|
#define CODE_ERROR_LOCATIONS
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
#include "Errors.hpp"
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <NBCore/Errors.hpp>
|
||||||
|
|
||||||
using namespace nb;
|
using namespace nb;
|
||||||
|
|
||||||
class TestError : public Error<TestError> {
|
class TestError : public Error<TestError> {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
#include "Errors.hpp"
|
#include <NBCore/Errors.hpp>
|
||||||
#include "Logger.hpp"
|
#include <NBCore/Logger.hpp>
|
||||||
|
|
||||||
class TestError : public nb::Error<TestError> {
|
class TestError : public nb::Error<TestError> {
|
||||||
using Base = Error<TestError>;
|
using Base = Error<TestError>;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#define CODE_ERROR_LOCATIONS
|
#define CODE_ERROR_LOCATIONS
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include "Processes.hpp"
|
#include <NBCore/Processes.hpp>
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
TEST(ProcessesTest, GetPID) {
|
TEST(ProcessesTest, GetPID) {
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "TypeTraits.hpp"
|
#include <NBCore/TypeTraits.hpp>
|
||||||
#include "StringUtils.hpp"
|
#include <NBCore/StringUtils.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Events.hpp"
|
#include <NBCore/Events.hpp>
|
||||||
|
|
||||||
namespace NB {
|
namespace NB {
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,24 @@
|
|||||||
find_package(OpenGL)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
add_subdirectory(${GLFW_PATH} ${GLFW_PATH}/build)
|
project(NBGraphics VERSION 0.1)
|
||||||
|
|
||||||
include_directories(
|
set(GLAD_PATH ${NBENGINE_ROOT}/../glad/)
|
||||||
${GLFW_PATH}/include
|
set(STBIMAGE_PATH ${NBENGINE_ROOT}/../stbi_image)
|
||||||
${GLAD_PATH}/include
|
get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE)
|
||||||
${STBIMAGE_PATH}
|
get_filename_component(STBIMAGE_PATH ${STBIMAGE_PATH} ABSOLUTE)
|
||||||
|
|
||||||
|
set(CMAKE_PREFIX_PATH
|
||||||
|
"${CMAKE_PREFIX_PATH}"
|
||||||
|
"C:/Program Files (x86)/GLFW/lib/cmake/glfw3/"
|
||||||
)
|
)
|
||||||
|
find_package(OpenGL REQUIRED)
|
||||||
|
find_package(glfw3 REQUIRED)
|
||||||
|
|
||||||
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
|
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
|
||||||
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
if (NB_BUILD_TESTS)
|
||||||
|
set(GLFW_BUILD_TESTS ON CACHE BOOL "" FORCE)
|
||||||
|
else()
|
||||||
|
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
||||||
|
endif()
|
||||||
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
toAbsolutePath(NB_GRAPHICS_SOURCE
|
toAbsolutePath(NB_GRAPHICS_SOURCE
|
||||||
@ -21,19 +31,18 @@ toAbsolutePath(NB_GRAPHICS_SOURCE
|
|||||||
./src/VertexArray.cpp
|
./src/VertexArray.cpp
|
||||||
./src/Window.cpp
|
./src/Window.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
toAbsolutePath(NB_GRAPHICS_INCLUDE
|
toAbsolutePath(NB_GRAPHICS_INCLUDE
|
||||||
./Buffers.hpp
|
./include/NBGraphics/Buffers.hpp
|
||||||
./Camera.hpp
|
./include/NBGraphics/Camera.hpp
|
||||||
./Draw.hpp
|
./include/NBGraphics/Draw.hpp
|
||||||
./FrameBuffers.hpp
|
./include/NBGraphics/FrameBuffers.hpp
|
||||||
./GLLoad.hpp
|
./include/NBGraphics/GLLoad.hpp
|
||||||
./Image.hpp
|
./include/NBGraphics/Image.hpp
|
||||||
./OGLObjects.hpp
|
./include/NBGraphics/OGLObjects.hpp
|
||||||
./ProgramPipeline.hpp
|
./include/NBGraphics/ProgramPipeline.hpp
|
||||||
./Textures.hpp
|
./include/NBGraphics/Textures.hpp
|
||||||
./VertexArray.hpp
|
./include/NBGraphics/VertexArray.hpp
|
||||||
./Window.hpp
|
./include/NBGraphics/Window.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(NB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE} PARENT_SCOPE)
|
set(NB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE} PARENT_SCOPE)
|
||||||
@ -43,9 +52,54 @@ add_library(NBGraphics
|
|||||||
${NB_GRAPHICS_SOURCE}
|
${NB_GRAPHICS_SOURCE}
|
||||||
${GLAD_PATH}/src/glad.c
|
${GLAD_PATH}/src/glad.c
|
||||||
)
|
)
|
||||||
target_link_libraries(NBGraphics glfw)
|
add_library(NBEngine::Graphics ALIAS NBGraphics)
|
||||||
|
target_link_libraries(NBGraphics
|
||||||
|
PUBLIC glfw
|
||||||
|
PUBLIC NBCore
|
||||||
|
)
|
||||||
|
get_target_property(GLFW_INTERFACE_INCLUDES glfw INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
#include_directories(${GLFW_INTERFACE_INCLUDES})
|
||||||
|
target_include_directories(NBGraphics
|
||||||
|
PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
|
||||||
|
PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||||
|
PUBLIC "${STBIMAGE_PATH}"
|
||||||
|
PUBLIC "${GLAD_PATH}/include"
|
||||||
|
)
|
||||||
|
|
||||||
target_include_directories(NBGraphics PUBLIC ./.)
|
if (NBENGINE_INSTALL)
|
||||||
|
message("Installing NBGraphics to ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
install(
|
||||||
|
TARGETS NBGraphics
|
||||||
|
EXPORT NBGraphicsTargets
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
DIRECTORY "${PROJECT_SOURCE_DIR}/include/NBGraphics"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
EXPORT NBGraphicsTargets
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||||
|
NAMESPACE NBEngine::
|
||||||
|
)
|
||||||
|
configure_package_config_file(
|
||||||
|
"NBGraphicsConfig.cmake.in"
|
||||||
|
"NBGraphicsConfig.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||||
|
PATH_VARS CMAKE_INSTALL_LIBDIR
|
||||||
|
)
|
||||||
|
write_basic_package_version_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfigVersion.cmake"
|
||||||
|
COMPATIBILITY AnyNewerVersion
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfigVersion.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NB_BUILD_TESTS)
|
if (NB_BUILD_TESTS)
|
||||||
add_subdirectory(./tests)
|
add_subdirectory(./tests)
|
||||||
|
|||||||
2
engine/NBGraphics/NBGraphicsConfig.cmake.in
Normal file
2
engine/NBGraphics/NBGraphicsConfig.cmake.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/NBGraphicsTargets.cmake")
|
||||||
@ -2,7 +2,7 @@
|
|||||||
#ifndef _NB_BUFFER
|
#ifndef _NB_BUFFER
|
||||||
#define _NB_BUFFER
|
#define _NB_BUFFER
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
#include <NBCore/Logger.hpp>
|
#include <NBCore/Logger.hpp>
|
||||||
#include <NBCore/Utils.hpp>
|
#include <NBCore/Utils.hpp>
|
||||||
|
|
||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
#ifndef _NB_CAMERA
|
#ifndef _NB_CAMERA
|
||||||
#define _NB_CAMERA
|
#define _NB_CAMERA
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <glm/glm.hpp>
|
#include <glm/glm.hpp>
|
||||||
#include <glm/gtc/matrix_inverse.hpp>
|
#include <glm/gtc/matrix_inverse.hpp>
|
||||||
@ -2,16 +2,16 @@
|
|||||||
#ifndef _NB_DRAW
|
#ifndef _NB_DRAW
|
||||||
#define _NB_DRAW
|
#define _NB_DRAW
|
||||||
|
|
||||||
#include <GLLoad.h>
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "Buffers.h"
|
#include <NBGraphics/Buffers.h>
|
||||||
#include "Shader.h"
|
#include <NBGraphics/Shader.h>
|
||||||
#include "VAOManager.hpp"
|
#include <NBGraphics/VAOManager.hpp>
|
||||||
|
|
||||||
#define THROW_DRAW_ERROR(msg) throw DrawError(msg, __FILE__, __LINE__);
|
#define THROW_DRAW_ERROR(msg) throw DrawError(msg, __FILE__, __LINE__);
|
||||||
|
|
||||||
@ -2,13 +2,13 @@
|
|||||||
#ifndef _NB_FRAMEBUFFER
|
#ifndef _NB_FRAMEBUFFER
|
||||||
#define _NB_FRAMEBUFFER
|
#define _NB_FRAMEBUFFER
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <NBCore/Errors.hpp>
|
#include <NBCore/Errors.hpp>
|
||||||
|
|
||||||
#include "Image.hpp"
|
#include <NBGraphics/Image.hpp>
|
||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
#include "Textures.hpp"
|
#include <NBGraphics/Textures.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
#ifndef _NB_OGL_OBJECTS
|
#ifndef _NB_OGL_OBJECTS
|
||||||
#define _NB_OGL_OBJECTS
|
#define _NB_OGL_OBJECTS
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <NBCore/Errors.hpp>
|
#include <NBCore/Errors.hpp>
|
||||||
|
|
||||||
@ -2,14 +2,14 @@
|
|||||||
#ifndef _NB_SHADER
|
#ifndef _NB_SHADER
|
||||||
#define _NB_SHADER
|
#define _NB_SHADER
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <NBCore/Errors.hpp>
|
#include <NBCore/Errors.hpp>
|
||||||
#include <NBCore/Utils.hpp>
|
#include <NBCore/Utils.hpp>
|
||||||
|
|
||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -2,9 +2,9 @@
|
|||||||
#ifndef _NB_TEXTURES
|
#ifndef _NB_TEXTURES
|
||||||
#define _NB_TEXTURES
|
#define _NB_TEXTURES
|
||||||
|
|
||||||
#include "Buffers.hpp"
|
#include <NBGraphics/Buffers.hpp>
|
||||||
#include "Image.hpp"
|
#include <NBGraphics/Image.hpp>
|
||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -2,12 +2,12 @@
|
|||||||
#ifndef _NB_VERTEX_ARRAY
|
#ifndef _NB_VERTEX_ARRAY
|
||||||
#define _NB_VERTEX_ARRAY
|
#define _NB_VERTEX_ARRAY
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <NBCore/Errors.hpp>
|
#include <NBCore/Errors.hpp>
|
||||||
|
|
||||||
#include "Buffers.hpp"
|
#include <NBGraphics/Buffers.hpp>
|
||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
|
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
@ -2,11 +2,10 @@
|
|||||||
#ifndef _NB_WINDOW
|
#ifndef _NB_WINDOW
|
||||||
#define _NB_WINDOW
|
#define _NB_WINDOW
|
||||||
|
|
||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <stdexcept>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <NBCore/Errors.hpp>
|
#include <NBCore/Errors.hpp>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Buffers.hpp"
|
#include <NBGraphics/Buffers.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Camera.hpp"
|
#include <NBGraphics/Camera.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Draw.h"
|
#include <NBGraphics/Draw.hpp>
|
||||||
|
|
||||||
namespace NB{
|
namespace NB{
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "FrameBuffers.hpp"
|
#include <NBGraphics/FrameBuffers.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Image.hpp"
|
#include <NBGraphics/Image.hpp>
|
||||||
|
|
||||||
using ImageErrorCodes = nb::ImageError::Codes;
|
using ImageErrorCodes = nb::ImageError::Codes;
|
||||||
const std::string nb::ImageError::type = "nb::ImageError";
|
const std::string nb::ImageError::type = "nb::ImageError";
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "OGLObjects.hpp"
|
#include <NBGraphics/OGLObjects.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "ProgramPipeline.hpp"
|
#include <NBGraphics/ProgramPipeline.hpp>
|
||||||
|
|
||||||
namespace nb{
|
namespace nb{
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Textures.hpp"
|
#include <NBGraphics/Textures.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "VertexArray.hpp"
|
#include <NBGraphics/VertexArray.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ VertexDataVec VertexGroup::dropBuffers() {
|
|||||||
|
|
||||||
VertexData VertexGroup::dropBuffer(size_t idx) {
|
VertexData VertexGroup::dropBuffer(size_t idx) {
|
||||||
if (idx >= _vertex_data.size()) {
|
if (idx >= _vertex_data.size()) {
|
||||||
THROW(NBError(NBError::INDEX_ERROR));
|
THROW(Error(Error<>::INDEX_ERROR));
|
||||||
}
|
}
|
||||||
VertexDataVec tmp;
|
VertexDataVec tmp;
|
||||||
VertexData ret;
|
VertexData ret;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#include "Window.hpp"
|
#include <NBGraphics/Window.hpp>
|
||||||
|
|
||||||
namespace nb {
|
namespace nb {
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,6 @@ if (NB_BUILD_TESTS)
|
|||||||
./TestWindow.cpp
|
./TestWindow.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(TestWindow
|
target_link_libraries(TestWindow
|
||||||
NBCore
|
|
||||||
NBGraphics
|
NBGraphics
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
#include "GLLoad.hpp"
|
#include <NBGraphics/GLLoad.hpp>
|
||||||
#define STB_IMAGE_IMPLEMENTATION
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
#include "stb_image.h"
|
#include "stb_image.h"
|
||||||
|
|
||||||
#include "Image.hpp"
|
#include <NBGraphics/Image.hpp>
|
||||||
#include "ProgramPipeline.hpp"
|
#include <NBGraphics/ProgramPipeline.hpp>
|
||||||
#include "VertexArray.hpp"
|
#include <NBGraphics/VertexArray.hpp>
|
||||||
#include "Window.hpp"
|
#include <NBGraphics/Window.hpp>
|
||||||
#include "Textures.hpp"
|
#include <NBGraphics/Textures.hpp>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
nb::logger.log("Howdy!");
|
nb::logger.log("Howdy!");
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
#define STB_IMAGE_IMPLEMENTATION
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
#include "stb_image.h"
|
#include "stb_image.h"
|
||||||
|
|
||||||
#include "Image.hpp"
|
#include <NBGraphics/Image.hpp>
|
||||||
|
|
||||||
TEST(TestImage, SinglePixel) {
|
TEST(TestImage, SinglePixel) {
|
||||||
using RGB = nb::Pixel<uint8_t, nb::Red, nb::Green, nb::Blue>;
|
using RGB = nb::Pixel<uint8_t, nb::Red, nb::Green, nb::Blue>;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user