From 145a0977ee757f392aa081f111a0188a9a07d332 Mon Sep 17 00:00:00 2001 From: Shariq Shah Date: Sat, 25 Mar 2017 14:02:02 +0500 Subject: [PATCH] Fixed makefile always rebuilding from scratch --- build/linux/makefile | 14 ++++++++------ orgfile.org | 4 +++- src/geometry.c | 9 ++++++++- src/model.c | 2 +- src/renderer.c | 2 +- src/scene.c | 1 + src/transform.c | 1 + 7 files changed, 23 insertions(+), 10 deletions(-) diff --git a/build/linux/makefile b/build/linux/makefile index 591d111..7d32822 100644 --- a/build/linux/makefile +++ b/build/linux/makefile @@ -6,28 +6,30 @@ LIB_DIR_RELEASE = ../../libs/release/linux64_gcc LIB_DIR_DEBUG = ../../libs/debug/linux64_gcc BUILD_TYPE = release SRCS = $(patsubst $(SRC_DIR)/%.c, %.c, $(wildcard ../../src/*.c)) -OBJS = $(patsubst %.c,%.o,$(SRCS)) OBJS_RELEASE = $(patsubst %.c,.release/%.o,$(SRCS)) OBJS_DEBUG = $(patsubst %.c,.debug/%.o,$(SRCS)) CFLAGS = -Wall -I$(INCLUDE_DIR) -DUSE_GLAD CFLAGS_DEBUG = -g -DGL_DEBUG_CONTEXT -DAL_DEBUG -std=c99 -CFLAGS_RELEASE = -O2 +CFLAGS_RELEASE = -O3 -ffast-math LFLAGS = -lSDL2 -lpthread -ldl -lm -lopenal -lsndio -lGL all: release release: BUILD_TYPE = release release: CFLAGS += $(CFLAGS_RELEASE) -release: pre_build $(OBJS) post_build +release: pre_build $(OBJS_RELEASE) post_build $(CC) $(OBJS_RELEASE) -L$(LIB_DIR_RELEASE) $(LFLAGS) -o $(PROJECT_NAME) debug: BUILD_TYPE = debug debug: CFLAGS += $(CFLAGS_DEBUG) -debug: pre_build $(OBJS) post_build +debug: pre_build $(OBJS_DEBUG) post_build $(CC) $(OBJS_DEBUG) -L$(LIB_DIR_DEBUG) $(LFLAGS) -o $(PROJECT_NAME) -%.o: $(SRC_DIR)/%.c - $(CC) $(CFLAGS) -c $< -o .$(BUILD_TYPE)/$@ +.release/%.o: $(SRC_DIR)/%.c + $(CC) $(CFLAGS) -c $< -o $@ + +.debug/%.o: $(SRC_DIR)/%.c + $(CC) $(CFLAGS) -c $< -o $@ pre_build: -@mkdir .debug .release diff --git a/orgfile.org b/orgfile.org index 91440a0..3f7d840 100644 --- a/orgfile.org +++ b/orgfile.org @@ -98,6 +98,7 @@ All the code in this repository is under GPLv3, see LICENSE for more information - State "DONE" from "TODO" [2017-03-19 Sun 01:31] ** TODO Ability to mark meshes for debug rendering with possibility of different color for each? ** TODO Setup cross compilation with mingw or stick to msvc? +** TODO Add marking or queuing up custom meshes for debug render with particular transform and color for rendering bounding spheres for example ** DONE Toggleable debug drawing for meshes - State "DONE" from "TODO" [2017-03-18 Sat 16:18] ** TODO Interleaved vbos for meshes and changes to blender exporter accordingly @@ -110,7 +111,8 @@ x Font atlas proper cleanup - Custom rendering for gui ** TODO Allow passsing base path as commandline argument? ** TODO Better handling incase assets folder is not found? -** TODO OpenAL not working in release builds +** DONE OpenAL not working in release builds +- State "DONE" from "TODO" [2017-03-25 Sat 02:06] ** DONE 3d sound using OpenAL - State "DONE" from "TODO" [2017-03-23 Thu 01:43] ** TODO Ogg format loading and playback diff --git a/src/geometry.c b/src/geometry.c index 49be74c..8279f63 100644 --- a/src/geometry.c +++ b/src/geometry.c @@ -13,6 +13,7 @@ #include #include #include +#include struct Geometry { @@ -75,6 +76,12 @@ static void generate_bounding_volume(int geometry_index) struct Geometry* geometry = &geometry_list[geometry_index]; struct Bounding_Box* box = &geometry->bounding_box; struct Bounding_Sphere* sphere = &geometry->bounding_sphere; + + vec3_fill(&box->max, -FLT_MIN, -FLT_MIN, -FLT_MIN); + vec3_fill(&box->min, FLT_MAX, FLT_MAX, FLT_MAX); + vec3_fill(&sphere->center, 0.f, 0.f, 0.f); + sphere->radius = 0.f; + for(int i = 0; i < array_len(geometry->vertices); i++) { vec3* vertex = &geometry->vertices[i]; @@ -90,7 +97,7 @@ static void generate_bounding_volume(int geometry_index) vec3_scale(&sphere->center, &sphere->center, 0.5f); vec3 len_vec; vec3_sub(&len_vec, &box->max, &sphere->center); - sphere->radius = fabs(vec3_len(&len_vec)); + sphere->radius = fabsf(vec3_len(&len_vec)); } static struct Geometry* generate_new_index(int* out_new_index) diff --git a/src/model.c b/src/model.c index b59247b..0b1ee46 100644 --- a/src/model.c +++ b/src/model.c @@ -415,7 +415,7 @@ void model_render_all_debug(struct Camera* camera, struct Transform* parent_transform = entity_component_get(parent, C_TRANSFORM); mat4_mul(&temp_trans.trans_mat, &temp_trans.trans_mat, &parent_transform->trans_mat); } - + //log_message("Radius %.3f", sphere->radius); mat4_identity(&mvp); //mat4_mul(&mvp, &camera->view_proj_mat, &transform->trans_mat); mat4_mul(&mvp, &camera->view_proj_mat, &temp_trans.trans_mat); diff --git a/src/renderer.c b/src/renderer.c index 6ceb35f..cd1c10f 100644 --- a/src/renderer.c +++ b/src/renderer.c @@ -40,7 +40,7 @@ void renderer_init(void) settings.fog.density = 0.01f; settings.fog.start_dist = 50.f; settings.fog.max_dist = 150.f; - settings.debug_draw_enabled = 0; + settings.debug_draw_enabled = 1; settings.debug_draw_mode = GDM_TRIANGLES; settings.max_gui_vertex_memory = MAX_GUI_VERTEX_MEMORY; settings.max_gui_element_memory = MAX_GUI_ELEMENT_MEMORY; diff --git a/src/scene.c b/src/scene.c index a164f2b..de8f86c 100644 --- a/src/scene.c +++ b/src/scene.c @@ -14,6 +14,7 @@ void scene_init(void) /* Add root node to scene */ struct Entity* root = entity_create("ROOT", NULL); root_node = root->node; + log_message("Root Parent : %d", root->parent); } struct Entity* scene_add_new(const char* name, const char* tag) diff --git a/src/transform.c b/src/transform.c index f14ca4f..3336bce 100644 --- a/src/transform.c +++ b/src/transform.c @@ -41,6 +41,7 @@ int transform_create(int node) vec3_fill(&new_transform->position, 0.f, 0.f, 0.f); vec3_fill(&new_transform->scale, 1.f, 1.f, 1.f); quat_identity(&new_transform->rotation); + mat4_identity(&new_transform->trans_mat); transform_update_transmat(new_transform); } return index;