Render x/y for UI elements.

This commit is contained in:
2021-09-03 19:02:37 -07:00
parent 4b55ec7b93
commit c0d13042b4
32 changed files with 196 additions and 155 deletions

View File

@ -38,12 +38,13 @@
#include "game/dawn/dawngame.h" #include "game/dawn/dawngame.h"
#include "game/poker/ui/pokerplayerui.h"
#include "game/poker/ui/pokerui.h"
#include "game/poker/pokerdiscussion.h" #include "game/poker/pokerdiscussion.h"
#include "game/poker/pokergame.h" #include "game/poker/pokergame.h"
#include "game/poker/pokergameaction.h" #include "game/poker/pokergameaction.h"
#include "game/poker/pokergameassets.h" #include "game/poker/pokergameassets.h"
#include "game/poker/pokerworld.h" #include "game/poker/pokerworld.h"
#include "game/poker/pokerui.h"
// Player Input // Player Input
#include "input/input.h" #include "input/input.h"

View File

@ -10,8 +10,8 @@
#include "../../display/animation/queue.h" #include "../../display/animation/queue.h"
#include "pokergameassets.h" #include "pokergameassets.h"
#include "pokerworld.h" #include "pokerworld.h"
#include "pokerui.h"
#include "pokergameaction.h" #include "pokergameaction.h"
#include "ui/pokerui.h"
#include "../../poker/poker.h" #include "../../poker/poker.h"
#include "../../poker/player.h" #include "../../poker/player.h"
#include "../../poker/dealer.h" #include "../../poker/dealer.h"

View File

@ -1,20 +0,0 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../../libs.h"
#include "../../ui/label.h"
#include "../../poker/player.h"
typedef struct {
label_t labelInfo;
} pokerplayerui_t;
typedef struct {
pokerplayerui_t players[POKER_PLAYER_COUNT];
label_t labelGameInfo;
} pokerui_t;

View File

@ -0,0 +1,14 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../../../libs.h"
#include "../../../ui/label.h"
typedef struct {
label_t label;
} pokerplayerui_t;

View File

@ -0,0 +1,15 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../../../libs.h"
#include "../../../poker/player.h"
#include "pokerplayerui.h"
typedef struct {
pokerplayerui_t player[POKER_PLAYER_COUNT];
} pokerui_t;

View File

@ -18,7 +18,6 @@
#define FRAME_PRIMITIVE_COUNT 9 #define FRAME_PRIMITIVE_COUNT 9
typedef struct { typedef struct {
float x, y;
texture_t *texture; texture_t *texture;
primitive_t primitive; primitive_t primitive;
} frame_t; } frame_t;

View File

