Moving some code around

This commit is contained in:
2021-05-23 22:27:19 -07:00
parent b0dce455f0
commit 76307d2746
19 changed files with 205 additions and 75 deletions

View File

@ -7,13 +7,17 @@
#include "poker.h"
void pokerInit(poker_t *poker) {
void pokerInit(poker_t *poker, render_t *render) {
// Load the main shader
assetShaderLoad(&poker->shader,
"shaders/textured.vert", "shaders/textured.frag"
);
// Load the main font
assetFontLoad(&poker->font, "fonts/opensans/OpenSans-Bold.ttf");
// Initialize the render stuffs.
pokerFrameInit(poker, render);
pokerWorldInit(poker);
pokerCardInit(poker);
pokerPlayerInit(poker);
@ -33,15 +37,15 @@ void pokerUpdate(poker_t *poker, render_t *render) {
}
// Rendering
cameraPerspective(&poker->camera, 20,render->width/render->height,0.001,1000);
shaderUse(&poker->shader);
shaderUseCamera(&poker->shader, &poker->camera);
pokerFrameWorld(poker, render);
pokerWorldRender(poker);
for(uint8_t pi = 0; pi < POKER_PLAYER_COUNT; pi++) {
uint8_t seat = pokerPlayerGetSeatForPlayer(pi);
pokerPlayerRender(poker, poker->players + pi, seat);
}
pokerFrameGui(poker, render);
}
void pokerDispose(poker_t * poker) {

View File

@ -7,20 +7,25 @@
#pragma once
#include <dawn/dawn.h>
#include "round/match.h"
#include "render/frame.h"
#include "render/world.h"
#include "render/card.h"
#include "render/player.h"
#include "render/look.h"
#include "../file/asset.h"
#include "../display/shader.h"
#include "../display/camera.h"
#include "../display/gui/font.h"
/**
* Initializes the poker context for the first time.
* @param poker Poker context to initialize.
* @param render Rendering context.
*/
void pokerInit(poker_t *poker);
void pokerInit(poker_t *poker, render_t *render);
/**
* Updates the poker context.

53
src/poker/render/frame.c Normal file
View File

@ -0,0 +1,53 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "frame.h"
primitive_t bruh;
void pokerFrameInit(poker_t *poker, render_t *render) {
frameBufferInit(&poker->frameWorld, render->width, render->height);
frameBufferInit(&poker->frameGui, render->width, render->height);
fonttextinfo_t info;
char *text = "Hello\n World";
info = fontGetTextInfo(&poker->font, text);
fontmeasure_t *measure = fontTextMeasure(&poker->font, text, &info, 16);
fontTextInitFromMeasure(&poker->font, &bruh, text, &info, measure);
fontTextMeasureDispose(measure);
}
void pokerFrameWorld(poker_t *poker, render_t *render) {
// Update the frame buffer
frameBufferResize(&poker->frameWorld, render->width, render->height);
// Correct the aspect on the perspective camera for the world
cameraPerspective(&poker->cameraWorld, 20,
render->width / render->height,
0.001, 1000
);
shaderUseCamera(&poker->shader, &poker->cameraWorld);
}
void pokerFrameGui(poker_t *poker, render_t *render) {
// Update FB
frameBufferResize(&poker->frameGui, render->width, render->height);
// frameBufferUse(&poker->frameGui, true);
// Correct aspect on the ortho camera
cameraOrtho(&poker->cameraGui,
0, render->width,
render->height, 0,
0.01, 100
);
cameraLookAt(&poker->cameraGui, 0, 0, 5, 0, 0, 0);
shaderUseCamera(&poker->shader, &poker->cameraGui);
shaderUsePosition(&poker->shader, 0,0,0, 0,0,0);
shaderUseTexture(&poker->shader, &poker->font.texture);
primitiveDraw(&bruh, 0, -1);
}

41
src/poker/render/frame.h Normal file
View File

@ -0,0 +1,41 @@
/**
* 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 "../../display/framebuffer.h"
#include "../../display/primitive.h"
#include "../../display/texture.h"
#include "../../display/shader.h"
#include "../../display/camera.h"
#include "../../display/primitives/quad.h"
#include "../../display/gui/font.h"
/**
* Initializes the various frame buffers for the poker game.
*
* @param poker Poker game to initialize for
* @param render Rendering context.
*/
void pokerFrameInit(poker_t *poker, render_t *render);
/**
* Bind the world frame, this will also correct the camera angles.
*
* @param poker Poker game context.
* @param render Rendering engine context.
*/
void pokerFrameWorld(poker_t *poker, render_t *render);
/**
* Bind the frame for GUI rendering.
*
* @param poker Poker game context.
* @param render Rendering engine context.
*/
void pokerFrameGui(poker_t *poker, render_t *render);

8
src/poker/render/talk.c Normal file
View File

@ -0,0 +1,8 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "talk.h"

11
src/poker/render/talk.h Normal file
View File

@ -0,0 +1,11 @@
/**
* 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 "../../display/gui/font.h"
#include "../../display/primitive.h"

View File

@ -32,7 +32,7 @@ void pokerDealInit(poker_t *poker) {
}
// Hard look at the dealer
pokerLookAtPlayer(&poker->camera, POKER_SEAT_DEALER);
pokerLookAtPlayer(&poker->cameraWorld, POKER_SEAT_DEALER);
// Shuffle the deck
for(x = 0; x < CARD_DECK_SIZE - 1; x++) {

View File

@ -8,6 +8,10 @@
void pokerMatchInit(poker_t *poker) {
uint8_t x;
// Look at the dealer
pokerLookAtPlayer(&poker->cameraWorld, POKER_SEAT_DEALER);
// Reset the main game state. This does not init the round.
poker->blindBig = POKER_BLIND_BIG_DEFAULT;
poker->blindSmall = POKER_BLIND_SMALL_DEFAULT;
@ -17,6 +21,8 @@ void pokerMatchInit(poker_t *poker) {
poker->players[x].state = 0x00;
poker->players[x].chips = POKER_PLAYER_CHIPS_DEFAULT;
}
printf("Match start\n");
}
void pokerMatchUpdate(poker_t *poker) {

View File

@ -8,6 +8,7 @@
#pragma once
#include <dawn/dawn.h>
#include "deal.h"
#include "../render/look.h"
/**
* Init the poker match round.