diff --git a/CMakeLists.txt b/CMakeLists.txt index d1e3cf7..bc53662 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,9 @@ project(sockscape) set(CMAKE_CXX_STANDARD 11) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") +if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -static") +endif() ## CLIENT BUILD ## @@ -13,12 +16,16 @@ find_package(SDL2_image REQUIRED) find_package(SDL2_ttf REQUIRED) file(GLOB_RECURSE client_src + "src/common/*.hpp" + "src/common/*.cpp" "src/client/*.hpp" "src/client/*.cpp" ) add_executable(client ${client_src}) target_include_directories(client + PRIVATE ${PROJECT_SOURCE_DIR}/src/common + PRIVATE ${PROJECT_SOURCE_DIR}/src/client PRIVATE ${PROJECT_SOURCE_DIR}/include/client PRIVATE ${OPENGL_INCLUDE_DIR} PRIVATE ${GLEW_INCLUDE_DIR} @@ -36,6 +43,8 @@ install(TARGETS client RUNTIME DESTINATION bin/client) ## SERVER BUILD ## file(GLOB_RECURSE server_src + "src/common/*.hpp" + "src/common/*.cpp" "src/server/*.hpp" "src/server/*.cpp" "src/server/*.c" @@ -43,6 +52,9 @@ file(GLOB_RECURSE server_src ) add_executable(server ${server_src}) +target_include_directories(server + PRIVATE ${PROJECT_SOURCE_DIR}/src/common + PRIVATE ${PROJECT_SOURCE_DIR}/src/server) if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") target_link_libraries(server wsock32 ws2_32) elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") diff --git a/resources/client/fonts/scape.ttf b/resources/client/fonts/scape.ttf new file mode 100644 index 0000000..7ce7b1a Binary files /dev/null and b/resources/client/fonts/scape.ttf differ diff --git a/resources/client/shaders/test.frag b/resources/client/shaders/test.frag new file mode 100644 index 0000000..c90338d --- /dev/null +++ b/resources/client/shaders/test.frag @@ -0,0 +1,9 @@ +#version 330 core +in vec2 texCoords; +uniform sampler2D graphicSampler; + +out vec4 fragColor; + +void main() { + fragColor = texture(graphicSampler, texCoords); +} \ No newline at end of file diff --git a/resources/client/shaders/test.vert b/resources/client/shaders/test.vert new file mode 100644 index 0000000..7379be4 --- /dev/null +++ b/resources/client/shaders/test.vert @@ -0,0 +1,18 @@ +#version 330 core +layout (location = 0) in vec2 aScreenCoords; +layout (location = 1) in vec2 aTexCoords; + +out vec2 texCoords; + +uniform vec2 screenSize; + +void main() { + mat2 scMatrix = mat2(screenSize.x); + vec2 viewCoords = scMatrix * aScreenCoords; + gl_Position = + vec4((2 * aScreenCoords.x) / screenSize.x - 1, + 1 - (2 * aScreenCoords.y) / screenSize.y, + 0, 0); + + texCoords = aTexCoords; +} \ No newline at end of file diff --git a/src/server/_hard_schema.db b/resources/server/_hard_schema.db similarity index 100% rename from src/server/_hard_schema.db rename to resources/server/_hard_schema.db diff --git a/src/server/_mem_schema.db b/resources/server/_mem_schema.db similarity index 100% rename from src/server/_mem_schema.db rename to resources/server/_mem_schema.db diff --git a/src/client/main.cpp b/src/client/main.cpp index f69d68b..453252e 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -1,5 +1,6 @@ #include #include +#include #define GL3_PROTOTYPES 1 #include @@ -39,29 +40,29 @@ int main(int argc, char* argv[]) { glewInit(); #endif - setColor(1, 0, 0, window); - bool running = true; while(running) { + glClearColor(0.0, 0.0, 0.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT); + + SDL_GL_SwapWindow(window); + SDL_Event event; while(SDL_PollEvent(&event)) { if(event.type == SDL_QUIT) running = false; + if(event.type == SDL_WINDOWEVENT && + event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) + { + + } + if(event.type == SDL_KEYDOWN) { switch(event.key.keysym.sym) { case SDLK_ESCAPE: running = false; break; - case SDLK_r: - setColor(1.0, 0.0, 0.0, window); - break; - case SDLK_g: - setColor(0.0, 1.0, 0.0, window); - break; - case SDLK_b: - setColor(0.0, 0.0, 1.0, window); - break; default: break; } diff --git a/src/server/crypto/base64.cpp b/src/common/crypto/base64.cpp similarity index 100% rename from src/server/crypto/base64.cpp rename to src/common/crypto/base64.cpp diff --git a/src/server/crypto/base64.hpp b/src/common/crypto/base64.hpp similarity index 100% rename from src/server/crypto/base64.hpp rename to src/common/crypto/base64.hpp diff --git a/src/server/crypto/bcrypt.cpp b/src/common/crypto/bcrypt.cpp similarity index 99% rename from src/server/crypto/bcrypt.cpp rename to src/common/crypto/bcrypt.cpp index cf87337..63a1590 100644 --- a/src/server/crypto/bcrypt.cpp +++ b/src/common/crypto/bcrypt.cpp @@ -1,4 +1,5 @@ #include "bcrypt.hpp" +#include "bfish.hpp" static const uint32_t bcrypt_ciphertext[6] = { 0x4f727068, 0x65616e42, 0x65686f6c, diff --git a/src/server/crypto/bcrypt.hpp b/src/common/crypto/bcrypt.hpp similarity index 83% rename from src/server/crypto/bcrypt.hpp rename to src/common/crypto/bcrypt.hpp index 931809b..772c4bf 100644 --- a/src/server/crypto/bcrypt.hpp +++ b/src/common/crypto/bcrypt.hpp @@ -5,9 +5,8 @@ #include #include #include "base64.hpp" -#include "bfish.hpp" -#include "../utils/csprng.hpp" -#include "../utils/string.hpp" +#include "utils/csprng.hpp" +#include "utils/string.hpp" #define BCRYPT_COST 10 diff --git a/src/server/crypto/bfish.cpp b/src/common/crypto/bfish.cpp similarity index 100% rename from src/server/crypto/bfish.cpp rename to src/common/crypto/bfish.cpp diff --git a/src/server/crypto/bfish.hpp b/src/common/crypto/bfish.hpp similarity index 99% rename from src/server/crypto/bfish.hpp rename to src/common/crypto/bfish.hpp index 7747258..bd21403 100644 --- a/src/server/crypto/bfish.hpp +++ b/src/common/crypto/bfish.hpp @@ -24,7 +24,7 @@ private: uint32_t parr[18]; uint32_t sbox[4][256]; - + friend std::string sosc::cgc::bcrypt_hash_raw (const std::string& input, const std::string& salt, uint32_t cost); }; diff --git a/src/server/crypto/cipher.cpp b/src/common/crypto/cipher.cpp similarity index 100% rename from src/server/crypto/cipher.cpp rename to src/common/crypto/cipher.cpp diff --git a/src/server/crypto/cipher.hpp b/src/common/crypto/cipher.hpp similarity index 93% rename from src/server/crypto/cipher.hpp rename to src/common/crypto/cipher.hpp index 2f208be..4ead268 100644 --- a/src/server/crypto/cipher.hpp +++ b/src/common/crypto/cipher.hpp @@ -1,7 +1,7 @@ #ifndef SOSC_CRYPTO_CIPHER_H #define SOSC_CRYPTO_CIPHER_H -#include "../utils/bigint.hpp" +#include "utils/bigint.hpp" #include "keyex.hpp" namespace sosc { diff --git a/src/server/crypto/keyex.cpp b/src/common/crypto/keyex.cpp similarity index 100% rename from src/server/crypto/keyex.cpp rename to src/common/crypto/keyex.cpp diff --git a/src/server/crypto/keyex.hpp b/src/common/crypto/keyex.hpp similarity index 92% rename from src/server/crypto/keyex.hpp rename to src/common/crypto/keyex.hpp index 29811e7..d1f8810 100644 --- a/src/server/crypto/keyex.hpp +++ b/src/common/crypto/keyex.hpp @@ -1,8 +1,8 @@ #ifndef SOSC_CRYPTO_KEYEX_H #define SOSC_CRYPTO_KEYEX_H -#include "../utils/bigint.hpp" -#include "../sock/packet.hpp" +#include "utils/bigint.hpp" +#include "sock/packet.hpp" namespace sosc { namespace cgc { diff --git a/src/server/crypto/sha1.cpp b/src/common/crypto/sha1.cpp similarity index 100% rename from src/server/crypto/sha1.cpp rename to src/common/crypto/sha1.cpp diff --git a/src/server/crypto/sha1.hpp b/src/common/crypto/sha1.hpp similarity index 100% rename from src/server/crypto/sha1.hpp rename to src/common/crypto/sha1.hpp diff --git a/src/server/sock/frame.cpp b/src/common/sock/frame.cpp similarity index 100% rename from src/server/sock/frame.cpp rename to src/common/sock/frame.cpp diff --git a/src/server/sock/frame.hpp b/src/common/sock/frame.hpp similarity index 98% rename from src/server/sock/frame.hpp rename to src/common/sock/frame.hpp index 68ee644..f498302 100644 --- a/src/server/sock/frame.hpp +++ b/src/common/sock/frame.hpp @@ -3,7 +3,7 @@ #include #include -#include "../utils/net.hpp" +#include "utils/net.hpp" #define FRAME_OK 0 #define FRAME_MORE 1 diff --git a/src/server/sock/intrasock.cpp b/src/common/sock/intrasock.cpp similarity index 100% rename from src/server/sock/intrasock.cpp rename to src/common/sock/intrasock.cpp diff --git a/src/server/sock/intrasock.hpp b/src/common/sock/intrasock.hpp similarity index 97% rename from src/server/sock/intrasock.hpp rename to src/common/sock/intrasock.hpp index 48cd474..58fa9bb 100644 --- a/src/server/sock/intrasock.hpp +++ b/src/common/sock/intrasock.hpp @@ -3,7 +3,7 @@ #include "tcpsock.hpp" #include "packet.hpp" -#include "../crypto/cipher.hpp" +#include "crypto/cipher.hpp" namespace sosc { class IntraClient { diff --git a/src/server/sock/packet.cpp b/src/common/sock/packet.cpp similarity index 99% rename from src/server/sock/packet.cpp rename to src/common/sock/packet.cpp index 872d726..0801eba 100644 --- a/src/server/sock/packet.cpp +++ b/src/common/sock/packet.cpp @@ -23,6 +23,8 @@ bool sosc::Packet::AddRegions(std::vector data) { for(const auto& i : data) this->regions.push_back(i); + + return true; } void sosc::Packet::SetRegion(uint8_t index, std::string data) { diff --git a/src/server/sock/packet.hpp b/src/common/sock/packet.hpp similarity index 98% rename from src/server/sock/packet.hpp rename to src/common/sock/packet.hpp index 98a31ed..0552c62 100644 --- a/src/server/sock/packet.hpp +++ b/src/common/sock/packet.hpp @@ -5,7 +5,7 @@ #include #include #include -#include "../utils/net.hpp" +#include "utils/net.hpp" #define PCK_ANY 0 diff --git a/src/server/sock/pool.hpp b/src/common/sock/pool.hpp similarity index 99% rename from src/server/sock/pool.hpp rename to src/common/sock/pool.hpp index 0953b6c..c10aafa 100644 --- a/src/server/sock/pool.hpp +++ b/src/common/sock/pool.hpp @@ -5,7 +5,7 @@ #include #include #include -#include "../db/database.hpp" +#include "db/database.hpp" namespace sosc { typedef struct { diff --git a/src/server/sock/scapesock.cpp b/src/common/sock/scapesock.cpp similarity index 100% rename from src/server/sock/scapesock.cpp rename to src/common/sock/scapesock.cpp diff --git a/src/server/sock/scapesock.hpp b/src/common/sock/scapesock.hpp similarity index 93% rename from src/server/sock/scapesock.hpp rename to src/common/sock/scapesock.hpp index f25d499..49f9f6c 100644 --- a/src/server/sock/scapesock.hpp +++ b/src/common/sock/scapesock.hpp @@ -2,9 +2,9 @@ #define SOSC_SCAPESOCK_H #include -#include "../crypto/sha1.hpp" -#include "../crypto/base64.hpp" -#include "../crypto/cipher.hpp" +#include "crypto/sha1.hpp" +#include "crypto/base64.hpp" +#include "crypto/cipher.hpp" #include "frame.hpp" #include "packet.hpp" #include "tcpsock.hpp" diff --git a/src/server/sock/tcpsock.hpp b/src/common/sock/tcpsock.hpp similarity index 96% rename from src/server/sock/tcpsock.hpp rename to src/common/sock/tcpsock.hpp index 620d183..8ed0484 100644 --- a/src/server/sock/tcpsock.hpp +++ b/src/common/sock/tcpsock.hpp @@ -31,8 +31,8 @@ #include #include #include -#include "../utils/net.hpp" -#include "../utils/string.hpp" +#include "utils/net.hpp" +#include "utils/string.hpp" #define SOSC_TCP_BUFLEN 2048 diff --git a/src/server/sock/tcpsock_bsd.cpp b/src/common/sock/tcpsock_bsd.cpp similarity index 100% rename from src/server/sock/tcpsock_bsd.cpp rename to src/common/sock/tcpsock_bsd.cpp diff --git a/src/server/sock/tcpsock_win.cpp b/src/common/sock/tcpsock_win.cpp similarity index 100% rename from src/server/sock/tcpsock_win.cpp rename to src/common/sock/tcpsock_win.cpp diff --git a/src/server/utils/bigint.cpp b/src/common/utils/bigint.cpp similarity index 100% rename from src/server/utils/bigint.cpp rename to src/common/utils/bigint.cpp diff --git a/src/server/utils/bigint.hpp b/src/common/utils/bigint.hpp similarity index 100% rename from src/server/utils/bigint.hpp rename to src/common/utils/bigint.hpp diff --git a/src/server/utils/csprng.cpp b/src/common/utils/csprng.cpp similarity index 100% rename from src/server/utils/csprng.cpp rename to src/common/utils/csprng.cpp diff --git a/src/server/utils/csprng.hpp b/src/common/utils/csprng.hpp similarity index 100% rename from src/server/utils/csprng.hpp rename to src/common/utils/csprng.hpp diff --git a/src/server/utils/net.cpp b/src/common/utils/net.cpp similarity index 100% rename from src/server/utils/net.cpp rename to src/common/utils/net.cpp diff --git a/src/server/utils/net.hpp b/src/common/utils/net.hpp similarity index 100% rename from src/server/utils/net.hpp rename to src/common/utils/net.hpp diff --git a/src/server/utils/string.cpp b/src/common/utils/string.cpp similarity index 100% rename from src/server/utils/string.cpp rename to src/common/utils/string.cpp diff --git a/src/server/utils/string.hpp b/src/common/utils/string.hpp similarity index 100% rename from src/server/utils/string.hpp rename to src/common/utils/string.hpp diff --git a/src/server/utils/time.cpp b/src/common/utils/time.cpp similarity index 100% rename from src/server/utils/time.cpp rename to src/common/utils/time.cpp diff --git a/src/server/utils/time.hpp b/src/common/utils/time.hpp similarity index 100% rename from src/server/utils/time.hpp rename to src/common/utils/time.hpp diff --git a/src/server/db/database.hpp b/src/server/db/database.hpp index 2cbeb70..6008431 100644 --- a/src/server/db/database.hpp +++ b/src/server/db/database.hpp @@ -2,8 +2,8 @@ #define SOSC_DATABASE_H #include "sqlite/sqlite3.h" -#include "../utils/time.hpp" -#include "../crypto/sha1.hpp" +#include "utils/time.hpp" +#include "crypto/sha1.hpp" #include #include diff --git a/src/server/hosts/master.hpp b/src/server/hosts/master.hpp index 2408cf0..5b57e6e 100644 --- a/src/server/hosts/master.hpp +++ b/src/server/hosts/master.hpp @@ -1,16 +1,16 @@ #ifndef SOSC_HOST_MASTER_H #define SOSC_HOST_MASTER_H -#include "../sock/intrasock.hpp" -#include "../sock/scapesock.hpp" -#include "../sock/pool.hpp" +#include "sock/intrasock.hpp" +#include "sock/scapesock.hpp" +#include "sock/pool.hpp" -#include "../crypto/keyex.hpp" -#include "../crypto/cipher.hpp" +#include "crypto/keyex.hpp" +#include "crypto/cipher.hpp" -#include "../db/database.hpp" +#include "db/database.hpp" -#include "../ctx/master.hpp" +#include "ctx/master.hpp" #include diff --git a/src/server/hosts/master_intra.cpp b/src/server/hosts/master_intra.cpp index fd453f0..48a521e 100644 --- a/src/server/hosts/master_intra.cpp +++ b/src/server/hosts/master_intra.cpp @@ -1,5 +1,5 @@ #include "master.hpp" -#include "../db/database.hpp" +#include "db/database.hpp" #include static struct { diff --git a/src/server/hosts/slave.hpp b/src/server/hosts/slave.hpp index ae1be3f..019eb9f 100644 --- a/src/server/hosts/slave.hpp +++ b/src/server/hosts/slave.hpp @@ -1,9 +1,9 @@ #ifndef SOSC_HOST_SLAVE_H #define SOSC_HOST_SLAVE_H -#include "../sock/scapesock.hpp" -#include "../sock/pool.hpp" -#include "../ctx/slave.hpp" +#include "sock/scapesock.hpp" +#include "sock/pool.hpp" +#include "ctx/slave.hpp" namespace sosc { /** SLAVE -> CLIENT **/