@ -10,7 +10,6 @@
#include "../display/primitive.h" #include "../display/primitive.h"
typedef struct { typedef struct {
float x, y;
texture_t *texture; texture_t *texture;
primitive_t quad; primitive_t quad;
float u0, v0; float u0, v0;

View File

@ -13,7 +13,6 @@
/** Representation of a Label UI Element */ /** Representation of a Label UI Element */
typedef struct { typedef struct {
font_t *font; font_t *font;
float x, y;
float fontSize; float fontSize;
fonttextinfo_t info; fonttextinfo_t info;
primitive_t primitive; primitive_t primitive;

View File

@ -25,7 +25,6 @@ typedef void menulistcallback_t(menulist_t *list, uint8_t i, void *user);
/** Representation of a menu list, a menu with multiple menu items. */ /** Representation of a menu list, a menu with multiple menu items. */
typedef struct _menulist_t { typedef struct _menulist_t {
float x, y;
char *items[MENULIST_ITEMS_MAX]; char *items[MENULIST_ITEMS_MAX];
label_t labels[MENULIST_ITEMS_MAX]; label_t labels[MENULIST_ITEMS_MAX];
frame_t frame; frame_t frame;

View File

@ -10,7 +10,6 @@
#include "../display/primitive.h" #include "../display/primitive.h"
typedef struct { typedef struct {
float x, y;
float width, height; float width, height;
texture_t texture; texture_t texture;
primitive_t quad; primitive_t quad;

View File

@ -33,9 +33,6 @@ typedef struct {
int32_t linesMax; int32_t linesMax;
int32_t lineCurrent; int32_t lineCurrent;
/** X, Y Position of the textbox */
float x, y;
/** Readonly values for the dimensions of the textbox */ /** Readonly values for the dimensions of the textbox */
float width, height; float width, height;

View File

@ -13,12 +13,10 @@
#include "../../vn/vnscene.h" #include "../../vn/vnscene.h"
#include "../../util/array.h" #include "../../util/array.h"
#include "actions/start.h" #include "actions/start.h"
#include "pokerui.h" #include "ui/pokerui.h"
#include "pokerworld.h" #include "pokerworld.h"
#include "actions/start.h" #include "actions/start.h"
#include "../../ui/menulist.h"
/** /**
* Initializes the game state for the poker game. * Initializes the game state for the poker game.
* *

View File

@ -1,68 +0,0 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "pokerui.h"
void pokerUiInit(pokergame_t *pokerGame) {
pokerplayerui_t *playerUi;
pokerplayer_t *playerPoker;
vncharacter_t *character;
uint8_t i;
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
playerUi = pokerGame->ui.players + i;
playerPoker = pokerGame->poker.players + i;
character = pokerGame->scene.characters + i;
labelInit(&playerUi->labelInfo);
playerUi->labelInfo.fontSize = 12.0;
}
labelInit(&pokerGame->ui.labelGameInfo);
pokerGame->ui.labelGameInfo.fontSize = 12.0f;
}
void pokerUiRender(pokergame_t *pokerGame) {
pokerplayerui_t *playerUi;
pokerplayer_t *playerPoker;
uint8_t i;
char buffer[256];
sprintf(buffer, "Pot %i\n", pokerGame->poker.bet.pot);
labelSetText(&pokerGame->ui.labelGameInfo, &pokerGame->assets.font, buffer);
pokerGame->ui.labelGameInfo.x = 350;
labelRender(&pokerGame->ui.labelGameInfo, &pokerGame->assets.shader);
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
playerUi = pokerGame->ui.players + i;
playerPoker = pokerGame->poker.players + i;
// Player Chips
sprintf(buffer, "Player %u - %u chips - %s%s",
i,
playerPoker->chips,
i == POKER_PLAYER_HUMAN_INDEX ? "Human" : "AI",
i == pokerGame->poker.bet.better ? " Betting" :
playerPoker->state & POKER_PLAYER_STATE_FOLDED ? " Folded" :
playerPoker->state & POKER_PLAYER_STATE_OUT ? " Out" :
""
);
playerUi->labelInfo.y = (float)i * 32.0f;
labelSetText(&playerUi->labelInfo, &pokerGame->assets.font, buffer);
labelRender(&playerUi->labelInfo, &pokerGame->assets.shader);
}
}
void pokerUiDispose(pokergame_t *pokerGame) {
pokerplayerui_t *player;
uint8_t i;
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
player = pokerGame->ui.players + i;
labelDispose(&player->labelInfo);
}
}

View File

@ -0,0 +1,51 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "pokerplayerui.h"
void pokerPlayerUiInit(pokerplayerui_t *ui) {
labelInit(&ui->label);
}
void pokerPlayerUiRender(
pokerplayerui_t *ui, pokergame_t *game, shader_t *shader, font_t *font,
int32_t playerIndex, float x, float y
) {
pokerplayer_t *player;
char buffer[32];
float scale;
scale = fontGetScale(FONT_SIZE_DEFAULT);
player = game->poker.players + playerIndex;
// Render chips
sprintf(buffer, "$%i", player->chips);
labelSetText(&ui->label, font, buffer);
labelRender(&ui->label, shader, x, y);
// Render state
if(player->state & POKER_PLAYER_STATE_OUT) {
sprintf(buffer, "Out");
} else if(player->state & POKER_PLAYER_STATE_FOLDED) {
sprintf(buffer, "Folded");
} else if(player->state & POKER_PLAYER_STATE_SHOWING) {
sprintf(buffer, "Showing");
} else if(game->poker.bet.better == playerIndex) {
sprintf(buffer, "Thinking");
} else {
sprintf(buffer, "Whatever");
}
labelSetText(&ui->label, font, buffer);
labelRender(&ui->label, shader, x, y + scale * FONT_LINE_HEIGHT);
// Render face?
}
void pokerPlayerUiDispose(pokerplayerui_t *ui) {
labelDispose(&ui->label);
}

View File

@ -0,0 +1,20 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include <dawn/dawn.h>
#include "../../../ui/label.h"
void pokerPlayerUiInit(pokerplayerui_t *ui);
void pokerPlayerUiRender(
pokerplayerui_t *ui, pokergame_t *game, shader_t *shader, font_t *font,
int32_t playerIndex, float x, float y
);
void pokerPlayerUiDispose(pokerplayerui_t *ui);

View File

@ -0,0 +1,39 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "pokerui.h"
void pokerUiInit(pokergame_t *pokerGame) {
uint8_t i;
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
pokerPlayerUiInit(pokerGame->ui.player + i);
}
}
void pokerUiRender(pokergame_t *pokerGame) {
uint8_t i;
pokerplayerui_t *ui;
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
ui = pokerGame->ui.player + i;
pokerPlayerUiRender(ui, pokerGame,
&pokerGame->assets.shader, &pokerGame->assets.font,
i,
i * 150.0f, 0
);
}
}
void pokerUiDispose(pokergame_t *pokerGame) {
uint8_t i;
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
pokerPlayerUiDispose(pokerGame->ui.player + i);
}
}

View File

@ -7,7 +7,8 @@
#pragma once #pragma once
#include <dawn/dawn.h> #include <dawn/dawn.h>
#include "../../ui/label.h" #include "../../../ui/label.h"
#include "pokerplayerui.h"
/** /**
* Initializes the UI Module. * Initializes the UI Module.

View File

@ -8,9 +8,6 @@
#include "frame.h" #include "frame.h"
void frameInit(frame_t *frame) { void frameInit(frame_t *frame) {
frame->x = 0;
frame->y = 0;
primitiveInit( primitiveInit(
&frame->primitive, &frame->primitive,
QUAD_VERTICE_COUNT * FRAME_PRIMITIVE_COUNT, QUAD_VERTICE_COUNT * FRAME_PRIMITIVE_COUNT,
@ -103,8 +100,8 @@ void frameSetInnerSize(frame_t *frame, float width, float height) {
); );
} }
void frameRender(frame_t *frame, shader_t *shader) { void frameRender(frame_t *frame, shader_t *shader, float x, float y) {
shaderUsePosition(shader, frame->x, frame->y, 0, 0, 0, 0); shaderUsePosition(shader, x, y, 0, 0, 0, 0);
shaderUseTexture(shader, frame->texture); shaderUseTexture(shader, frame->texture);
primitiveDraw(&frame->primitive, 0, -1); primitiveDraw(&frame->primitive, 0, -1);
} }

View File

@ -41,8 +41,10 @@ void frameSetInnerSize(frame_t *frame, float width, float height);
* *
* @param frame Frame to render. * @param frame Frame to render.
* @param shader Shader to use while rendering. * @param shader Shader to use while rendering.
* @param x X position.
* @param y Y position.
*/ */
void frameRender(frame_t *frame, shader_t *shader); void frameRender(frame_t *frame, shader_t *shader, float x, float y);
/** /**
* Cleanup a previously initialized frame. * Cleanup a previously initialized frame.

View File

@ -8,8 +8,6 @@
#include "image.h" #include "image.h"
void imageInit(image_t *image, texture_t *texture) { void imageInit(image_t *image, texture_t *texture) {
image->x = 0;
image->y = 0;
image->quad.verticeCount = -1; image->quad.verticeCount = -1;
imageSetTexture(image, texture); imageSetTexture(image, texture);
} }
@ -24,8 +22,8 @@ void imageSetTexture(image_t *image, texture_t *texture) {
quadInit(&image->quad, 0, 0,0,0,0, texture->width,texture->height,1,1); quadInit(&image->quad, 0, 0,0,0,0, texture->width,texture->height,1,1);
} }
void imageRender(image_t *image, shader_t *shader) { void imageRender(image_t *image, shader_t *shader, float x, float y) {
shaderUsePosition(shader, image->x, image->y, 0, 0, 0, 0); shaderUsePosition(shader, x, y, 0, 0, 0, 0);
primitiveDraw(&image->quad, 0, -1); primitiveDraw(&image->quad, 0, -1);
} }

View File

@ -32,8 +32,10 @@ void imageSetTexture(image_t *image, texture_t *texture);
* *
* @param image Image to render. * @param image Image to render.
* @param shader Shader to use while rendering. * @param shader Shader to use while rendering.
* @param x X position.
* @param y Y position.
*/ */
void imageRender(image_t *image, shader_t *shader); void imageRender(image_t *image, shader_t *shader, float x, float y);
/** /**
* Cleanup a previously initialized image. * Cleanup a previously initialized image.

View File

@ -8,8 +8,6 @@
#include "label.h" #include "label.h"
void labelInit(label_t *label) { void labelInit(label_t *label) {
label->x = 0;
label->y = 0;
label->fontSize = FONT_SIZE_DEFAULT; label->fontSize = FONT_SIZE_DEFAULT;
label->font = NULL; label->font = NULL;
label->primitive.verticeCount = 0; label->primitive.verticeCount = 0;
@ -26,9 +24,9 @@ void labelSetText(label_t *label, font_t *font, char *text) {
fontTextInit(font, &label->primitive, &label->info); fontTextInit(font, &label->primitive, &label->info);
} }
void labelRender(label_t *label, shader_t *shader) { void labelRender(label_t *label, shader_t *shader, float x, float y) {
if(label->primitive.verticeCount == 0) return; if(label->primitive.verticeCount == 0) return;
shaderUsePosition(shader, label->x,label->y,0, 0,0,0); shaderUsePosition(shader, x,y,0, 0,0,0);
shaderUseTexture(shader, &label->font->texture); shaderUseTexture(shader, &label->font->texture);
primitiveDraw(&label->primitive, 0, -1); primitiveDraw(&label->primitive, 0, -1);
} }

View File

@ -29,8 +29,10 @@ void labelSetText(label_t *label, font_t *font, char *text);
* *
* @param label Label to render. * @param label Label to render.
* @param shader Shader to use while rendering. * @param shader Shader to use while rendering.
* @param x X position.
* @param y Y position.
*/ */
void labelRender(label_t *label, shader_t *shader); void labelRender(label_t *label, shader_t *shader, float x, float y);
/** /**
* Dispose a previously created label. * Dispose a previously created label.

View File

@ -14,8 +14,6 @@ void _menuListMenuOnSelect(menu_t *menu, menuitem_t *item, uint8_t i, void *u) {
} }
void menuListInit(menulist_t *ml, texture_t *texture) { void menuListInit(menulist_t *ml, texture_t *texture) {
ml->x = 0;
ml->y = 0;
ml->onSelect = NULL; ml->onSelect = NULL;
// Initialize menu // Initialize menu
@ -67,33 +65,29 @@ void menuListUpdate(menulist_t *ml, engine_t *engine) {
menuUpdate(&ml->menu, engine); menuUpdate(&ml->menu, engine);
} }
void menuListRender(menulist_t *ml, shader_t *shader) { void menuListRender(menulist_t *ml, shader_t *shader, float x, float y) {
uint8_t i; uint8_t i;
label_t *label;
float fontScale; float fontScale;
fontScale = fontGetScale(ml->labels->fontSize); fontScale = fontGetScale(ml->labels->fontSize);
// Render the frame // Render the frame
ml->frame.x = ml->x; frameRender(&ml->frame, shader, x, y);
ml->frame.y = ml->y;
frameRender(&ml->frame, shader);
// Render selection box. // Render selection box.
ml->selection.x = ml->x + FRAME_BORDER_SIZE;
ml->selection.y = ml->y + FRAME_BORDER_SIZE +(
ml->menu.selected * FONT_LINE_HEIGHT * fontScale
);
ml->selection.width = 100; ml->selection.width = 100;
ml->selection.height = FONT_LINE_HEIGHT * fontScale; ml->selection.height = FONT_LINE_HEIGHT * fontScale;
rectangleRender(&ml->selection, shader); rectangleRender(&ml->selection, shader,
x + FRAME_BORDER_SIZE,
y + FRAME_BORDER_SIZE +ml->menu.selected * FONT_LINE_HEIGHT * fontScale
);
// Render each label. // Render each label.
for(i = 0; i < ml->menu.itemCount; i++) { for(i = 0; i < ml->menu.itemCount; i++) {
label = ml->labels + i; labelRender(ml->labels + i, shader,
label->x = FRAME_BORDER_SIZE; FRAME_BORDER_SIZE,
label->y = FRAME_BORDER_SIZE + i * FONT_LINE_HEIGHT * fontScale; FRAME_BORDER_SIZE + i * FONT_LINE_HEIGHT * fontScale
labelRender(label, shader); );
} }
} }

View File

@ -46,8 +46,10 @@ void menuListUpdate(menulist_t *ml, engine_t *engine);
* *
* @param ml Menu list to render. * @param ml Menu list to render.
* @param shader Shader to use. * @param shader Shader to use.
* @param x X position.
* @param y Y position.
*/ */
void menuListRender(menulist_t *ml, shader_t *shader); void menuListRender(menulist_t *ml, shader_t *shader, float x, float y);
/** /**
* Cleanup a previously created menu list. * Cleanup a previously created menu list.

View File

@ -8,8 +8,6 @@
#include "rectangle.h" #include "rectangle.h"
void rectangleInit(rectangle_t *rectangle) { void rectangleInit(rectangle_t *rectangle) {
rectangle->x = 0;
rectangle->y = 0;
rectangle->width = 32; rectangle->width = 32;
rectangle->height = 32; rectangle->height = 32;
textureInit(&rectangle->texture, 1, 1, NULL); textureInit(&rectangle->texture, 1, 1, NULL);
@ -22,14 +20,14 @@ void rectangleSetColor(rectangle_t *rectangle, pixel_t color) {
); );
} }
void rectangleRender(rectangle_t *rectangle, shader_t *shader) { void rectangleRender(rectangle_t *rect, shader_t *shader, float x, float y) {
shaderUsePositionAndScale(shader, shaderUsePositionAndScale(shader,
rectangle->x, rectangle->y, 0, x, y, 0,
0, 0, 0, 0, 0, 0,
rectangle->width, rectangle->height, 1 rect->width, rect->height, 1
); );
shaderUseTexture(shader, &rectangle->texture); shaderUseTexture(shader, &rect->texture);
primitiveDraw(&rectangle->quad, 0, -1); primitiveDraw(&rect->quad, 0, -1);
} }
void rectangleDispose(rectangle_t *rectangle) { void rectangleDispose(rectangle_t *rectangle) {

View File

@ -16,6 +16,6 @@ void rectangleInit(rectangle_t *rectangle);
void rectangleSetColor(rectangle_t *rectangle, pixel_t color); void rectangleSetColor(rectangle_t *rectangle, pixel_t color);
void rectangleRender(rectangle_t *rectangle, shader_t *shader); void rectangleRender(rectangle_t *rect, shader_t *shader, float x, float y);
void rectangleDispose(rectangle_t *rectangle); void rectangleDispose(rectangle_t *rectangle);

View File

@ -28,13 +28,16 @@ queueaction_t * vnConversationAdd(vnconversation_t *conversation) {
} }
void vnConversationUpdate(vnconversation_t *convo, engine_t *engine) { void vnConversationUpdate(vnconversation_t *convo, engine_t *engine) {
convo->textbox.y = engine->render.height - convo->textbox.height;
vnTextBoxUpdate(&convo->textbox, engine); vnTextBoxUpdate(&convo->textbox, engine);
queueUpdate(&convo->actionQueue, engine); queueUpdate(&convo->actionQueue, engine);
} }
void vnConversationRender(vnconversation_t *convo, shader_t *shader) { void vnConversationRender(
vnTextBoxRender(&convo->textbox, shader); vnconversation_t *convo, engine_t *engine, shader_t *shader
) {
vnTextBoxRender(&convo->textbox, shader,
0, engine->render.height - convo->textbox.height
);
} }
void vnConversationDispose(vnconversation_t *convo) { void vnConversationDispose(vnconversation_t *convo) {

View File

@ -38,9 +38,12 @@ void vnConversationUpdate(vnconversation_t *convo, engine_t *engine);
/** /**
* Renders the conversation, mostly just a wrapper for the textbox. * Renders the conversation, mostly just a wrapper for the textbox.
* @param convo Conversation to render. * @param convo Conversation to render.
* @param engine Engine to use for rendering.
* @param shader Shader to use while rendering. * @param shader Shader to use while rendering.
*/ */
void vnConversationRender(vnconversation_t *convo, shader_t *shader); void vnConversationRender(
vnconversation_t *convo, engine_t *engine, shader_t *shader
);
/** /**
* Dispose the conversation when finished. * Dispose the conversation when finished.

View File

@ -11,7 +11,6 @@ void vnTextBoxInit(vntextbox_t *box, font_t *font, texture_t *texture) {
box->font = font; box->font = font;
box->widthMax = 400; box->widthMax = 400;
box->text = NULL; box->text = NULL;
box->x = 0, box->y = 0;
box->linesMax = 3; box->linesMax = 3;
box->lineCurrent = 0; box->lineCurrent = 0;
box->state = 0; box->state = 0;
@ -78,15 +77,13 @@ void vnTextBoxUpdate(vntextbox_t *box, engine_t *engine) {
box->lineCurrent += box->linesMax; box->lineCurrent += box->linesMax;
} }
void vnTextBoxRender(vntextbox_t *box, shader_t *shader) { void vnTextBoxRender(vntextbox_t *box, shader_t *shader, float x, float y) {
int32_t charStart, charCount; int32_t charStart, charCount;
float yOffset; float yOffset;
if(box->text == NULL || box->state & VN_TEXTBOX_STATE_CLOSED) return; if(box->text == NULL || box->state & VN_TEXTBOX_STATE_CLOSED) return;
// Render the debug box. // Render the debug box.
box->frame.x = box->x; frameRender(&box->frame, shader, x, y);
box->frame.y = box->y;
frameRender(&box->frame, shader);
// Determine where we're rendering the indices up to. // Determine where we're rendering the indices up to.
charCount = (int32_t)box->textScroll; charCount = (int32_t)box->textScroll;
@ -116,7 +113,7 @@ void vnTextBoxRender(vntextbox_t *box, shader_t *shader) {
// Render the Text Box // Render the Text Box
shaderUsePosition(shader, shaderUsePosition(shader,
box->x + FRAME_BORDER_SIZE, box->y - yOffset + FRAME_BORDER_SIZE, 0, x + FRAME_BORDER_SIZE, y - yOffset + FRAME_BORDER_SIZE, 0,
0,0,0 0,0,0
); );
shaderUseTexture(shader, &box->font->texture); shaderUseTexture(shader, &box->font->texture);

View File

@ -52,8 +52,10 @@ void vnTextBoxUpdate(vntextbox_t *box, engine_t *engine);
* will not be ticked, use update to do this. * will not be ticked, use update to do this.
* @param box Box to render. * @param box Box to render.
* @param shader Shader to render to. * @param shader Shader to render to.
* @param x X position.
* @param y Y position.
*/ */
void vnTextBoxRender(vntextbox_t *box, shader_t *shader); void vnTextBoxRender(vntextbox_t *box, shader_t *shader, float x, float y);
/** /**
* Disposes a previously created Visual Novel Text Box. * Disposes a previously created Visual Novel Text Box.

View File

@ -97,5 +97,5 @@ void vnSceneRenderGui(vnscene_t *scene, engine_t *engine, shader_t *shader) {
shaderUseCamera(shader, &scene->camera); shaderUseCamera(shader, &scene->camera);
// Render Conversation Element // Render Conversation Element
vnConversationRender(&scene->conversation, shader); vnConversationRender(&scene->conversation, engine, shader);
} }