From 648832d9391986efa461f71582fcc5ddd3ce50d8 Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 11 Jan 2015 22:52:55 -0500 Subject: [PATCH] bit of src tree shuffling. main.cpp to be replaced with test programs full disclosure: i'm a bit unsure of what is the best way to do this at this point in time. the end goal with this project is that it becomes a library to be used by other apps (of course), but need tests to test various library functionality. unsure how best to organize this with cmake (and since i'm using clion, i kind of would prefer it works nicely and integrated with the ide...). i figure this is going to be a trial and error approach that will evolve over the next while --- CMakeLists.txt | 25 +++++----- include/vm/vm.h | 14 ++++++ {src => include}/vm/vm_input.h | 4 +- {src => include}/vm/vm_input_codes.h | 0 {src => include}/vm/vm_log.h | 2 +- {src => include}/vm/vm_stdinc.h | 0 {src => include}/vm/vm_window.h | 2 +- src/main.cpp | 69 ---------------------------- src/vm/vm.h | 14 ------ src/vm/vm_input.c | 4 +- src/vm/vm_log.c | 2 +- src/vm/vm_window.c | 6 +-- test/test_wm.c | 26 +++++++++++ 13 files changed, 62 insertions(+), 106 deletions(-) create mode 100644 include/vm/vm.h rename {src => include}/vm/vm_input.h (91%) rename {src => include}/vm/vm_input_codes.h (100%) rename {src => include}/vm/vm_log.h (94%) rename {src => include}/vm/vm_stdinc.h (100%) rename {src => include}/vm/vm_window.h (95%) delete mode 100644 src/main.cpp delete mode 100644 src/vm/vm.h create mode 100644 test/test_wm.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 393e707..560cc88 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,21 +1,20 @@ cmake_minimum_required(VERSION 2.8.4) -set(PROJECT_NAME SoftwareRasterizer) -set(PROJECT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - project(SoftwareRasterizer) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SRC_DIR}/cmake") +set(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(TESTS_DIR "${ROOT_DIR}/test") + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${ROOT_DIR}/cmake") find_package(SDL2 REQUIRED) -file(GLOB_RECURSE SOURCE_FILES "." - "${PROJECT_SRC_DIR}/src/*.cpp" - "${PROJECT_SRC_DIR}/src/*.c" - "${PROJECT_SRC_DIR}/src/*.h" - "${PROJECT_SRC_DIR}/include/*.h" +file(GLOB_RECURSE LIB_SRC_FILES "." + "${ROOT_DIR}/src/*.cpp" + "${ROOT_DIR}/src/*.c" + "${ROOT_DIR}/src/*.h" + "${ROOT_DIR}/include/*.h" ) -include_directories(${SDL2_INCLUDE_DIR} "${PROJECT_SRC_DIR}/include") -add_executable(${PROJECT_NAME} ${SOURCE_FILES}) - -target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARY}) +include_directories(${SDL2_INCLUDE_DIR} "${ROOT_DIR}/include") +add_executable("test_wm" "${TESTS_DIR}/test_wm.c" ${LIB_SRC_FILES}) +target_link_libraries("test_wm" ${SDL2_LIBRARY}) diff --git a/include/vm/vm.h b/include/vm/vm.h new file mode 100644 index 0000000..9a85163 --- /dev/null +++ b/include/vm/vm.h @@ -0,0 +1,14 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "vm/vm_stdinc.h" +#include "vm/vm_log.h" +#include "vm/vm_window.h" +#include "vm/vm_input.h" + +#ifdef __cplusplus +} +#endif diff --git a/src/vm/vm_input.h b/include/vm/vm_input.h similarity index 91% rename from src/vm/vm_input.h rename to include/vm/vm_input.h index 672ad8b..664015f 100644 --- a/src/vm/vm_input.h +++ b/include/vm/vm_input.h @@ -4,8 +4,8 @@ extern "C" { #endif -#include "vm_stdinc.h" -#include "vm_input_codes.h" +#include "vm/vm_stdinc.h" +#include "vm/vm_input_codes.h" #include "SDL.h" bool input_init(); diff --git a/src/vm/vm_input_codes.h b/include/vm/vm_input_codes.h similarity index 100% rename from src/vm/vm_input_codes.h rename to include/vm/vm_input_codes.h diff --git a/src/vm/vm_log.h b/include/vm/vm_log.h similarity index 94% rename from src/vm/vm_log.h rename to include/vm/vm_log.h index 283dc77..8e11a29 100644 --- a/src/vm/vm_log.h +++ b/include/vm/vm_log.h @@ -4,7 +4,7 @@ extern "C" { #endif -#include "vm_stdinc.h" +#include "vm/vm_stdinc.h" void log_init(); void log_end(); diff --git a/src/vm/vm_stdinc.h b/include/vm/vm_stdinc.h similarity index 100% rename from src/vm/vm_stdinc.h rename to include/vm/vm_stdinc.h diff --git a/src/vm/vm_window.h b/include/vm/vm_window.h similarity index 95% rename from src/vm/vm_window.h rename to include/vm/vm_window.h index 9c31f49..572838c 100644 --- a/src/vm/vm_window.h +++ b/include/vm/vm_window.h @@ -4,7 +4,7 @@ extern "C" { #endif -#include "vm_stdinc.h" +#include "vm/vm_stdinc.h" #include "SDL.h" typedef struct { diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 0684ff6..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include -#include -#include -#include "vm/vm.h" -#include "fbgfx/surface.h" -#include "fbgfx/clipping.h" -#include "assets/image.h" -#include "vm/vm_window.h" - -static inline double get_seconds() { - return (double)clock() / CLOCKS_PER_SEC; -} - -int main(int argc, char** argv) { - log_init(); - input_init(); - WINDOW *window = window_init("Rasterizer Test", 1280, 960, 320, 240); - if (!window) - return 1; - - SURFACE *sprite = image_load_file("/Users/gered/resources/grass01.bmp"); - SURFACE *sprite2 = surface_create(16, 16, SURFACE_FORMAT_ALPHA, SURFACE_FLAGS_NONE); - surface_clear(sprite2, color_create_rgba(0, 0, 0, 0)); - surface_rect_filled(sprite2, 4, 4, 11, 11, color_create_rgba(0, 0, 0, 128)); - surface_line(sprite2, 0, 0, 15, 15, color_create_rgba(0, 0, 0, 255)); - - double before; - double after; - int i; - - before = get_seconds(); - - for (i = 0; i < 500000; ++i) { - surface_blit(sprite, window->surface, 0, 0); - //surface_blit_blend(sprite, window->surface, 0, 0); - } - - after = get_seconds(); - - printf("time taken: %f\n", after - before); - - while (true) { - if (!window_do_events(window)) - break; - if (input_is_key_pressed(KSYM_ESCAPE)) - break; - - //surface_clear(window->surface, color_create_rgba(192, 192, 192, 255)); - int x, y; - for (y = 0; y < window->surface->height; y += 16) { - for (x = 0; x < window->surface->width; x += 16) { - surface_blit(sprite, window->surface, x, y); - } - } - - surface_line(window->surface, window->viewport_width / 2, window->viewport_height / 2, input_get_mouse_x(), input_get_mouse_y(), COLOR_YELLOW); - //surface_blit_tint(sprite, window->surface, INPUT_GetMouseX(), INPUT_GetMouseY(), COLOR_DOS_BROWN); - surface_blit_blend(sprite2, window->surface, 0, 0); - surface_blit_blend_tint(sprite2, window->surface, 16, 0, color_create_rgba(255, 0, 0, 64)); - - window_render(window); - } - - window_destroy(window); - input_destroy(); - log_end(); - - return 0; -} diff --git a/src/vm/vm.h b/src/vm/vm.h deleted file mode 100644 index af5388f..0000000 --- a/src/vm/vm.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -#include "vm_stdinc.h" -#include "vm_log.h" -#include "vm_window.h" -#include "vm_input.h" - -#ifdef __cplusplus -} -#endif diff --git a/src/vm/vm_input.c b/src/vm/vm_input.c index 0c8da88..5a29609 100644 --- a/src/vm/vm_input.c +++ b/src/vm/vm_input.c @@ -1,5 +1,5 @@ -#include "vm_input.h" -#include "vm_log.h" +#include "vm/vm_input.h" +#include "vm/vm_log.h" #include const int MAX_KEYS = SDL_NUM_SCANCODES; diff --git a/src/vm/vm_log.c b/src/vm/vm_log.c index d145bc1..40b7640 100644 --- a/src/vm/vm_log.c +++ b/src/vm/vm_log.c @@ -1,4 +1,4 @@ -#include "vm_log.h" +#include "vm/vm_log.h" #include #include diff --git a/src/vm/vm_window.c b/src/vm/vm_window.c index e7b4b47..fb7eef9 100644 --- a/src/vm/vm_window.c +++ b/src/vm/vm_window.c @@ -1,6 +1,6 @@ -#include "vm_window.h" -#include "vm_log.h" -#include "vm_input.h" +#include "vm/vm_window.h" +#include "vm/vm_log.h" +#include "vm/vm_input.h" #include "fbgfx/surface.h" static SDL_Texture*create_texture(SDL_Renderer *renderer, int width, int height) { diff --git a/test/test_wm.c b/test/test_wm.c new file mode 100644 index 0000000..7f35ad7 --- /dev/null +++ b/test/test_wm.c @@ -0,0 +1,26 @@ +#include +#include "vm/vm.h" +#include + +int main(int argc, char **argv) { + log_init(); + input_init(); + WINDOW *window = window_init("Rasterizer Test", 1280, 960, 320, 240); + if (!window) + return 1; + + while (true) { + if (!window_do_events(window)) + break; + if (input_is_key_down(KSYM_ESCAPE)) + break; + + window_render(window); + } + + window_destroy(window); + input_destroy(); + log_end(); + + return 0; +}