initial scaffold structure
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#include "game.h"
|
||||
#include <skele/client/input.h>
|
||||
#include <skele/client/video.h>
|
||||
#include <skele/clock.h>
|
||||
#include <skele/skele.h>
|
||||
#include <stk/stk.h>
|
||||
|
||||
static uint8_t running = 1;
|
||||
|
||||
static void on_signal(void) { running = 0; }
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
skele_video_config_t video_cfg;
|
||||
uint64_t last, now, elapsed;
|
||||
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
skele_clock_init(on_signal);
|
||||
|
||||
if (skele_stk_setup() != SKELE_INIT_SUCCESS)
|
||||
return 1;
|
||||
|
||||
if (skele_init() != SKELE_INIT_SUCCESS) {
|
||||
skele_stk_teardown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
video_cfg.render_width = SKELE_DEFAULT_RENDER_WIDTH;
|
||||
video_cfg.render_height = SKELE_DEFAULT_RENDER_HEIGHT;
|
||||
video_cfg.window_width = 0;
|
||||
video_cfg.window_height = 0;
|
||||
video_cfg.flags = 0;
|
||||
|
||||
if (skele_video_init(video_cfg) != SKELE_INIT_SUCCESS) {
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
skele_video_set_title("game");
|
||||
|
||||
if (!game_init()) {
|
||||
skele_video_shutdown();
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
last = skele_time_ns();
|
||||
|
||||
while (running) {
|
||||
if (!skele_input_poll())
|
||||
break;
|
||||
|
||||
stk_poll();
|
||||
|
||||
now = skele_time_ns();
|
||||
elapsed = now - last;
|
||||
|
||||
if (elapsed >= skele_tick_ns) {
|
||||
game_tick();
|
||||
last = now;
|
||||
}
|
||||
|
||||
skele_video_present();
|
||||
}
|
||||
|
||||
game_shutdown();
|
||||
skele_video_shutdown();
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
#include "game.h"
|
||||
|
||||
uint8_t game_init(void) { return 1; }
|
||||
void game_shutdown(void) {}
|
||||
void game_tick(void) {}
|
||||
@@ -0,0 +1,75 @@
|
||||
#include "game.h"
|
||||
#include <skele/client/input.h>
|
||||
#include <skele/client/video.h>
|
||||
#include <skele/clock.h>
|
||||
#include <skele/skele.h>
|
||||
#include <stk/stk.h>
|
||||
|
||||
static uint8_t running = 1;
|
||||
|
||||
static void on_signal(void) { running = 0; }
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
skele_video_config_t video_cfg;
|
||||
uint64_t last, now, elapsed;
|
||||
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
skele_clock_init(on_signal);
|
||||
|
||||
if (skele_stk_setup() != SKELE_INIT_SUCCESS)
|
||||
return 1;
|
||||
|
||||
if (skele_init() != SKELE_INIT_SUCCESS) {
|
||||
skele_stk_teardown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
video_cfg.render_width = SKELE_DEFAULT_RENDER_WIDTH;
|
||||
video_cfg.render_height = SKELE_DEFAULT_RENDER_HEIGHT;
|
||||
video_cfg.window_width = 0;
|
||||
video_cfg.window_height = 0;
|
||||
video_cfg.flags = 0;
|
||||
|
||||
if (skele_video_init(video_cfg) != SKELE_INIT_SUCCESS) {
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
skele_video_set_title("game");
|
||||
|
||||
if (!game_init()) {
|
||||
skele_video_shutdown();
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
last = skele_time_ns();
|
||||
|
||||
while (running) {
|
||||
if (!skele_input_poll())
|
||||
break;
|
||||
|
||||
stk_poll();
|
||||
|
||||
now = skele_time_ns();
|
||||
elapsed = now - last;
|
||||
|
||||
if (elapsed >= skele_tick_ns) {
|
||||
game_tick();
|
||||
last = now;
|
||||
}
|
||||
|
||||
skele_video_present();
|
||||
}
|
||||
|
||||
game_shutdown();
|
||||
skele_video_shutdown();
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
#include "game.h"
|
||||
#include <skele/clock.h>
|
||||
#include <skele/skele.h>
|
||||
#include <stk/stk.h>
|
||||
|
||||
static uint8_t running = 1;
|
||||
|
||||
static void on_signal(void) { running = 0; }
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
uint64_t tick_start;
|
||||
uint64_t elapsed;
|
||||
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
skele_clock_init(on_signal);
|
||||
|
||||
if (skele_stk_setup() != SKELE_INIT_SUCCESS)
|
||||
return 1;
|
||||
|
||||
if (skele_init() != SKELE_INIT_SUCCESS) {
|
||||
skele_stk_teardown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!game_init()) {
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (running) {
|
||||
tick_start = skele_time_ns();
|
||||
|
||||
stk_poll();
|
||||
game_tick();
|
||||
|
||||
elapsed = skele_time_ns() - tick_start;
|
||||
if (elapsed < skele_tick_ns)
|
||||
skele_sleep_ns(skele_tick_ns - elapsed);
|
||||
}
|
||||
|
||||
game_shutdown();
|
||||
skele_stk_teardown();
|
||||
skele_shutdown();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user