Compare commits

1 Commits

5 changed files with 85 additions and 2 deletions

3
games/example/README.md Normal file
View File

@@ -0,0 +1,3 @@
# Example Demo
This is a sample program that uses the library to draw a single quad to the screen in a window.

View File

@@ -1,7 +1,56 @@
#include <hydrogen/hydrogen.h>
#include <hydrogen/graphics/graphics.h>
static const u16 WINDOW_WIDTH = 640;
static const u16 WINDOW_HEIGHT = 480;
static const u16 QUAD_WIDTH = 50;
static const u16 QUAD_HEIGHT = 50;
static const u16 QUAD_X = WINDOW_WIDTH/2 - QUAD_WIDTH/2;
static const u16 QUAD_Y = WINDOW_HEIGHT/2 - QUAD_HEIGHT/2;
static const u64 QUAD_RGBA = 0xDD77CCFF;
int main(int argc, char **argv) {
test();
return 0;
// Initialize Library
u8 success = hydrogen_init();
if (!success) {
//TODO: Add some simple error-handling code
return -1;
}
// Create Window
HWindowParams params = hwindow_params();
params.width = WINDOW_WIDTH;
params.height = WINDOW_HEIGHT;
params.shown = true;
// Ownership of params is passed here, so we don't need to destroy it
HWindow *window = hwindow_create(params);
if(!window)
goto error;
// Obtain Renderer
HRenderer *renderer = hrenderer_obtain(window);
// Add Quad to Scene
Quad *quad = create_quad(QUAD_WIDTH, QUAD_HEIGHT, QUAD_RGBA);
quad_set_position(quad, QUAD_X, QUAD_Y);
hrenderer_add(quad_render_object(renderer));
// Render
hrenderer_render(renderer);
// Kill Application
hcore_delay(3000);
hrenderer_release(renderer);
hwindow_destroy(window);
error:
// An error occurred, do some cleanup
if (window) {
if (renderer) {
hrenderer_release(renderer);
}
hwindow_destroy(window);
}
}

View File

@@ -0,0 +1,6 @@
#ifndef HYDROGEN_GRAPHICS_CORE_H
#define HYDROGEN_GRAPHICS_CORE_H
#include <hydrogen/graphics/window.h>
#endif//HYDROGEN_GRAPHICS_CORE_H

View File

@@ -0,0 +1,25 @@
#ifndef HYDROGEN_GRAPHICS_WINDOW_H
#define HYDROGEN_GRAPHICS_WINDOW_H
#include <hydrogen/hydrogen.h>
typedef struct HWindowParams {
u16 width;
u16 height;
u8 shown;
} HWindowParams;
inline HWindowParams hwindow_params() {
HWindowParams params;
params.width = 640;
params.height = 480;
params.shown = false;
return params;
}
typedef struct HWindow HWindow;
HWindow *hwindow_create(HWindowParams params);
void hwindow_destroy(HWindow *window);
#endif//HYDROGEN_GRAPHICS_WINDOW_H

View File