diff --git a/src/Renderer.c b/src/Renderer.c index 8374f81..52391e6 100644 --- a/src/Renderer.c +++ b/src/Renderer.c @@ -1,4 +1,6 @@ #include "Dengine/Renderer.h" +#include "Dengine/AssetManager.h" +#include "Dengine/Assets.h" #include "Dengine/Debug.h" #include "Dengine/Entity.h" #include "Dengine/OpenGL.h" @@ -138,6 +140,13 @@ INTERNAL void renderObject(Renderer *renderer, v2 pos, v2 size, v2 pivotPoint, GL_CHECK_ERROR(); } +RenderTex renderer_createNullRenderTex(AssetManager *assetManager) +{ + Texture *emptyTex = asset_getTexture(assetManager, texlist_empty); + RenderTex result = {emptyTex, V4(0, 1, 1, 0)}; + return result; +} + void renderer_rect(Renderer *const renderer, v4 cameraBounds, v2 pos, v2 size, v2 pivotPoint, f32 rotate, RenderTex renderTex, v4 color) { diff --git a/src/WorldTraveller.c b/src/WorldTraveller.c index f13ab16..2236b8e 100644 --- a/src/WorldTraveller.c +++ b/src/WorldTraveller.c @@ -1124,6 +1124,10 @@ void worldTraveller_gameUpdateAndRender(GameState *state, f32 dt) } /* Draw ui */ + RenderTex nullRenderTex = renderer_createNullRenderTex(assetManager); + renderer_staticRect(renderer, state->input.mouse, hero->hitboxSize, + V2(0, 0), 0, nullRenderTex, V4(0.5f, 0, 0, 0.5f)); + /* Draw hero avatar */ TexAtlas *heroAtlas = asset_getTextureAtlas(assetManager, texlist_hero); v4 heroAvatarTexRect = heroAtlas->texRect[herorects_head]; @@ -1157,9 +1161,8 @@ void worldTraveller_gameUpdateAndRender(GameState *state, f32 dt) f32 angle = math_atan2f(difference.y, difference.x); f32 angleDegrees = RADIANS_TO_DEGREES(angle); - Texture *emptyTex = asset_getTexture(assetManager, texlist_empty); v2 heroCenter = v2_add(hero->pos, v2_scale(hero->hitboxSize, 0.5f)); - RenderTex renderTex = {emptyTex, V4(0, 1, 1, 0)}; + RenderTex renderTex = renderer_createNullRenderTex(assetManager); f32 distance = v2_magnitude(hero->pos, entity->pos); renderer_rect(&state->renderer, cameraBounds, heroCenter, V2(distance, 2.0f), V2(0, 0), angle, renderTex, diff --git a/src/include/Dengine/Renderer.h b/src/include/Dengine/Renderer.h index 6469f3e..3e17e12 100644 --- a/src/include/Dengine/Renderer.h +++ b/src/include/Dengine/Renderer.h @@ -5,11 +5,12 @@ #include "Dengine/Math.h" /* Forward Declaration */ -typedef struct Shader Shader; +typedef struct AssetManager AssetManager; typedef struct Entity Entity; -typedef struct MemoryArena MemoryArena; -typedef struct Texture Texture; typedef struct Font Font; +typedef struct MemoryArena MemoryArena; +typedef struct Shader Shader; +typedef struct Texture Texture; typedef struct Renderer { @@ -27,6 +28,8 @@ typedef struct RenderTex v4 texRect; } RenderTex; +RenderTex renderer_createNullRenderTex(AssetManager *assetManager); + // TODO(doyle): Clean up lines // Renderer::~Renderer() { glDeleteVertexArrays(1, &this->quadVAO); } void renderer_rect(Renderer *const renderer, v4 cameraBounds, v2 pos, v2 size,