// 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 "../engine/engine.h"
#include "../poker/poker.h"

#include "../display/camera.h"
#include "../display/shader.h"
#include "../display/gui/font.h"
#include "../display/primitives/quad.h"
#include "../display/primitives/cube.h"

/**
 * Initialize the game context.
 * 
 * @return True if successful, otherwise false.
 */
bool gameInit(game_t *game);

/**
 * Tick the main game loop.
 * 
 * @param platformDelta The platform tick delta between the last render.
 * @return True if successful, false if safe exit requested..
 */
bool gameUpdate(game_t *game, float platformDelta);

/**
 * Cleanup the game instance.
 */
void gameDispose(game_t *game);