/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include #include "../../file/asset.h" #include "../../display/shader.h" #include "../../display/primitive.h" #include "../../display/primitives/quad.h" #include "../../display/tileset.h" /** * Initializes the Card Renderer. * @param poker The poker game context. */ void pokerCardInit(poker_t *poker); /** * Returns the position a card "naturally" sits at for a given seat and slot. * * @param seat Seat that the card belongs to * @param slot Slot within the player/dealers' hand that the card belongs to. * @return A struct containing X, Z and YAW properties. */ pokerposition_t pokerCardGetPosition(uint8_t seat, uint8_t slot); /** * Render's a given card at the specified coordinates. Card is a reused quad * and is re-buffered to for every draw call. * * @param poker The poker game context. * @param card Card to render. * @param x X Position (world space). * @param y Y Position (world space). * @param z Z Position (world space). * @param pitch Pitch angle. * @param yaw Yaw angle. * @param roll Roll angle. */ void pokerCardRender(poker_t *poker, card_t card, float x, float y, float z, float pitch, float yaw, float roll ); /** * Render's a card at a given seat and slot. * @param poker The poker game context. * @param seat Seat the card is for. * @param card Card to render. * @param slot Slot the card is for. */ void pokerCardRenderForSeat(poker_t *poker, uint8_t seat, card_t card, uint8_t slot);