Added grid cell alignment

This commit is contained in:
2021-09-12 20:32:30 -07:00
parent 8d69d12728
commit 8d4df83473
8 changed files with 199 additions and 42 deletions

View File

@ -8,6 +8,8 @@
#include "pokerplayerui.h"
void pokerPlayerUiInit(pokerplayerui_t *ui) {
gridchild_t *child;
labelInit(&ui->label);
frameBufferInit(&ui->frame,
POKER_PLAYER_UI_IMAGE_RESOLUTION, POKER_PLAYER_UI_IMAGE_RESOLUTION
@ -16,6 +18,22 @@ void pokerPlayerUiInit(pokerplayerui_t *ui) {
0, 0, 0, 1,
POKER_PLAYER_UI_IMAGE_SIZE, POKER_PLAYER_UI_IMAGE_SIZE, 1, 0
);
// Grid
gridInit(&ui->grid);
gridAddBreakpoint(&ui->grid, -1, 2, 2, 0, 0);
// Player UI Image
child = gridAddChild(&ui->grid);
gridChildAddBreakpoint(child, 1,0, 1,2);
// Chips
child = gridAddChild(&ui->grid);
gridChildAddBreakpoint(child, 0,0, 1,1);
// Title.
child = gridAddChild(&ui->grid);
gridChildAddBreakpoint(child, 0,1, 1,1);
}
void pokerPlayerUiUpdate(
@ -62,28 +80,50 @@ void pokerPlayerUiUpdate(
void pokerPlayerUiRender(
pokerplayerui_t *ui, pokergame_t *game, shader_t *shader, font_t *font,
engine_t *engine,
int32_t playerIndex, float x, float y
) {
pokerplayer_t *player;
char buffer[32];
float scale;
align_t align;
float gx, gy, gw, gh, sCol, sRow;
scale = fontGetScale(FONT_SIZE_DEFAULT);
player = game->poker.players + playerIndex;
// Render Face
shaderUseTexture(shader, &ui->frame.texture);
shaderUsePosition(shader, x - POKER_PLAYER_UI_IMAGE_SIZE,y,0, 0,0,0);
primitiveDraw(&ui->quad, 0, -1);
// Resize the grid
align = alignmentGet(
ALIGN_POS_END | ALIGN_SIZE_ORIGINAL, ALIGN_POS_START | ALIGN_SIZE_ORIGINAL,
engine->render.width, engine->render.height,
300, POKER_PLAYER_UI_IMAGE_SIZE, -1, -1
);
gridSetSize(
&ui->grid, engine->render.width, engine->render.height,
align.width, align.height,
align.x, align.y
);
// Move everything left a bit.
x -= POKER_PLAYER_UI_IMAGE_SIZE + POKER_PLAYER_UI_PADDING;
y += (POKER_PLAYER_UI_IMAGE_SIZE - (FONT_LINE_HEIGHT * scale * 2)) / 2.0f;
// Render face
gridGetChildSize(&ui->grid, ui->grid.breakpointCurrent, ui->grid.children+0,
&sCol, &sRow, &gx, &gy, &gw, &gh
);
shaderUseTexture(shader, &ui->frame.texture);
shaderUsePosition(shader, gx, gy, 0, 0,0,0);
primitiveDraw(&ui->quad, 0, -1);
// Render chips
sprintf(buffer, "$%i", player->chips);
ui->label.maxWidth = -1;
labelSetText(&ui->label, font, buffer);
labelRender(&ui->label, shader, x - ui->label.info.width, y);
align = gridAlignChild(
&ui->grid, ui->grid.breakpointCurrent, ui->grid.children + 1, &sCol, &sRow,
ALIGN_POS_END | ALIGN_SIZE_ORIGINAL, ALIGN_POS_START | ALIGN_SIZE_ORIGINAL,
ui->label.info.width, ui->label.info.height
);
labelRender(&ui->label, shader, align.x, align.y);
// Render state
if(player->state & POKER_PLAYER_STATE_OUT) {
@ -98,9 +138,12 @@ void pokerPlayerUiRender(
sprintf(buffer, "Whatever");
}
labelSetText(&ui->label, font, buffer);
labelRender(&ui->label, shader,
x - ui->label.info.width, y + scale * FONT_LINE_HEIGHT
align = gridAlignChild(
&ui->grid, ui->grid.breakpointCurrent, ui->grid.children + 2, &sCol, &sRow,
ALIGN_POS_END | ALIGN_SIZE_ORIGINAL, ALIGN_POS_START | ALIGN_SIZE_ORIGINAL,
ui->label.info.width, ui->label.info.height
);
labelRender(&ui->label, shader, align.x, align.y);
}
void pokerPlayerUiDispose(pokerplayerui_t *ui) {

View File

@ -16,6 +16,9 @@
#include "../../../display/camera.h"
#include "../../../vn/vncharacter.h"
#include "../../../ui/grid.h"
#include "../../../ui/align.h"
void pokerPlayerUiInit(pokerplayerui_t *ui);
void pokerPlayerUiUpdate(
@ -25,6 +28,7 @@ void pokerPlayerUiUpdate(
void pokerPlayerUiRender(
pokerplayerui_t *ui, pokergame_t *game, shader_t *shader, font_t *font,
engine_t *engine,
int32_t playerIndex, float x, float y
);

View File

@ -40,9 +40,9 @@ void pokerUiRender(pokergame_t *pokerGame, engine_t *engine) {
if(i == POKER_PLAYER_HUMAN_INDEX) continue;
ui = pokerGame->ui.player + j;
pokerPlayerUiRender(ui, pokerGame,
&pokerGame->assets.shader, &pokerGame->assets.font, i,
engine->render.width, j * 75.0f
pokerPlayerUiRender(
ui, pokerGame, &pokerGame->assets.shader, &pokerGame->assets.font, engine,
i, engine->render.width, j * 75.0f
);
j++;
}