Compare commits
1 Commits
main
...
basic_grap
| Author | SHA1 | Date | |
|---|---|---|---|
| a254b392f8 |
3
games/example/README.md
Normal file
3
games/example/README.md
Normal 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.
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
6
lib/include/hydrogen/graphics/graphics.h
Normal file
6
lib/include/hydrogen/graphics/graphics.h
Normal 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
|
||||
25
lib/include/hydrogen/graphics/window.h
Normal file
25
lib/include/hydrogen/graphics/window.h
Normal 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
|
||||
0
lib/src/graphics/window.c
Normal file
0
lib/src/graphics/window.c
Normal file
Reference in New Issue
Block a user