diff --git a/CMakeLists.txt b/CMakeLists.txt index 08a20ba..cdf8c56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,15 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/libraries/glad/src/glad.c) ) endif() +# CURL (if vendored in libraries/) +if(EXISTS ${CMAKE_SOURCE_DIR}/libraries/curl/CMakeLists.txt) + add_subdirectory(${CMAKE_SOURCE_DIR}/libraries/curl EXCLUDE_FROM_ALL) + target_include_directories(${EXECUTABLE_NAME} PRIVATE + ${CMAKE_SOURCE_DIR}/libraries/curl/include + ) + target_link_libraries(${EXECUTABLE_NAME} PRIVATE curl) +endif() + # Link with OpenGL + dependencies if (APPLE) target_link_libraries(${EXECUTABLE_NAME} PRIVATE glfw glad glm::glm "-framework OpenGL") diff --git a/RASTER b/RASTER index 80e5e84..a3a4586 100755 Binary files a/RASTER and b/RASTER differ diff --git a/include/http_get.c b/include/http_get.c deleted file mode 100644 index 206c0a8..0000000 --- a/include/http_get.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "http_get.h" - -// Callback for libcurl to write response into our struct -static size_t write_callback(void *data, size_t size, size_t nmemb, void *userp) { - size_t realsize = size * nmemb; - struct Memory *mem = (struct Memory *)userp; - - char *ptr = realloc(mem->response, mem->size + realsize + 1); - if(ptr == NULL) { - // Out of memory! - fprintf(stderr, "realloc() failed\n"); - return 0; - } - - mem->response = ptr; - memcpy(&(mem->response[mem->size]), data, realsize); - mem->size += realsize; - mem->response[mem->size] = '\0'; - return realsize; -} - -// Function: GET request, returns heap string (caller must free) -char *http_get(const char *url) { - CURL *curl; - CURLcode res; - struct Memory chunk; - - chunk.response = malloc(1); // start with empty buffer - chunk.size = 0; - - curl_global_init(CURL_GLOBAL_ALL); - curl = curl_easy_init(); - - if(curl) { - curl_easy_setopt(curl, CURLOPT_URL, url); - curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); // follow redirects - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk); - - res = curl_easy_perform(curl); - - if(res != CURLE_OK) { - fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); - free(chunk.response); - chunk.response = NULL; - } - - curl_easy_cleanup(curl); - } - - curl_global_cleanup(); - return chunk.response; -} - diff --git a/include/http_get.h b/include/http_get.h deleted file mode 100644 index 07bba8d..0000000 --- a/include/http_get.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HTTP_GET_H -#define HTTP_GET_H - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -// Struct to hold response data -struct Memory { - char *response; - size_t size; -}; - -// Callback for libcurl to write response into our struct -static size_t write_callback(void *data, size_t size, size_t nmemb, void *userp); - -// Function: GET request, returns heap string (caller must free) -char *http_get(const char *url); - -#ifdef __cplusplus -} -#endif - -#endif // HTTP_GET_H diff --git a/source/main.cpp b/source/main.cpp index 42819b6..d74d26d 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -5,8 +5,8 @@ #include // glad and GLFW -#include #include +#include // glm math #include diff --git a/source/shader.h b/source/shader.h index d953ceb..4547afb 100644 --- a/source/shader.h +++ b/source/shader.h @@ -14,8 +14,10 @@ #include #include +#include #include + // Shader loader helper std::string loadShaderSource(const std::string& filepath);