diff --git a/Dengine.vcxproj b/Dengine.vcxproj
index 2458456..d7dee08 100644
--- a/Dengine.vcxproj
+++ b/Dengine.vcxproj
@@ -130,10 +130,8 @@
-
-
-
+
@@ -155,10 +153,8 @@
-
-
-
+
diff --git a/Dengine.vcxproj.filters b/Dengine.vcxproj.filters
index 423e795..97bede1 100644
--- a/Dengine.vcxproj.filters
+++ b/Dengine.vcxproj.filters
@@ -15,12 +15,6 @@
-
- Source Files
-
-
- Source Files
-
Source Files
@@ -42,9 +36,6 @@
Source Files
-
- Source Files
-
Source Files
@@ -57,6 +48,9 @@
Source Files
+
+ Source Files
+
@@ -68,15 +62,9 @@
Header Files
-
- Header Files
-
Header Files
-
- Header Files
-
Header Files
@@ -107,9 +95,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -119,5 +104,8 @@
Header Files
+
+ Header Files
+
\ No newline at end of file
diff --git a/src/AssetManager.c b/src/AssetManager.c
index 29f6090..7a3f738 100644
--- a/src/AssetManager.c
+++ b/src/AssetManager.c
@@ -22,6 +22,83 @@
#include "Dengine/OpenGL.h"
#include "Dengine/Platform.h"
+enum BytesPerPixel
+{
+ bytesPerPixel_Greyscale = 1,
+ bytesPerPixel_GreyscaleAlpha = 2,
+ bytesPerPixel_RGB = 3,
+ bytesPerPixel_RGBA = 4,
+};
+
+INTERNAL GLint getGLFormat(i32 bytesPerPixel, b32 srgb)
+{
+ switch (bytesPerPixel)
+ {
+ case bytesPerPixel_Greyscale:
+ return GL_LUMINANCE;
+ case bytesPerPixel_GreyscaleAlpha:
+ return GL_LUMINANCE_ALPHA;
+ case bytesPerPixel_RGB:
+ return (srgb ? GL_SRGB : GL_RGB);
+ case bytesPerPixel_RGBA:
+ return (srgb ? GL_SRGB_ALPHA : GL_RGBA);
+ default:
+ // TODO(doyle): Invalid
+ // std::cout << "getGLFormat() invalid bytesPerPixel: "
+ // << bytesPerPixel << std::endl;
+ return GL_LUMINANCE;
+ }
+}
+
+Texture textureGen(const GLuint width, const GLuint height,
+ const GLint bytesPerPixel, const u8 *const image)
+{
+ // TODO(doyle): Let us set the parameters gl params as well
+ GL_CHECK_ERROR();
+ Texture tex = {0};
+ tex.width = width;
+ tex.height = height;
+ tex.internalFormat = GL_RGBA;
+ tex.wrapS = GL_REPEAT;
+ tex.wrapT = GL_REPEAT;
+ tex.filterMinification = GL_NEAREST;
+ tex.filterMagnification = GL_NEAREST;
+
+ glGenTextures(1, &tex.id);
+ GL_CHECK_ERROR();
+
+ glBindTexture(GL_TEXTURE_2D, tex.id);
+ GL_CHECK_ERROR();
+
+ /* Load image into texture */
+ // TODO(doyle) Figure out the gl format
+ tex.imageFormat = getGLFormat(bytesPerPixel, FALSE);
+ ASSERT(tex.imageFormat == GL_RGBA);
+
+ GL_CHECK_ERROR();
+
+ glTexImage2D(GL_TEXTURE_2D, 0, tex.internalFormat, tex.width, tex.height, 0,
+ tex.imageFormat, GL_UNSIGNED_BYTE, image);
+ GL_CHECK_ERROR();
+
+ // TODO(doyle): Not needed for sprites? glGenerateMipmap(GL_TEXTURE_2D);
+
+ /* Set parameter of currently bound texture */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, tex.wrapS);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tex.wrapT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ tex.filterMinification);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ tex.filterMagnification);
+ GL_CHECK_ERROR();
+
+ /* Unbind and clean up */
+ glBindTexture(GL_TEXTURE_2D, 0);
+ GL_CHECK_ERROR();
+
+ return tex;
+}
+
void asset_init(AssetManager *assetManager, MemoryArena_ *arena)
{
i32 texAtlasEntries = 8;
@@ -41,8 +118,8 @@ void asset_init(AssetManager *assetManager, MemoryArena_ *arena)
/* Create empty 1x1 4bpp black texture */
u32 bitmap = (0xFF << 24) | (0xFF << 16) | (0xFF << 8) | (0xFF << 0);
- Texture *tex = asset_getFreeTexSlot(assetManager, arena, "nullTex");
- *tex = texture_gen(1, 1, 4, CAST(u8 *)(&bitmap));
+ Texture *tex = asset_texGetFreeSlot(assetManager, arena, "nullTex");
+ *tex = textureGen(1, 1, 4, CAST(u8 *)(&bitmap));
i32 audioEntries = 32;
assetManager->audio.size = audioEntries;
@@ -128,7 +205,7 @@ INTERNAL SubTexture *getFreeAtlasSubTexSlot(TexAtlas *const atlas,
}
}
-const SubTexture asset_getAtlasSubTex(TexAtlas *const atlas, const char *const key)
+const SubTexture asset_atlasGetSubTex(TexAtlas *const atlas, const char *const key)
{
HashTableEntry *entry = getEntryFromHash(&atlas->subTex, key);
@@ -140,11 +217,11 @@ const SubTexture asset_getAtlasSubTex(TexAtlas *const atlas, const char *const k
return result;
}
- DEBUG_LOG("asset_getAtlasSubTex() failed: Sub texture does not exist");
+ DEBUG_LOG("asset_atlasGetSubTex() failed: Sub texture does not exist");
return result;
}
-Texture *asset_getTex(AssetManager *const assetManager, const char *const key)
+Texture *asset_texGet(AssetManager *const assetManager, const char *const key)
{
HashTableEntry *entry = getEntryFromHash(&assetManager->textures, key);
@@ -154,7 +231,7 @@ Texture *asset_getTex(AssetManager *const assetManager, const char *const key)
return result;
}
-TexAtlas *asset_getFreeTexAtlasSlot(AssetManager *const assetManager,
+TexAtlas *asset_atlasGetFreeSlot(AssetManager *const assetManager,
MemoryArena_ *arena, const char *const key,
i32 numSubTex)
{
@@ -191,7 +268,7 @@ TexAtlas *asset_getFreeTexAtlasSlot(AssetManager *const assetManager,
}
}
-TexAtlas *asset_getTexAtlas(AssetManager *const assetManager,
+TexAtlas *asset_atlasGet(AssetManager *const assetManager,
const char *const key)
{
@@ -204,7 +281,7 @@ TexAtlas *asset_getTexAtlas(AssetManager *const assetManager,
}
-Texture *asset_getFreeTexSlot(AssetManager *const assetManager,
+Texture *asset_texGetFreeSlot(AssetManager *const assetManager,
MemoryArena_ *const arena, const char *const key)
{
@@ -223,7 +300,7 @@ Texture *asset_getFreeTexSlot(AssetManager *const assetManager,
}
}
-Texture *asset_loadTextureImage(AssetManager *assetManager, MemoryArena_ *arena,
+Texture *asset_texLoadImage(AssetManager *assetManager, MemoryArena_ *arena,
const char *const path, const char *const key)
{
/* Open the texture image */
@@ -236,7 +313,7 @@ Texture *asset_loadTextureImage(AssetManager *assetManager, MemoryArena_ *arena,
if (imgWidth != imgHeight)
{
printf(
- "asset_loadTextureImage() warning: Sprite sheet is not square: "
+ "asset_texLoadImage() warning: Sprite sheet is not square: "
"%dx%dpx\n", imgWidth, imgHeight);
}
#endif
@@ -247,8 +324,8 @@ Texture *asset_loadTextureImage(AssetManager *assetManager, MemoryArena_ *arena,
return NULL;
}
- Texture *result = asset_getFreeTexSlot(assetManager, arena, key);
- *result = texture_gen(CAST(GLuint)(imgWidth), CAST(GLuint)(imgHeight),
+ Texture *result = asset_texGetFreeSlot(assetManager, arena, key);
+ *result = textureGen(CAST(GLuint)(imgWidth), CAST(GLuint)(imgHeight),
CAST(GLint)(bytesPerPixel), image);
GL_CHECK_ERROR();
@@ -280,7 +357,7 @@ INTERNAL Animation *getFreeAnimationSlot(AssetManager *const assetManager,
}
}
-void asset_addAnimation(AssetManager *const assetManager,
+void asset_animAdd(AssetManager *const assetManager,
MemoryArena_ *const arena, const char *const animName,
TexAtlas *const atlas,
char **const subTextureNames,
@@ -304,7 +381,7 @@ void asset_addAnimation(AssetManager *const assetManager,
}
-Animation *asset_getAnim(AssetManager *const assetManager,
+Animation *asset_animGet(AssetManager *const assetManager,
const char *const key)
{
HashTableEntry *entry = getEntryFromHash(&assetManager->anims, key);
@@ -617,7 +694,7 @@ INTERNAL void parseXmlTreeToGame(AssetManager *assetManager, MemoryArena_ *arena
*/
char *imageName = atlasXmlNode->attribute.value;
i32 numSubTex = 1024;
- atlas = asset_getFreeTexAtlasSlot(assetManager, arena,
+ atlas = asset_atlasGetFreeSlot(assetManager, arena,
imageName, numSubTex);
if (!atlas)
@@ -643,7 +720,7 @@ INTERNAL void parseXmlTreeToGame(AssetManager *assetManager, MemoryArena_ *arena
common_strncat(imagePath, dataDir, dataDirLen);
common_strncat(imagePath, imageName, imageNameLen);
- Texture *tex = asset_loadTextureImage(assetManager, arena,
+ Texture *tex = asset_texLoadImage(assetManager, arena,
imagePath, imageName);
if (!tex)
@@ -839,7 +916,7 @@ INTERNAL void freeXmlData(MemoryArena_ *const arena, XmlToken *tokens,
* Everything else
*********************************
*/
-const i32 asset_loadXmlFile(AssetManager *const assetManager,
+const i32 asset_xmlLoad(AssetManager *const assetManager,
MemoryArena_ *const arena,
const PlatformFileRead *const fileRead)
{
@@ -868,7 +945,7 @@ const i32 asset_loadXmlFile(AssetManager *const assetManager,
return result;
}
-AudioVorbis *const asset_getVorbis(AssetManager *const assetManager,
+AudioVorbis *const asset_vorbisGet(AssetManager *const assetManager,
const char *const key)
{
@@ -880,7 +957,7 @@ AudioVorbis *const asset_getVorbis(AssetManager *const assetManager,
return result;
}
-const i32 asset_loadVorbis(AssetManager *assetManager, MemoryArena_ *arena,
+const i32 asset_vorbisLoad(AssetManager *assetManager, MemoryArena_ *arena,
const char *const path, const char *const key)
{
HashTableEntry *entry = getFreeHashSlot(&assetManager->audio, arena, key);
@@ -974,7 +1051,7 @@ INTERNAL u32 shaderLoadProgram(const GLuint vertexShader,
return result;
}
-u32 asset_getShader(AssetManager *assetManager, const enum ShaderList type)
+u32 asset_shaderGet(AssetManager *assetManager, const enum ShaderList type)
{
if (type < shaderlist_count) return assetManager->shaders[type];
@@ -984,7 +1061,7 @@ u32 asset_getShader(AssetManager *assetManager, const enum ShaderList type)
return -1;
}
-const i32 asset_loadShaderFiles(AssetManager *assetManager, MemoryArena_ *arena,
+const i32 asset_shaderLoad(AssetManager *assetManager, MemoryArena_ *arena,
const char *const vertexPath,
const char *const fragmentPath,
const enum ShaderList type)
@@ -1017,13 +1094,13 @@ INTERNAL FontPack *getMatchingFontPack(AssetManager *assetManager,
return result;
}
-Font *asset_getFontCreateSizeOnDemand(AssetManager *assetManager,
+Font *asset_fontGetOrCreateOnDemand(AssetManager *assetManager,
MemoryArena_ *persistentArena,
MemoryArena_ *transientArena, char *name,
i32 size)
{
- Font *result = asset_getFont(assetManager, name, size);
+ Font *result = asset_fontGet(assetManager, name, size);
if (result == NULL)
{
@@ -1042,10 +1119,10 @@ Font *asset_getFontCreateSizeOnDemand(AssetManager *assetManager,
if (result == NULL)
{
- asset_loadTTFont(assetManager, persistentArena, transientArena,
+ asset_fontLoadTTF(assetManager, persistentArena, transientArena,
pack->filePath, name, size);
- result = asset_getFont(assetManager, name, size);
+ result = asset_fontGet(assetManager, name, size);
}
}
else
@@ -1057,7 +1134,7 @@ Font *asset_getFontCreateSizeOnDemand(AssetManager *assetManager,
return result;
}
-Font *asset_getFont(AssetManager *assetManager, char *name, i32 size)
+Font *asset_fontGet(AssetManager *assetManager, char *name, i32 size)
{
Font *result = NULL;
FontPack *pack = getMatchingFontPack(assetManager, name);
@@ -1084,7 +1161,7 @@ typedef struct GlyphBitmap
i32 codepoint;
} GlyphBitmap;
-const i32 asset_loadTTFont(AssetManager *assetManager,
+const i32 asset_fontLoadTTF(AssetManager *assetManager,
MemoryArena_ *persistentArena,
MemoryArena_ *transientArena, char *filePath,
char *name, i32 targetFontHeight)
@@ -1134,7 +1211,7 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
return 0;
}
- TempMemory tempRegion = memory_begin_temporary_region(transientArena);
+ TempMemory tempRegion = memory_beginTempRegion(transientArena);
PlatformFileRead fontFileRead = {0};
i32 result =
@@ -1230,7 +1307,7 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
if ((largestGlyphDimension.h - CAST(i32)targetFontHeight) >= 50)
{
printf(
- "asset_loadTTFont() warning: The loaded font file has a glyph "
+ "asset_fontLoadTTF() warning: The loaded font file has a glyph "
"considerably larger than our target .. font packing is "
"unoptimal\n");
}
@@ -1254,7 +1331,7 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
if ((glyphsPerRow * glyphsPerCol) <= numGlyphs)
{
printf(
- "asset_loadTTFont() warning: The target font height creates a "
+ "asset_fontLoadTTF() warning: The target font height creates a "
"glyph sheet that exceeds the available space!");
ASSERT(INVALID_CODE_PATH);
@@ -1280,7 +1357,7 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
char charToEncode = CAST(char)codepointRange.x;
i32 numSubTex = numGlyphs;
- TexAtlas *fontAtlas = asset_getFreeTexAtlasSlot(
+ TexAtlas *fontAtlas = asset_atlasGetFreeSlot(
assetManager, persistentArena, "font", numSubTex);
/*
@@ -1363,8 +1440,8 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
* Generate and store font bitmap to assets
*******************************************
*/
- Texture *tex = asset_getFreeTexSlot(assetManager, persistentArena, "font");
- *tex = texture_gen(MAX_TEXTURE_SIZE, MAX_TEXTURE_SIZE, 4,
+ Texture *tex = asset_texGetFreeSlot(assetManager, persistentArena, "font");
+ *tex = textureGen(MAX_TEXTURE_SIZE, MAX_TEXTURE_SIZE, 4,
CAST(u8 *) fontBitmap);
#ifdef WT_RENDER_FONT_FILE
@@ -1390,11 +1467,11 @@ const i32 asset_loadTTFont(AssetManager *assetManager,
sizeof(u32);
}
- memory_end_temporary_region(tempRegion);
+ memory_endTempRegion(tempRegion);
return 0;
}
-const v2 asset_stringDimInPixels(const Font *const font,
+const v2 asset_fontStringDimInPixels(const Font *const font,
const char *const string)
{
v2 stringDim = V2(0, 0);
diff --git a/src/Asteroid.c b/src/Asteroid.c
index c6b42c8..d5e2e3f 100644
--- a/src/Asteroid.c
+++ b/src/Asteroid.c
@@ -8,55 +8,55 @@ INTERNAL void loadGameAssets(GameState *state)
{ // Init font assets
i32 result =
- asset_loadTTFont(assetManager, arena, &state->transientArena,
+ asset_fontLoadTTF(assetManager, arena, &state->transientArena,
"C:/Windows/Fonts/Arialbd.ttf", "Arial", 15);
}
{ // Init shaders assets
- asset_loadShaderFiles(
+ asset_shaderLoad(
assetManager, arena, "data/shaders/default_tex.vert.glsl",
"data/shaders/default_tex.frag.glsl", shaderlist_default);
- asset_loadShaderFiles(
+ asset_shaderLoad(
assetManager, arena, "data/shaders/default_no_tex.vert.glsl",
"data/shaders/default_no_tex.frag.glsl", shaderlist_default_no_tex);
}
{ // Init audio assets
- i32 result = asset_loadVorbis(assetManager, arena,
+ i32 result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/bang_large.ogg",
"bang_large");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/bang_medium.ogg",
"bang_medium");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/bang_small.ogg",
"bang_small");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/beat1.ogg", "beat1");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/beat2.ogg", "beat2");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/extra_ship.ogg",
"extra_ship");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/fire.ogg", "fire");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/saucer_big.ogg",
"saucer_big");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/saucer_small.ogg",
"saucer_small");
ASSERT(!result);
- result = asset_loadVorbis(assetManager, arena,
+ result = asset_vorbisLoad(assetManager, arena,
"data/audio/Asteroids/thrust.ogg", "thrust");
ASSERT(!result);
}
@@ -348,19 +348,19 @@ INTERNAL void addAsteroidWithSpec(World *world, enum AsteroidSize asteroidSize,
// generated
// to float back into game space
v2 newP = V2i(randX, randY);
- if (math_rect_contains_p(topLeftQuadrant, newP))
+ if (math_rectContainsP(topLeftQuadrant, newP))
{
newP.y += midpoint.y;
}
- else if (math_rect_contains_p(botLeftQuadrant, newP))
+ else if (math_rectContainsP(botLeftQuadrant, newP))
{
newP.x -= midpoint.x;
}
- else if (math_rect_contains_p(topRightQuadrant, newP))
+ else if (math_rectContainsP(topRightQuadrant, newP))
{
newP.y -= midpoint.y;
}
- else if (math_rect_contains_p(botRightQuadrant, newP))
+ else if (math_rectContainsP(botRightQuadrant, newP))
{
newP.x += midpoint.x;
}
@@ -505,7 +505,7 @@ INTERNAL void gameUpdate(GameState *state, Memory *memory, f32 dt)
{ // Init ship entity
Entity *ship = &world->entityList[world->entityIndex++];
ship->id = world->entityIdCounter++;
- ship->pos = math_rect_get_centre(world->camera);
+ ship->pos = math_rectGetCentre(world->camera);
ship->size = V2(25.0f, 50.0f);
ship->hitbox = ship->size;
ship->offset = v2_scale(ship->size, -0.5f);
@@ -596,10 +596,10 @@ INTERNAL void gameUpdate(GameState *state, Memory *memory, f32 dt)
if (audioRenderer)
{
AudioVorbis *fire =
- asset_getVorbis(&state->assetManager, "fire");
+ asset_vorbisGet(&state->assetManager, "fire");
// TODO(doyle): Atm transient arena is not used, this is
// just to fill out the arguments
- audio_playVorbis(&state->transientArena,
+ audio_vorbisPlay(&state->transientArena,
&state->audioManager, audioRenderer, fire,
1);
}
@@ -711,7 +711,7 @@ INTERNAL void gameUpdate(GameState *state, Memory *memory, f32 dt)
}
else if (entity->type == entitytype_bullet)
{
- if (!math_rect_contains_p(world->camera, entity->pos))
+ if (!math_rectContainsP(world->camera, entity->pos))
{
deleteEntity(world, i--);
continue;
@@ -882,8 +882,8 @@ INTERNAL void gameUpdate(GameState *state, Memory *memory, f32 dt)
}
AudioVorbis *explode =
- asset_getVorbis(&state->assetManager, sound);
- audio_playVorbis(&state->transientArena,
+ asset_vorbisGet(&state->assetManager, sound);
+ audio_vorbisPlay(&state->transientArena,
&state->audioManager, audioRenderer,
explode, 1);
}
@@ -916,31 +916,31 @@ INTERNAL void startMenuUpdate(GameState *state, Memory *memory, f32 dt)
World *world = &state->world;
InputBuffer *inputBuffer = &state->input;
- Font *arial15 = asset_getFontCreateSizeOnDemand(
+ Font *arial15 = asset_fontGetOrCreateOnDemand(
assetManager, &state->persistentArena, transientArena, "Arial", 15);
- Font *arial25 = asset_getFontCreateSizeOnDemand(
+ Font *arial25 = asset_fontGetOrCreateOnDemand(
assetManager, &state->persistentArena, transientArena, "Arial", 40);
f32 margin = 20.0f;
f32 padding = 20.0f;
v2 titleP = V2(margin, renderer->size.h - 100 + margin);
- renderer_staticString(renderer, transientArena, arial25, "Asteroids",
+ renderer_stringFixed(renderer, transientArena, arial25, "Asteroids",
titleP, V2(0, 0), 0, V4(1, 0, 0, 1), 0);
- userInterface_beginState(uiState);
+ ui_beginState(uiState);
Rect buttonRect = {0};
buttonRect.min = V2(margin, margin);
buttonRect.max = V2(margin + 100, margin + 40);
- buttonRect = math_rect_shift(buttonRect, V2(0, titleP.y - 100));
- if (userInterface_button(uiState, transientArena, assetManager, renderer,
+ buttonRect = math_rectShift(buttonRect, V2(0, titleP.y - 100));
+ if (ui_button(uiState, transientArena, assetManager, renderer,
arial15, *inputBuffer, 1, buttonRect,
"Start Game"))
{
state->appState = appstate_game;
}
- userInterface_endState(uiState, inputBuffer);
+ ui_endState(uiState, inputBuffer);
}
void asteroid_gameUpdateAndRender(GameState *state, Memory *memory,
@@ -963,14 +963,14 @@ void asteroid_gameUpdateAndRender(GameState *state, Memory *memory,
renderer_init(&state->renderer, &state->assetManager,
&state->persistentArena, windowSize);
- Font *arial15 = asset_getFont(&state->assetManager, "Arial", 15);
+ Font *arial15 = asset_fontGet(&state->assetManager, "Arial", 15);
debug_init(&state->persistentArena, windowSize, *arial15);
state->appState = appstate_start_menu;
state->init = TRUE;
}
- platform_processInputBuffer(&state->input, dt);
+ platform_inputBufferProcess(&state->input, dt);
switch (state->appState)
{
diff --git a/src/Audio.c b/src/Audio.c
index 76f2f98..5dea624 100644
--- a/src/Audio.c
+++ b/src/Audio.c
@@ -129,7 +129,7 @@ INTERNAL i32 rendererAcquire(MemoryArena_ *arena, AudioManager *audioManager,
"rendererAcquire(): Renderer has not been released before "
"acquiring, force release by stopping stream");
#endif
- audio_stopVorbis(arena, audioManager, audioRenderer);
+ audio_vorbisStop(arena, audioManager, audioRenderer);
}
// TODO(doyle): Super bad linear O(n) search for every audio-enabled entity
@@ -239,14 +239,14 @@ INTERNAL i32 initRendererForPlayback(MemoryArena_ *arena,
ASSERT(audioManager && audioRenderer && vorbis);
if (numPlays != AUDIO_REPEAT_INFINITE && numPlays <= 0)
{
- DEBUG_LOG("audio_streamPlayVorbis() warning: Number of plays is less than 0");
+ DEBUG_LOG("audio_vorbisStream() warning: Number of plays is less than 0");
}
#endif
i32 result = rendererAcquire(arena, audioManager, audioRenderer);
if (result)
{
- DEBUG_LOG("audio_streamPlayVorbis() failed: Could not acquire renderer");
+ DEBUG_LOG("audio_vorbisStream() failed: Could not acquire renderer");
return result;
}
@@ -258,7 +258,7 @@ INTERNAL i32 initRendererForPlayback(MemoryArena_ *arena,
{
#ifdef DENGINE_DEBUG
DEBUG_LOG(
- "audio_streamPlayVorbis() warning: Unexpected channel format");
+ "audio_vorbisStream() warning: Unexpected channel format");
#endif
}
@@ -268,7 +268,7 @@ INTERNAL i32 initRendererForPlayback(MemoryArena_ *arena,
}
#include
-const i32 audio_playVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisPlay(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer, AudioVorbis *vorbis,
i32 numPlays)
{
@@ -296,7 +296,7 @@ const i32 audio_playVorbis(MemoryArena_ *arena, AudioManager *audioManager,
return result;
}
-const i32 audio_streamPlayVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisStream(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer,
AudioVorbis *vorbis, i32 numPlays)
{
@@ -326,7 +326,7 @@ const i32 audio_streamPlayVorbis(MemoryArena_ *arena, AudioManager *audioManager
return result;
}
-const i32 audio_stopVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisStop(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer)
{
i32 result = 0;
@@ -354,7 +354,7 @@ const i32 audio_stopVorbis(MemoryArena_ *arena, AudioManager *audioManager,
return result;
}
-const i32 audio_pauseVorbis(AudioManager *audioManager,
+const i32 audio_vorbisPause(AudioManager *audioManager,
AudioRenderer *audioRenderer)
{
i32 result = 0;
@@ -373,7 +373,7 @@ const i32 audio_pauseVorbis(AudioManager *audioManager,
return result;
}
-const i32 audio_resumeVorbis(AudioManager *audioManager,
+const i32 audio_vorbisResume(AudioManager *audioManager,
AudioRenderer *audioRenderer)
{
i32 result = 0;
@@ -387,7 +387,7 @@ const i32 audio_resumeVorbis(AudioManager *audioManager,
else
{
#ifdef DENGINE_DEBUG
- DEBUG_LOG("audio_resumeVorbis(): Tried to resume invalid source")
+ DEBUG_LOG("audio_vorbisResume(): Tried to resume invalid source")
#endif
result = -1;
}
diff --git a/src/Debug.c b/src/Debug.c
index ecae6cd..5886d8e 100644
--- a/src/Debug.c
+++ b/src/Debug.c
@@ -223,7 +223,7 @@ INTERNAL void updateAndRenderDebugStack(Renderer *renderer, MemoryArena_ *arena,
{
f32 rotate = 0;
v4 color = V4(1, 1, 1, 1);
- renderer_staticString(
+ renderer_stringFixed(
renderer, arena, &GLOBAL_debug.font, GLOBAL_debug.debugStrings[i],
GLOBAL_debug.currStringP, V2(0, 0), rotate, color, 0);
GLOBAL_debug.currStringP.y -= (0.9f * GLOBAL_debug.stringLineGap);
@@ -255,7 +255,7 @@ INTERNAL void renderConsole(Renderer *renderer, MemoryArena_ *arena)
{
f32 rotate = 0;
v4 color = V4(1.0f, 1.0f, 1.0f, 1.0f);
- renderer_staticString(renderer, arena, &GLOBAL_debug.font,
+ renderer_stringFixed(renderer, arena, &GLOBAL_debug.font,
GLOBAL_debug.console[i], consoleStrP,
V2(0, 0), rotate, color, 0);
consoleStrP.y -= (0.9f * GLOBAL_debug.stringLineGap);
diff --git a/src/Entity.c b/src/Entity.c
index 982ff99..4701606 100644
--- a/src/Entity.c
+++ b/src/Entity.c
@@ -4,17 +4,17 @@
#include "Dengine/Math.h"
#include "Dengine/MemoryArena.h"
-SubTexture entity_getActiveSubTexture(Entity *const entity)
+SubTexture entity_subTexGetCurr(Entity *const entity)
{
EntityAnim *entityAnim = &entity->animList[entity->animListIndex];
Animation *anim = entityAnim->anim;
char *frameName = anim->frameList[entityAnim->currFrame];
- SubTexture result = asset_getAtlasSubTex(anim->atlas, frameName);
+ SubTexture result = asset_atlasGetSubTex(anim->atlas, frameName);
return result;
}
-void entity_setActiveAnim(Entity *const entity, const char *const animName)
+void entity_animSet(Entity *const entity, const char *const animName)
{
/* Reset current anim data */
EntityAnim *currEntityAnim = &entity->animList[entity->animListIndex];
@@ -44,7 +44,7 @@ void entity_setActiveAnim(Entity *const entity, const char *const animName)
DEBUG_LOG("Entity does not have access to desired anim");
}
-void entity_updateAnim(Entity *const entity, const f32 dt)
+void entity_animUpdate(Entity *const entity, const f32 dt)
{
if (!entity->tex)
return;
@@ -66,11 +66,11 @@ void entity_updateAnim(Entity *const entity, const f32 dt)
}
char *frameName = anim->frameList[currEntityAnim->currFrame];
- SubTexture texRect = asset_getAtlasSubTex(anim->atlas, frameName);
+ SubTexture texRect = asset_atlasGetSubTex(anim->atlas, frameName);
entity->size = v2_scale(texRect.rect.max, entity->scale);
}
-void entity_addAnim(AssetManager *const assetManager, Entity *const entity,
+void entity_animAdd(AssetManager *const assetManager, Entity *const entity,
const char *const animName)
{
i32 freeAnimIndex = 0;
@@ -79,7 +79,7 @@ void entity_addAnim(AssetManager *const assetManager, Entity *const entity,
EntityAnim *entityAnim = &entity->animList[i];
if (!entityAnim->anim)
{
- entityAnim->anim = asset_getAnim(assetManager, animName);
+ entityAnim->anim = asset_animGet(assetManager, animName);
entityAnim->currFrame = 0;
entityAnim->currDuration = entityAnim->anim->frameDuration;
return;
diff --git a/src/MemoryArena.c b/src/MemoryArena.c
index 74d7fe1..4cd7954 100644
--- a/src/MemoryArena.c
+++ b/src/MemoryArena.c
@@ -8,7 +8,7 @@ void memory_arenaInit(MemoryArena_ *arena, void *base, size_t size)
arena->tempMemoryCount = 0;
}
-TempMemory memory_begin_temporary_region(MemoryArena_ *arena)
+TempMemory memory_beginTempRegion(MemoryArena_ *arena)
{
TempMemory result = {0};
result.arena = arena;
@@ -19,7 +19,7 @@ TempMemory memory_begin_temporary_region(MemoryArena_ *arena)
return result;
}
-void memory_end_temporary_region(TempMemory tempMemory)
+void memory_endTempRegion(TempMemory tempMemory)
{
MemoryArena_ *arena = tempMemory.arena;
ASSERT(arena->used > tempMemory.used)
diff --git a/src/Platform.c b/src/Platform.c
index 6d05f8a..67a2f30 100644
--- a/src/Platform.c
+++ b/src/Platform.c
@@ -96,7 +96,7 @@ i32 platform_readFileToBuffer(MemoryArena_ *arena, const char *const filePath,
return 0;
}
-void platform_processInputBuffer(InputBuffer *inputBuffer, f32 dt)
+void platform_inputBufferProcess(InputBuffer *inputBuffer, f32 dt)
{
KeyState *keyBuffer = inputBuffer->keys;
for (enum KeyCode code = 0; code < keycode_count; code++)
diff --git a/src/Renderer.c b/src/Renderer.c
index 2ae70e8..4af61b2 100644
--- a/src/Renderer.c
+++ b/src/Renderer.c
@@ -5,8 +5,32 @@
#include "Dengine/Entity.h"
#include "Dengine/MemoryArena.h"
#include "Dengine/OpenGL.h"
-#include "Dengine/Shader.h"
-#include "Dengine/Texture.h"
+
+void shaderUniformSet1i(u32 shaderId, const GLchar *name,
+ const GLuint data)
+{
+ GLint uniformLoc = glGetUniformLocation(shaderId, name);
+ glUniform1i(uniformLoc, data);
+}
+
+void shaderUniformSetMat4fv(u32 shaderId, const GLchar *name,
+ mat4 data)
+{
+ GLint uniformLoc = glGetUniformLocation(shaderId, name);
+ GL_CHECK_ERROR();
+ glUniformMatrix4fv(uniformLoc, 1, GL_FALSE, data.e[0]);
+ GL_CHECK_ERROR();
+}
+
+void shaderUniformSetVec4f(u32 shaderId, const GLchar *name,
+ v4 data)
+{
+ GLint uniformLoc = glGetUniformLocation(shaderId, name);
+ glUniform4f(uniformLoc, data.e[0], data.e[1], data.e[2], data.e[3]);
+}
+
+
+void shaderUse(u32 shaderId) { glUseProgram(shaderId); }
void renderer_init(Renderer *renderer, AssetManager *assetManager,
MemoryArena_ *persistentArena, v2 windowSize)
@@ -21,9 +45,9 @@ void renderer_init(Renderer *renderer, AssetManager *assetManager,
mat4_ortho(0.0f, renderer->size.w, 0.0f, renderer->size.h, 0.0f, 1.0f);
for (i32 i = 0; i < shaderlist_count; i++)
{
- renderer->shaderList[i] = asset_getShader(assetManager, i);
- shader_use(renderer->shaderList[i]);
- shader_uniformSetMat4fv(renderer->shaderList[i], "projection",
+ renderer->shaderList[i] = asset_shaderGet(assetManager, i);
+ shaderUse(renderer->shaderList[i]);
+ shaderUniformSetMat4fv(renderer->shaderList[i], "projection",
projection);
GL_CHECK_ERROR();
}
@@ -431,18 +455,18 @@ INTERNAL void renderGLBufferedData(Renderer *renderer, RenderGroup *group)
{
renderer->activeShaderId =
renderer->shaderList[shaderlist_default_no_tex];
- shader_use(renderer->activeShaderId);
+ shaderUse(renderer->activeShaderId);
}
else
{
renderer->activeShaderId = renderer->shaderList[shaderlist_default];
- shader_use(renderer->activeShaderId);
+ shaderUse(renderer->activeShaderId);
Texture *tex = group->tex;
if (tex)
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, tex->id);
- shader_uniformSet1i(renderer->activeShaderId, "tex", 0);
+ shaderUniformSet1i(renderer->activeShaderId, "tex", 0);
GL_CHECK_ERROR();
}
}
@@ -452,7 +476,7 @@ INTERNAL void renderGLBufferedData(Renderer *renderer, RenderGroup *group)
#endif
/* Set color modulation value */
- shader_uniformSetVec4f(renderer->activeShaderId, "spriteColor",
+ shaderUniformSetVec4f(renderer->activeShaderId, "spriteColor",
group->color);
glBindVertexArray(renderer->vao[group->mode]);
@@ -469,7 +493,7 @@ INTERNAL void renderGLBufferedData(Renderer *renderer, RenderGroup *group)
RenderTex renderer_createNullRenderTex(AssetManager *const assetManager)
{
- Texture *emptyTex = asset_getTex(assetManager, "nullTex");
+ Texture *emptyTex = asset_texGet(assetManager, "nullTex");
RenderTex result = {emptyTex, V4(0, 1, 1, 0)};
return result;
}
@@ -606,8 +630,8 @@ void renderer_string(Renderer *const renderer, MemoryArena_ *arena, Rect camera,
v2_add(pos, V2((CAST(f32) font->maxSize.w * CAST(f32) strLen),
CAST(f32) font->maxSize.h));
v2 leftAlignedP = pos;
- if (math_rect_contains_p(camera, leftAlignedP) ||
- math_rect_contains_p(camera, rightAlignedP))
+ if (math_rectContainsP(camera, leftAlignedP) ||
+ math_rectContainsP(camera, rightAlignedP))
{
i32 vertexIndex = 0;
i32 numVertexPerQuad = 4;
@@ -630,7 +654,7 @@ void renderer_string(Renderer *const renderer, MemoryArena_ *arena, Rect camera,
/* Get texture out */
SubTexture subTexture =
- asset_getAtlasSubTex(font->atlas, &CAST(char)codepoint);
+ asset_atlasGetSubTex(font->atlas, &CAST(char)codepoint);
v4 charTexRect = {0};
charTexRect.vec2[0] = subTexture.rect.min;
@@ -667,7 +691,7 @@ void renderer_entity(Renderer *renderer, MemoryArena_ *transientArena,
{
Animation *anim = entityAnim->anim;
char *frameName = anim->frameList[entityAnim->currFrame];
- SubTexture subTex = asset_getAtlasSubTex(anim->atlas, frameName);
+ SubTexture subTex = asset_atlasGetSubTex(anim->atlas, frameName);
texRect.vec2[0] = subTex.rect.min;
texRect.vec2[1] = v2_add(subTex.rect.min, subTex.rect.max);
diff --git a/src/Shader.c b/src/Shader.c
deleted file mode 100644
index f9e2d08..0000000
--- a/src/Shader.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "Dengine/Shader.h"
-
-void shader_uniformSet1i(u32 shaderId, const GLchar *name,
- const GLuint data)
-{
- GLint uniformLoc = glGetUniformLocation(shaderId, name);
- glUniform1i(uniformLoc, data);
-}
-
-void shader_uniformSetMat4fv(u32 shaderId, const GLchar *name,
- mat4 data)
-{
- GLint uniformLoc = glGetUniformLocation(shaderId, name);
- GL_CHECK_ERROR();
- glUniformMatrix4fv(uniformLoc, 1, GL_FALSE, data.e[0]);
- GL_CHECK_ERROR();
-}
-
-void shader_uniformSetVec4f(u32 shaderId, const GLchar *name,
- v4 data)
-{
- GLint uniformLoc = glGetUniformLocation(shaderId, name);
- glUniform4f(uniformLoc, data.e[0], data.e[1], data.e[2], data.e[3]);
-}
-
-
-void shader_use(u32 shaderId) { glUseProgram(shaderId); }
diff --git a/src/Texture.c b/src/Texture.c
deleted file mode 100644
index 0bc5992..0000000
--- a/src/Texture.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "Dengine/Texture.h"
-
-enum BytesPerPixel
-{
- bytesPerPixel_Greyscale = 1,
- bytesPerPixel_GreyscaleAlpha = 2,
- bytesPerPixel_RGB = 3,
- bytesPerPixel_RGBA = 4,
-};
-
-INTERNAL GLint getGLFormat(i32 bytesPerPixel, b32 srgb)
-{
- switch (bytesPerPixel)
- {
- case bytesPerPixel_Greyscale:
- return GL_LUMINANCE;
- case bytesPerPixel_GreyscaleAlpha:
- return GL_LUMINANCE_ALPHA;
- case bytesPerPixel_RGB:
- return (srgb ? GL_SRGB : GL_RGB);
- case bytesPerPixel_RGBA:
- return (srgb ? GL_SRGB_ALPHA : GL_RGBA);
- default:
- // TODO(doyle): Invalid
- // std::cout << "getGLFormat() invalid bytesPerPixel: "
- // << bytesPerPixel << std::endl;
- return GL_LUMINANCE;
- }
-}
-
-Texture texture_gen(const GLuint width, const GLuint height,
- const GLint bytesPerPixel, const u8 *const image)
-{
- // TODO(doyle): Let us set the parameters gl params as well
- GL_CHECK_ERROR();
- Texture tex = {0};
- tex.width = width;
- tex.height = height;
- tex.internalFormat = GL_RGBA;
- tex.wrapS = GL_REPEAT;
- tex.wrapT = GL_REPEAT;
- tex.filterMinification = GL_NEAREST;
- tex.filterMagnification = GL_NEAREST;
-
- glGenTextures(1, &tex.id);
- GL_CHECK_ERROR();
-
- glBindTexture(GL_TEXTURE_2D, tex.id);
- GL_CHECK_ERROR();
-
- /* Load image into texture */
- // TODO(doyle) Figure out the gl format
- tex.imageFormat = getGLFormat(bytesPerPixel, FALSE);
- ASSERT(tex.imageFormat == GL_RGBA);
-
- GL_CHECK_ERROR();
-
- glTexImage2D(GL_TEXTURE_2D, 0, tex.internalFormat, tex.width, tex.height, 0,
- tex.imageFormat, GL_UNSIGNED_BYTE, image);
- GL_CHECK_ERROR();
-
- // TODO(doyle): Not needed for sprites? glGenerateMipmap(GL_TEXTURE_2D);
-
- /* Set parameter of currently bound texture */
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, tex.wrapS);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tex.wrapT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- tex.filterMinification);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
- tex.filterMagnification);
- GL_CHECK_ERROR();
-
- /* Unbind and clean up */
- glBindTexture(GL_TEXTURE_2D, 0);
- GL_CHECK_ERROR();
-
- return tex;
-}
diff --git a/src/UserInterface.c b/src/Ui.c
similarity index 59%
rename from src/UserInterface.c
rename to src/Ui.c
index 624a5d9..9dd3649 100644
--- a/src/UserInterface.c
+++ b/src/Ui.c
@@ -1,16 +1,13 @@
-#include "Dengine/UserInterface.h"
+#include "Dengine/Ui.h"
#include "Dengine/AssetManager.h"
#include "Dengine/Assets.h"
#include "Dengine/Asteroid.h"
#include "Dengine/Debug.h"
#include "Dengine/Renderer.h"
-void userInterface_beginState(UiState *state)
-{
- state->hotItem = 0;
-}
+void ui_beginState(UiState *state) { state->hotItem = 0; }
-void userInterface_endState(UiState *state, InputBuffer *input)
+void ui_endState(UiState *state, InputBuffer *input)
{
if (!common_isSet(input->keys[keycode_mouseLeft].flags,
keystateflag_ended_down))
@@ -28,13 +25,12 @@ void userInterface_endState(UiState *state, InputBuffer *input)
state->keyChar = keycode_null;
}
-i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
- AssetManager *const assetManager,
- Renderer *const renderer, Font *const font,
- const InputBuffer input, const i32 id, const Rect rect,
- const char *const label)
+i32 ui_button(UiState *const uiState, MemoryArena_ *const arena,
+ AssetManager *const assetManager, Renderer *const renderer,
+ Font *const font, const InputBuffer input, const i32 id,
+ const Rect rect, const char *const label)
{
- if (math_rect_contains_p(rect, input.mouseP))
+ if (math_rectContainsP(rect, input.mouseP))
{
uiState->hotItem = id;
if (uiState->activeItem == 0)
@@ -45,7 +41,6 @@ i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
uiState->activeItem = id;
}
}
-
}
#if 0
@@ -61,7 +56,7 @@ i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
if (uiState->activeItem == id)
{
buttonOffset = V2(1, 1);
- buttonColor = V4(0.8f, 0.8f, 0.8f, 1);
+ buttonColor = V4(0.8f, 0.8f, 0.8f, 1);
}
else
{
@@ -71,27 +66,25 @@ i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
}
/* If no widget has keyboard focus, take it */
- if (uiState->kbdItem == 0)
- uiState->kbdItem = id;
+ if (uiState->kbdItem == 0) uiState->kbdItem = id;
- v2 rectSize = math_rect_get_size(rect);
+ v2 rectSize = math_rectGetSize(rect);
/* If we have keyboard focus, show it */
if (uiState->kbdItem == id)
{
// Draw outline
- renderer_staticRect(renderer,
- v2_add(V2(-2, -2), v2_add(buttonOffset, rect.min)),
- v2_add(V2(4, 4), rectSize), V2(0, 0), 0, NULL,
- buttonColor, renderflag_no_texture);
+ renderer_rectFixed(renderer,
+ v2_add(V2(-2, -2), v2_add(buttonOffset, rect.min)),
+ v2_add(V2(4, 4), rectSize), V2(0, 0), 0, NULL,
+ buttonColor, renderflag_no_texture);
}
- renderer_staticRect(renderer, v2_add(buttonOffset, rect.min),
- rectSize, V2(0, 0), 0, NULL,
- buttonColor, renderflag_no_texture);
+ renderer_rectFixed(renderer, v2_add(buttonOffset, rect.min), rectSize,
+ V2(0, 0), 0, NULL, buttonColor, renderflag_no_texture);
if (label)
{
- v2 labelDim = asset_stringDimInPixels(font, label);
+ v2 labelDim = asset_fontStringDimInPixels(font, label);
v2 labelPos = rect.min;
// Initially position the label to half the width of the button
@@ -104,14 +97,14 @@ i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
if (labelDim.h < rectSize.h)
{
labelPos.y += (rectSize.h * 0.5f);
- labelPos.y -= (CAST(f32)labelDim.h * 0.5f);
+ labelPos.y -= (CAST(f32) labelDim.h * 0.5f);
}
// TODO(doyle): We're using odd colors to overcome z-sorting by forcing
// button text into another render group
labelPos = v2_add(labelPos, buttonOffset);
- renderer_staticString(renderer, arena, font, label, labelPos, V2(0, 0),
- 0, V4(0.9f, 0.9f, 0.9f, 0.9f), 0);
+ renderer_stringFixed(renderer, arena, font, label, labelPos, V2(0, 0),
+ 0, V4(0.9f, 0.9f, 0.9f, 0.9f), 0);
}
// After renderering before click check, see if we need to process keys
@@ -149,17 +142,16 @@ i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
return 0;
}
-i32 userInterface_scrollbar(UiState *const uiState,
- AssetManager *const assetManager,
- Renderer *const renderer, const InputBuffer input,
- const i32 id, const Rect scrollBarRect,
- i32 *const value, const i32 maxValue)
+i32 ui_scrollbar(UiState *const uiState, AssetManager *const assetManager,
+ Renderer *const renderer, const InputBuffer input,
+ const i32 id, const Rect scrollBarRect, i32 *const value,
+ const i32 maxValue)
{
#ifdef DENGINE_DEBUG
ASSERT(*value <= maxValue);
#endif
- if (math_rect_contains_p(scrollBarRect, input.mouseP))
+ if (math_rectContainsP(scrollBarRect, input.mouseP))
{
uiState->hotItem = id;
if (uiState->activeItem == 0)
@@ -175,39 +167,38 @@ i32 userInterface_scrollbar(UiState *const uiState,
RenderTex renderTex = renderer_createNullRenderTex(assetManager);
/* If no widget has keyboard focus, take it */
- if (uiState->kbdItem == 0)
- uiState->kbdItem = id;
+ if (uiState->kbdItem == 0) uiState->kbdItem = id;
- v2 rectSize = math_rect_get_size(scrollBarRect);
+ v2 rectSize = math_rectGetSize(scrollBarRect);
/* If we have keyboard focus, show it */
if (uiState->kbdItem == id)
{
// Draw outline
- renderer_staticRect(renderer, v2_add(V2(-2, -2), scrollBarRect.min),
- v2_add(V2(4, 4), rectSize), V2(0, 0), 0,
- &renderTex, V4(1, 0, 0, 1), 0);
+ renderer_rectFixed(renderer, v2_add(V2(-2, -2), scrollBarRect.min),
+ v2_add(V2(4, 4), rectSize), V2(0, 0), 0, &renderTex,
+ V4(1, 0, 0, 1), 0);
}
// Render scroll bar background
- renderer_staticRect(renderer, scrollBarRect.min, rectSize,
- V2(0, 0), 0, &renderTex, V4(0.75f, 0.5f, 0.5f, 1), 0);
+ renderer_rectFixed(renderer, scrollBarRect.min, rectSize, V2(0, 0), 0,
+ &renderTex, V4(0.75f, 0.5f, 0.5f, 1), 0);
// Render scroll bar slider
- v2 sliderSize = V2(16, 16);
- v4 sliderColor = V4(0, 0, 0, 1);
+ v2 sliderSize = V2(16, 16);
+ v4 sliderColor = V4(0, 0, 0, 1);
- f32 sliderPercentageOffset = (CAST(f32) *value / CAST(f32) maxValue);
+ f32 sliderPercentageOffset = (CAST(f32) * value / CAST(f32) maxValue);
f32 sliderYOffsetToBar =
(rectSize.h - sliderSize.h) * sliderPercentageOffset;
- v2 sliderPos = v2_add(scrollBarRect.min, V2(0, sliderYOffsetToBar));
+ v2 sliderPos = v2_add(scrollBarRect.min, V2(0, sliderYOffsetToBar));
if (uiState->hotItem == id || uiState->activeItem == id)
sliderColor = V4(1.0f, 0, 0, 1);
else
sliderColor = V4(0.0f, 1.0f, 0, 1);
- renderer_staticRect(renderer, sliderPos, sliderSize, V2(0, 0), 0, &renderTex,
- sliderColor, 0);
+ renderer_rectFixed(renderer, sliderPos, sliderSize, V2(0, 0), 0, &renderTex,
+ sliderColor, 0);
if (uiState->kbdItem == id)
{
@@ -222,7 +213,8 @@ i32 userInterface_scrollbar(UiState *const uiState,
uiState->keyEntered = keycode_null;
break;
case keycode_up:
- // TODO(doyle): Fix input for this to work, i.e. proper rate limited input poll
+ // TODO(doyle): Fix input for this to work, i.e. proper rate limited
+ // input poll
if (*value < maxValue)
{
(*value)++;
@@ -251,10 +243,9 @@ i32 userInterface_scrollbar(UiState *const uiState,
else if (mouseYRelToRect > rectSize.h)
mouseYRelToRect = rectSize.h;
- f32 newSliderPercentOffset =
- (CAST(f32) mouseYRelToRect / rectSize.h);
+ f32 newSliderPercentOffset = (CAST(f32) mouseYRelToRect / rectSize.h);
- i32 newValue = CAST(i32)(newSliderPercentOffset * CAST(f32)maxValue);
+ i32 newValue = CAST(i32)(newSliderPercentOffset * CAST(f32) maxValue);
if (newValue != *value)
{
*value = newValue;
@@ -265,16 +256,15 @@ i32 userInterface_scrollbar(UiState *const uiState,
return 0;
}
-i32 userInterface_textField(UiState *const uiState, MemoryArena_ *const arena,
- AssetManager *const assetManager,
- Renderer *const renderer, Font *const font,
- InputBuffer input, const i32 id, const Rect rect,
- char *const string)
+i32 ui_textfield(UiState *const uiState, MemoryArena_ *const arena,
+ AssetManager *const assetManager, Renderer *const renderer,
+ Font *const font, InputBuffer input, const i32 id,
+ const Rect rect, char *const string)
{
- i32 strLen = common_strlen(string);
+ i32 strLen = common_strlen(string);
b32 changed = FALSE;
- if (math_rect_contains_p(rect, input.mouseP))
+ if (math_rectContainsP(rect, input.mouseP))
{
uiState->hotItem = id;
if (uiState->activeItem == 0)
@@ -288,37 +278,36 @@ i32 userInterface_textField(UiState *const uiState, MemoryArena_ *const arena,
}
/* If no widget has keyboard focus, take it */
- if (uiState->kbdItem == 0)
- uiState->kbdItem = id;
+ if (uiState->kbdItem == 0) uiState->kbdItem = id;
- v2 rectSize = math_rect_get_size(rect);
+ v2 rectSize = math_rectGetSize(rect);
/* If we have keyboard focus, show it */
if (uiState->kbdItem == id)
{
// Draw outline
- renderer_staticRect(renderer, v2_add(V2(-2, -2), rect.min),
- v2_add(V2(4, 4), rectSize), V2(0, 0), 0,
- NULL, V4(1.0f, 0, 0, 1), 0);
+ renderer_rectFixed(renderer, v2_add(V2(-2, -2), rect.min),
+ v2_add(V2(4, 4), rectSize), V2(0, 0), 0, NULL,
+ V4(1.0f, 0, 0, 1), 0);
}
// Render text field
- renderer_staticRect(renderer, rect.min, rectSize, V2(0, 0), 0, NULL,
- V4(0.75f, 0.5f, 0.5f, 1), 0);
+ renderer_rectFixed(renderer, rect.min, rectSize, V2(0, 0), 0, NULL,
+ V4(0.75f, 0.5f, 0.5f, 1), 0);
if (uiState->activeItem == id || uiState->hotItem == id)
{
- renderer_staticRect(renderer, rect.min, rectSize, V2(0, 0), 0,
- NULL, V4(0.75f, 0.75f, 0.0f, 1), 0);
+ renderer_rectFixed(renderer, rect.min, rectSize, V2(0, 0), 0, NULL,
+ V4(0.75f, 0.75f, 0.0f, 1), 0);
}
else
{
- renderer_staticRect(renderer, rect.min, rectSize, V2(0, 0), 0,
- NULL, V4(0.5f, 0.5f, 0.5f, 1), 0);
+ renderer_rectFixed(renderer, rect.min, rectSize, V2(0, 0), 0, NULL,
+ V4(0.5f, 0.5f, 0.5f, 1), 0);
}
v2 strPos = rect.min;
- renderer_staticString(renderer, arena, font, string, strPos, V2(0, 0), 0,
- V4(0, 0, 0, 1), 0);
+ renderer_stringFixed(renderer, arena, font, string, strPos, V2(0, 0), 0,
+ V4(0, 0, 0, 1), 0);
if (uiState->kbdItem == id)
{
@@ -336,7 +325,7 @@ i32 userInterface_textField(UiState *const uiState, MemoryArena_ *const arena,
if (strLen > 0)
{
string[--strLen] = 0;
- changed = TRUE;
+ changed = TRUE;
}
break;
default:
@@ -347,8 +336,8 @@ i32 userInterface_textField(UiState *const uiState, MemoryArena_ *const arena,
uiState->keyChar <= keycode_tilda && strLen < 30)
{
string[strLen++] = uiState->keyChar + ' ';
- string[strLen] = 0;
- changed = TRUE;
+ string[strLen] = 0;
+ changed = TRUE;
}
}
diff --git a/src/dengine.c b/src/dengine.c
index 905f732..7c5233e 100644
--- a/src/dengine.c
+++ b/src/dengine.c
@@ -1,10 +1,10 @@
#include "Dengine/AssetManager.h"
+#include "Dengine/Asteroid.h"
#include "Dengine/Common.h"
#include "Dengine/Debug.h"
#include "Dengine/Math.h"
-#include "Dengine/OpenGL.h"
#include "Dengine/MemoryArena.h"
-#include "Dengine/Asteroid.h"
+#include "Dengine/OpenGL.h"
INTERNAL inline void processKey(KeyState *state, int action)
{
diff --git a/src/include/Dengine/AssetManager.h b/src/include/Dengine/AssetManager.h
index 1701894..e23a666 100644
--- a/src/include/Dengine/AssetManager.h
+++ b/src/include/Dengine/AssetManager.h
@@ -2,8 +2,6 @@
#define DENGINE_ASSET_MANAGER_H
#include "Dengine/Assets.h"
-#include "Dengine/Shader.h"
-#include "Dengine/Texture.h"
/* Forward declaration */
typedef struct MemoryArena MemoryArena_;
@@ -33,15 +31,15 @@ void asset_init(AssetManager *assetManager, MemoryArena_ *arena);
* Texture Operations
*********************************
*/
-const SubTexture asset_getAtlasSubTex(TexAtlas *const atlas,
+const SubTexture asset_atlasGetSubTex(TexAtlas *const atlas,
const char *const key);
-Texture *asset_getTex(AssetManager *const assetManager, const char *const key);
-TexAtlas *asset_getFreeTexAtlasSlot(AssetManager *const assetManager,
+Texture *asset_texGet(AssetManager *const assetManager, const char *const key);
+TexAtlas *asset_atlasGetFreeSlot(AssetManager *const assetManager,
MemoryArena_ *arena, const char *const key,
i32 numSubTex);
-TexAtlas *asset_getTexAtlas(AssetManager *const assetManager,
+TexAtlas *asset_atlasGet(AssetManager *const assetManager,
const char *const key);
-Texture *asset_getFreeTexSlot(AssetManager *const assetManager,
+Texture *asset_texGetFreeSlot(AssetManager *const assetManager,
MemoryArena_ *const arena, const char *const key);
Texture *asset_loadTextureImage(AssetManager *assetManager, MemoryArena_ *arena,
const char *const path, const char *const key);
@@ -51,11 +49,11 @@ Texture *asset_loadTextureImage(AssetManager *assetManager, MemoryArena_ *arena,
* Animation Asset Managing
*********************************
*/
-void asset_addAnimation(AssetManager *const assetManager,
+void asset_animAdd(AssetManager *const assetManager,
MemoryArena_ *const arena, const char *const animName,
TexAtlas *const atlas, char **const subTextureNames,
const i32 numSubTextures, const f32 frameDuration);
-Animation *asset_getAnim(AssetManager *const assetManager,
+Animation *asset_animGet(AssetManager *const assetManager,
const char *const key);
/*
@@ -63,9 +61,9 @@ Animation *asset_getAnim(AssetManager *const assetManager,
* Audio
*********************************
*/
-AudioVorbis *const asset_getVorbis(AssetManager *const assetManager,
+AudioVorbis *const asset_vorbisGet(AssetManager *const assetManager,
const char *const key);
-const i32 asset_loadVorbis(AssetManager *assetManager, MemoryArena_ *arena,
+const i32 asset_vorbisLoad(AssetManager *assetManager, MemoryArena_ *arena,
const char *const path, const char *const key);
/*
@@ -73,28 +71,28 @@ const i32 asset_loadVorbis(AssetManager *assetManager, MemoryArena_ *arena,
* Everything else
*********************************
*/
-const i32 asset_loadXmlFile(AssetManager *const assetManager,
+const i32 asset_xmlLoad(AssetManager *const assetManager,
MemoryArena_ *const arena,
const PlatformFileRead *const fileRead);
-u32 asset_getShader(AssetManager *assetManager, const enum ShaderList type);
-const i32 asset_loadShaderFiles(AssetManager *assetManager, MemoryArena_ *arena,
+u32 asset_shaderGet(AssetManager *assetManager, const enum ShaderList type);
+const i32 asset_shaderLoad(AssetManager *assetManager, MemoryArena_ *arena,
const char *const vertexPath,
const char *const fragmentPath,
const enum ShaderList type);
-Font *asset_getFontCreateSizeOnDemand(AssetManager *assetManager,
+Font *asset_fontGetOrCreateOnDemand(AssetManager *assetManager,
MemoryArena_ *persistentArena,
MemoryArena_ *transientArena, char *name,
i32 size);
-Font *asset_getFont(AssetManager *assetManager, char *name,
+Font *asset_fontGet(AssetManager *assetManager, char *name,
i32 size);
-const i32 asset_loadTTFont(AssetManager *assetManager,
+const i32 asset_fontLoadTTF(AssetManager *assetManager,
MemoryArena_ *persistentArena,
MemoryArena_ *transientArena, char *filePath,
char *name, i32 targetFontHeight);
-const v2 asset_stringDimInPixels(const Font *const font,
+const v2 asset_fontStringDimInPixels(const Font *const font,
const char *const string);
void asset_unitTest(MemoryArena_ *arena);
diff --git a/src/include/Dengine/Assets.h b/src/include/Dengine/Assets.h
index 1aa53bc..79e8ba6 100644
--- a/src/include/Dengine/Assets.h
+++ b/src/include/Dengine/Assets.h
@@ -123,6 +123,34 @@ typedef struct Animation
f32 frameDuration;
} Animation;
+#define TARGET_TEXTURE_SIZE 1024
+#define TARGET_BYTES_PER_PIXEL 4
+
+// TODO(doyle): Look into merging into assets.h file ..
+typedef struct Texture
+{
+ // Holds the ID of the texture object, used for all texture operations to
+ // reference to this particlar texture
+ u32 id;
+
+ // Texture image dimensions
+ u32 width;
+ u32 height;
+
+ // Texture Format
+ u32 internalFormat; // Format of texture object
+ u32 imageFormat; // Format of loaded image
+
+ // Texture configuration
+ u32 wrapS; // Wrapping mode on S axis
+ u32 wrapT; // Wrapping mode on T axis
+
+ // Filtering mode if texture pixels < screen pixels
+ u32 filterMinification;
+ // Filtering mode if texture pixels > screen pixels
+ u32 filterMagnification;
+} Texture;
+
/*
*********************************
* Font
diff --git a/src/include/Dengine/Asteroid.h b/src/include/Dengine/Asteroid.h
index b1f5757..a09280d 100644
--- a/src/include/Dengine/Asteroid.h
+++ b/src/include/Dengine/Asteroid.h
@@ -8,7 +8,7 @@
#include "Dengine/MemoryArena.h"
#include "Dengine/Platform.h"
#include "Dengine/Renderer.h"
-#include "Dengine/UserInterface.h"
+#include "Dengine/Ui.h"
enum AppState
{
diff --git a/src/include/Dengine/Audio.h b/src/include/Dengine/Audio.h
index f5fa0d7..a333bba 100644
--- a/src/include/Dengine/Audio.h
+++ b/src/include/Dengine/Audio.h
@@ -49,17 +49,17 @@ typedef struct AudioRenderer
const i32 audio_init(AudioManager *audioManager);
-const i32 audio_playVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisPlay(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer, AudioVorbis *vorbis,
i32 numPlays);
-const i32 audio_streamPlayVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisStream(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer,
AudioVorbis *vorbis, i32 numPlays);
-const i32 audio_stopVorbis(MemoryArena_ *arena, AudioManager *audioManager,
+const i32 audio_vorbisStop(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer);
-const i32 audio_pauseVorbis(AudioManager *audioManager,
+const i32 audio_vorbisPause(AudioManager *audioManager,
AudioRenderer *audioRenderer);
-const i32 audio_resumeVorbis(AudioManager *audioManager,
+const i32 audio_vorbisResume(AudioManager *audioManager,
AudioRenderer *audioRenderer);
const i32 audio_updateAndPlay(MemoryArena_ *arena, AudioManager *audioManager,
AudioRenderer *audioRenderer);
diff --git a/src/include/Dengine/Entity.h b/src/include/Dengine/Entity.h
index 9836048..11918c0 100644
--- a/src/include/Dengine/Entity.h
+++ b/src/include/Dengine/Entity.h
@@ -110,10 +110,10 @@ typedef struct Entity
i32 animListIndex;
} Entity;
-SubTexture entity_getActiveSubTexture(Entity *const entity);
-void entity_setActiveAnim(Entity *const entity, const char *const animName);
-void entity_updateAnim(Entity *const entity, const f32 dt);
-void entity_addAnim(AssetManager *const assetManager, Entity *const entity,
+SubTexture entity_subTexGetCurr(Entity *const entity);
+void entity_animSet(Entity *const entity, const char *const animName);
+void entity_animUpdate(Entity *const entity, const f32 dt);
+void entity_animAdd(AssetManager *const assetManager, Entity *const entity,
const char *const animName);
v2 *entity_generateUpdatedVertexList(MemoryArena_ *transientArena,
diff --git a/src/include/Dengine/Math.h b/src/include/Dengine/Math.h
index 11a23f5..1a20ee0 100644
--- a/src/include/Dengine/Math.h
+++ b/src/include/Dengine/Math.h
@@ -331,7 +331,7 @@ INTERNAL inline mat4 mat4_mul(const mat4 a, const mat4 b)
}
-INTERNAL inline v4 mat4_mul_v4(const mat4 a, const v4 b)
+INTERNAL inline v4 mat4_mulV4(const mat4 a, const v4 b)
{
v4 result = {0};
@@ -347,7 +347,7 @@ INTERNAL inline v4 mat4_mul_v4(const mat4 a, const v4 b)
return result;
}
-INTERNAL inline b32 math_rect_contains_p(Rect rect, v2 p)
+INTERNAL inline b32 math_rectContainsP(Rect rect, v2 p)
{
b32 outsideOfRectX = FALSE;
if (p.x < rect.min.x || p.x > rect.max.w)
@@ -362,7 +362,7 @@ INTERNAL inline b32 math_rect_contains_p(Rect rect, v2 p)
}
-INTERNAL inline Rect math_rect_create(v2 origin, v2 size)
+INTERNAL inline Rect math_rectCreate(v2 origin, v2 size)
{
Rect result = {0};
result.min = origin;
@@ -371,7 +371,7 @@ INTERNAL inline Rect math_rect_create(v2 origin, v2 size)
return result;
}
-INTERNAL inline v2 math_rect_get_size(Rect rect)
+INTERNAL inline v2 math_rectGetSize(Rect rect)
{
f32 width = ABS(rect.max.x - rect.min.x);
f32 height = ABS(rect.max.y - rect.min.y);
@@ -381,7 +381,7 @@ INTERNAL inline v2 math_rect_get_size(Rect rect)
return result;
}
-INTERNAL inline v2 math_rect_get_centre(Rect rect)
+INTERNAL inline v2 math_rectGetCentre(Rect rect)
{
f32 sumX = rect.min.x + rect.max.x;
f32 sumY = rect.min.y + rect.max.y;
@@ -390,7 +390,7 @@ INTERNAL inline v2 math_rect_get_centre(Rect rect)
return result;
}
-INTERNAL inline Rect math_rect_shift(Rect rect, v2 shift)
+INTERNAL inline Rect math_rectShift(Rect rect, v2 shift)
{
Rect result = {0};
result.min = v2_add(rect.min, shift);
diff --git a/src/include/Dengine/MemoryArena.h b/src/include/Dengine/MemoryArena.h
index ec06b5f..5884aa3 100644
--- a/src/include/Dengine/MemoryArena.h
+++ b/src/include/Dengine/MemoryArena.h
@@ -29,8 +29,8 @@ typedef struct TempMemory
MemoryIndex used;
} TempMemory;
-TempMemory memory_begin_temporary_region(MemoryArena_ *arena);
-void memory_end_temporary_region(TempMemory tempMemory);
+TempMemory memory_beginTempRegion(MemoryArena_ *arena);
+void memory_endTempRegion(TempMemory tempMemory);
#define MEMORY_PUSH_STRUCT(arena, type) (type *)memory_pushBytes(arena, sizeof(type))
#define MEMORY_PUSH_ARRAY(arena, count, type) (type *)memory_pushBytes(arena, (count)*sizeof(type))
diff --git a/src/include/Dengine/Platform.h b/src/include/Dengine/Platform.h
index d9c2077..904c1a2 100644
--- a/src/include/Dengine/Platform.h
+++ b/src/include/Dengine/Platform.h
@@ -184,7 +184,7 @@ enum ReadKeyType
readkeytype_repeat,
readkeytype_count,
};
-void platform_processInputBuffer(InputBuffer *inputBuffer, f32 dt);
+void platform_inputBufferProcess(InputBuffer *inputBuffer, f32 dt);
b32 platform_queryKey(KeyState *key, enum ReadKeyType readType,
f32 delayInterval);
#endif
diff --git a/src/include/Dengine/Renderer.h b/src/include/Dengine/Renderer.h
index 085b4c3..ea4c370 100644
--- a/src/include/Dengine/Renderer.h
+++ b/src/include/Dengine/Renderer.h
@@ -100,7 +100,7 @@ void renderer_polygon(Renderer *const renderer, Rect camera, v2 *polygonPoints,
i32 numPoints, v2 pivotPoint, Radians rotate,
RenderTex *renderTex, v4 color, RenderFlags flags);
-inline void renderer_staticRect(Renderer *const renderer, v2 pos, v2 size,
+inline void renderer_rectFixed(Renderer *const renderer, v2 pos, v2 size,
v2 pivotPoint, Radians rotate,
RenderTex *renderTex, v4 color,
RenderFlags flags)
@@ -115,7 +115,7 @@ void renderer_string(Renderer *const renderer, MemoryArena_ *arena, Rect camera,
v2 pivotPoint, Radians rotate, v4 color,
RenderFlags flags);
-inline void renderer_staticString(Renderer *const renderer, MemoryArena_ *arena,
+inline void renderer_stringFixed(Renderer *const renderer, MemoryArena_ *arena,
Font *const font, const char *const string,
v2 pos, v2 pivotPoint, Radians rotate,
v4 color, RenderFlags flags)
diff --git a/src/include/Dengine/Shader.h b/src/include/Dengine/Shader.h
deleted file mode 100644
index 8b99611..0000000
--- a/src/include/Dengine/Shader.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef DENGINE_SHADER_H
-#define DENGINE_SHADER_H
-
-#include "Dengine/Math.h"
-#include "Dengine/OpenGL.h"
-
-void shader_uniformSet1i(u32 shaderId, const GLchar *name,
- const GLuint data);
-void shader_uniformSetMat4fv(u32 shaderId, const GLchar *name,
- mat4 data);
-void shader_uniformSetVec4f(u32 shaderId, const GLchar *name,
- v4 data);
-
-void shader_use(u32 shaderId);
-
-#endif
diff --git a/src/include/Dengine/Texture.h b/src/include/Dengine/Texture.h
deleted file mode 100644
index 0b09fbf..0000000
--- a/src/include/Dengine/Texture.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef DENGINE_TEXTURE_H
-#define DENGINE_TEXTURE_H
-
-#include "Dengine/Common.h"
-#include "Dengine/OpenGL.h"
-
-#define TARGET_TEXTURE_SIZE 1024
-#define TARGET_BYTES_PER_PIXEL 4
-
-// TODO(doyle): Look into merging into assets.h file ..
-typedef struct Texture
-{
- // Holds the ID of the texture object, used for all texture operations to
- // reference to this particlar texture
- GLuint id;
-
- // Texture image dimensions
- GLuint width;
- GLuint height;
-
- // Texture Format
- GLuint internalFormat; // Format of texture object
- GLuint imageFormat; // Format of loaded image
-
- // Texture configuration
- GLuint wrapS; // Wrapping mode on S axis
- GLuint wrapT; // Wrapping mode on T axis
-
- // Filtering mode if texture pixels < screen pixels
- GLuint filterMinification;
- // Filtering mode if texture pixels > screen pixels
- GLuint filterMagnification;
-} Texture;
-
-// Generates texture from image data
-Texture texture_gen(const GLuint width, const GLuint height,
- const GLint bytesPerPixel, const u8 *const image);
-
-#endif
diff --git a/src/include/Dengine/Ui.h b/src/include/Dengine/Ui.h
new file mode 100644
index 0000000..c18fd23
--- /dev/null
+++ b/src/include/Dengine/Ui.h
@@ -0,0 +1,78 @@
+#ifndef DENGINE_USER_INTERFACE_H
+#define DENGINE_USER_INTERFACE_H
+
+#include "Dengine/Common.h"
+#include "Dengine/Math.h"
+#include "Dengine/Platform.h"
+
+/* Forward Declaration */
+typedef struct AssetManager AssetManager;
+typedef struct Font Font;
+typedef struct MemoryArena MemoryArena_;
+typedef struct Renderer Renderer;
+typedef struct GameState GameState;
+
+enum UiType
+{
+ uitype_button,
+ uitype_scrollbar,
+ uitype_textField,
+ uitype_string,
+ uitype_count,
+};
+
+typedef struct UiItem
+{
+ i32 id;
+ char label[64];
+ enum UiType type;
+
+ Rect rect;
+
+ // TODO(doyle): ECS this? Not all elements need
+ i32 value;
+ i32 maxValue;
+ char string[80];
+} UiItem;
+
+typedef struct UiState
+{
+ i32 uniqueId;
+
+ UiItem uiList[128];
+ i32 numItems;
+
+ i32 hotItem;
+ i32 activeItem;
+ i32 lastWidget;
+
+ i32 kbdItem;
+ enum KeyCode keyEntered;
+ enum KeyCode keyMod;
+ enum KeyCode keyChar;
+} UiState;
+
+inline i32 ui_generateId(UiState *const uiState)
+{
+ i32 result = uiState->uniqueId++;
+ return result;
+}
+
+void ui_beginState(UiState *state);
+void ui_endState(UiState *state, InputBuffer *input);
+
+i32 ui_button(UiState *const uiState, MemoryArena_ *const arena,
+ AssetManager *const assetManager, Renderer *const renderer,
+ Font *const font, const InputBuffer input, const i32 id,
+ const Rect rect, const char *const label);
+
+i32 ui_textfield(UiState *const uiState, MemoryArena_ *const arena,
+ AssetManager *const assetManager, Renderer *const renderer,
+ Font *const font, InputBuffer input, const i32 id,
+ const Rect rect, char *const string);
+
+i32 ui_scrollbar(UiState *const uiState, AssetManager *const assetManager,
+ Renderer *const renderer, const InputBuffer input,
+ const i32 id, const Rect scrollBarRect, i32 *const value,
+ const i32 maxValue);
+#endif
diff --git a/src/include/Dengine/UserInterface.h b/src/include/Dengine/UserInterface.h
deleted file mode 100644
index a465f80..0000000
--- a/src/include/Dengine/UserInterface.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef DENGINE_USER_INTERFACE_H
-#define DENGINE_USER_INTERFACE_H
-
-#include "Dengine/Common.h"
-#include "Dengine/Math.h"
-#include "Dengine/Platform.h"
-
-/* Forward Declaration */
-typedef struct AssetManager AssetManager;
-typedef struct Font Font;
-typedef struct MemoryArena MemoryArena_;
-typedef struct Renderer Renderer;
-typedef struct GameState GameState;
-
-enum UiType
-{
- uitype_button,
- uitype_scrollbar,
- uitype_textField,
- uitype_string,
- uitype_count,
-};
-
-typedef struct UiItem
-{
- i32 id;
- char label[64];
- enum UiType type;
-
- Rect rect;
-
- // TODO(doyle): ECS this? Not all elements need
- i32 value;
- i32 maxValue;
- char string[80];
-} UiItem;
-
-typedef struct UiState
-{
- i32 uniqueId;
-
- UiItem uiList[128];
- i32 numItems;
-
- i32 hotItem;
- i32 activeItem;
- i32 lastWidget;
-
- i32 kbdItem;
- enum KeyCode keyEntered;
- enum KeyCode keyMod;
- enum KeyCode keyChar;
-} UiState;
-
-inline i32 userInterface_generateId(UiState *const uiState)
-{
- i32 result = uiState->uniqueId++;
- return result;
-}
-
-void userInterface_beginState(UiState *state);
-void userInterface_endState(UiState *state, InputBuffer *input);
-
-i32 userInterface_button(UiState *const uiState, MemoryArena_ *const arena,
- AssetManager *const assetManager,
- Renderer *const renderer, Font *const font,
- const InputBuffer input, const i32 id, const Rect rect,
- const char *const label);
-
-i32 userInterface_textField(UiState *const uiState, MemoryArena_ *const arena,
- AssetManager *const assetManager,
- Renderer *const renderer, Font *const font,
- InputBuffer input, const i32 id, const Rect rect,
- char *const string);
-
-i32 userInterface_scrollbar(UiState *const uiState,
- AssetManager *const assetManager,
- Renderer *const renderer, const InputBuffer input,
- const i32 id, const Rect scrollBarRect,
- i32 *const value, const i32 maxValue);
-#endif