23 lines
892 B
C
23 lines
892 B
C
#pragma once
|
|
#include <stdlib.h>
|
|
#include <stdint.h>
|
|
|
|
typedef struct {
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t bpp;
|
|
uint32_t pitch;
|
|
void *addr;
|
|
void *buffer;
|
|
size_t size;
|
|
} gfx_context;
|
|
|
|
#define RGB(r, g, b) (((uint32_t) (r<<16) + (g<<8) + (b)))
|
|
|
|
void putpixel(gfx_context *ctx, uint64_t x, uint64_t y, uint32_t clr);
|
|
void draw_line(gfx_context *ctx, uint64_t x0, uint64_t x1, uint64_t y0, uint64_t y1, uint32_t clr);
|
|
void draw_rect(gfx_context *ctx, uint64_t x, uint64_t y, uint64_t width, uint64_t height, uint32_t clr);
|
|
void fill_rect(gfx_context *ctx, uint64_t x, uint64_t y, uint64_t width, uint64_t height, uint32_t clr);
|
|
void putCharacter(gfx_context *ctx, uint64_t x, uint64_t y, uint32_t clr_fg, uint32_t clr_bg, char c);
|
|
void flip(gfx_context *ctx);
|
|
gfx_context *framebuffer_make_subcontext(gfx_context *ctx, uint64_t x, uint64_t y, uint64_t width, uint64_t height); |