diff --git a/CMakeLists.txt b/CMakeLists.txt index bc53662..3eb1b71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,11 @@ cmake_minimum_required(VERSION 3.12) project(sockscape) +string(COMPARE EQUAL ${CMAKE_BUILD_TYPE} Debug _CMP) +if(_CMP) + add_definitions("-DSOSC_DEBUG") +endif() + set(CMAKE_CXX_STANDARD 11) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/src/client/common.hpp b/src/client/common.hpp new file mode 100644 index 0000000..0defa4f --- /dev/null +++ b/src/client/common.hpp @@ -0,0 +1,14 @@ +#ifndef SOSC_CLIENT_COMMON_H +#define SOSC_CLIENT_COMMON_H + +#include + +#ifdef SOSC_DEBUG +#define SOSC_RESOURCE_PATH (std::string("../resources/client/")) +#else +#define SOSC_RESOURCE_PATH (std::string("resources/")) +#endif + +#define SOSC_RESC(X) (SOSC_RESOURCE_PATH + std::string(X)) + +#endif diff --git a/src/client/main.cpp b/src/client/main.cpp index 453252e..5096fc9 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -42,7 +42,6 @@ int main(int argc, char* argv[]) { bool running = true; while(running) { - glClearColor(0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); SDL_GL_SwapWindow(window); diff --git a/src/client/shaders/_shader.cpp b/src/client/shaders/_shader.cpp new file mode 100644 index 0000000..2bf08d8 --- /dev/null +++ b/src/client/shaders/_shader.cpp @@ -0,0 +1,2 @@ +#include "_shader.hpp" + diff --git a/src/client/shaders/_shader.hpp b/src/client/shaders/_shader.hpp new file mode 100644 index 0000000..90b338c --- /dev/null +++ b/src/client/shaders/_shader.hpp @@ -0,0 +1,27 @@ +#ifndef SOSC_SHADER_CORE_H +#define SOSC_SHADER_CORE_H + +#include "common.hpp" +#include +#include + +class Shader { +public: + Shader(); + bool Load(); + + void Start(); + void Stop(); + + void Unload(); +protected: + virtual bool PrepareLoad() = 0; + virtual void PrepareUnload() {}; + + bool AttachSource(); + bool FetchUniforms(int count, GLint* ids, ...); +private: + GLuint program; +}; + +#endif