|
- #ifndef NES_RENDER_H_
- #define NES_RENDER_H_
-
- #include "ppu.h"
- #include "overlay.h"
-
-
- typedef struct nes_Renderer_t {
- int (*init)(struct nes_Renderer_t*);
- void (*done)(struct nes_Renderer_t*);
- int (*render)(struct nes_Renderer_t*, nes_ppu*);
-
- void (*draw_last_frame)(struct nes_Renderer_t*, int dim);
- void (*draw_text)(struct nes_Renderer_t*, const char*, int x, int y);
- void (*text_size)(struct nes_Renderer_t*, const char*, int* w, int* h);
- void (*draw_done)(struct nes_Renderer_t*);
-
- Overlay overlay;
- void* data;
- } nes_Renderer;
-
- static inline int nes_render_init(nes_Renderer* rend) {
- return rend->init(rend);
- }
-
- static inline void nes_render_done(nes_Renderer* rend) {
- rend->done(rend);
- }
-
- static inline int nes_render(nes_Renderer* rend, nes_ppu* ppu) {
- return rend->render(rend, ppu);
- }
-
- static inline void nes_draw_last_frame(nes_Renderer* rend,
- int dim) {
- rend->draw_last_frame(rend, dim);
- }
-
- static inline void nes_text_size(nes_Renderer* rend,
- const char* str,
- int* w, int* h) {
- rend->text_size(rend, str, w, h);
- }
-
- static inline void nes_draw_text(nes_Renderer* rend,
- const char* str, int x, int y) {
- rend->draw_text(rend, str, x, y);
- }
-
- static inline void nes_draw_done(nes_Renderer* rend) {
- rend->draw_done(rend);
- }
-
-
- #endif // NES_RENDER_H_
|