Add debug rendering, fix misaligned pos render bug

Rendering using a non-default quad specifies normalised coordinates
relative to the frame buffer size. Hence each render of these frames
should origin from (0,0) any other value is invalid.
This commit is contained in:
2016-07-08 02:45:37 +10:00
parent a04c43681d
commit 46629a489a
10 changed files with 210 additions and 111 deletions
+8
View File
@@ -90,4 +90,12 @@ const i32 asset_loadShaderFiles(AssetManager *assetManager,
const enum ShaderList type);
const i32 asset_loadTTFont(AssetManager *assetManager, const char *filePath);
inline i32 asset_getVFontSpacing(FontMetrics metrics)
{
i32 result =
metrics.ascent - metrics.descent + metrics.lineGap;
return result;
}
#endif
+1
View File
@@ -26,5 +26,6 @@ typedef double f64;
#define CAST(type) (type)
#define ASSERT(expr) if(!(expr)) { *(int *)0 = 0; }
i32 common_strlen(const char *const string);
#endif
+23 -4
View File
@@ -1,9 +1,8 @@
#ifndef DENGINE_RENDERER_H
#define DENGINE_RENDERER_H
#include "Dengine/Math.h"
#include "Dengine/Entity.h"
#include "Dengine/Shader.h"
#include "Dengine/AssetManager.h"
typedef struct Renderer
{
@@ -13,15 +12,35 @@ typedef struct Renderer
i32 numVertexesInVbo;
v2 vertexNdcFactor;
v2 size;
} Renderer;
typedef struct DebugRenderer
{
b32 init;
v2 stringPos;
} DebugRenderer;
typedef struct RenderQuad
{
v4 vertex[4];
} RenderQuad;
void renderer_entity(Renderer *renderer, Entity *entity, f32 rotate,
extern DebugRenderer debugRenderer;
#if 0
void renderer_backgroundTiles(Renderer *const renderer, const v2 tileSize,
World *const world, TexAtlas *const atlasTexture,
Texture *const tex);
#endif
void renderer_string(Renderer *const renderer, Font *const font,
const char *const string, v2 pos, f32 rotate, v3 color);
void renderer_debugString(Renderer *const renderer, Font *const font,
const char *const string);
void renderer_entity(Renderer *renderer, Entity *entity, f32 dt, f32 rotate,
v3 color);
void renderer_object(Renderer *renderer, v2 pos, v2 size, f32 rotate, v3 color,
@@ -45,6 +45,7 @@ typedef struct GameState
AssetManager assetManager;
} GameState;
void worldTraveller_gameInit(GameState *state, v2i windowSize);
void worldTraveller_gameUpdateAndRender(GameState *state, const f32 dt);
#endif