first pass with eggs de+ion framebuffer solution

This commit is contained in:
Shaun Inman 2023-03-19 22:05:09 -04:00
parent 19167959c0
commit 02a29bf4fe
10 changed files with 3134 additions and 627 deletions

View file

@ -20,12 +20,12 @@ void LOG_note(int level, const char* fmt, ...);
///////////////////////////////
#define FIXED_WIDTH 640
#define FIXED_HEIGHT 480
#define FIXED_BPP 2
#define FIXED_DEPTH FIXED_BPP * 8
#define FIXED_PITCH FIXED_WIDTH * FIXED_BPP
#define FIXED_SIZE FIXED_HEIGHT * FIXED_PITCH
#define FIXED_WIDTH 640
#define FIXED_HEIGHT 480
#define FIXED_BPP 2
#define FIXED_DEPTH (FIXED_BPP * 8)
#define FIXED_PITCH (FIXED_WIDTH * FIXED_BPP)
#define FIXED_SIZE (FIXED_PITCH * FIXED_HEIGHT)
#define HDMI_WIDTH 1280
#define HDMI_HEIGHT 720
@ -33,17 +33,18 @@ void LOG_note(int level, const char* fmt, ...);
#define HDMI_SIZE HDMI_HEIGHT * HDMI_PITCH
#define HDMI_MENU_WIDTH 856 // FIXED_WIDTH * FIXED_HEIGHT / HDMI_HEIGHT rounded up to nearest 8
#define PAGE_COUNT 2
#define PAGE_SCALE 2
#define PAGE_WIDTH FIXED_WIDTH * PAGE_SCALE
#define PAGE_HEIGHT FIXED_HEIGHT * PAGE_SCALE
#define PAGE_PITCH PAGE_WIDTH * FIXED_BPP
#define PAGE_SIZE PAGE_HEIGHT * PAGE_PITCH
#define PAGE_COUNT 2
#define PAGE_SCALE 3
#define PAGE_WIDTH (FIXED_WIDTH * PAGE_SCALE)
#define PAGE_HEIGHT (FIXED_HEIGHT * PAGE_SCALE)
#define PAGE_PITCH (PAGE_WIDTH * FIXED_BPP)
#define PAGE_SIZE (PAGE_PITCH * PAGE_HEIGHT)
#define VIRTUAL_WIDTH PAGE_WIDTH
#define VIRTUAL_HEIGHT PAGE_HEIGHT * PAGE_COUNT
#define VIRTUAL_PITCH PAGE_WIDTH * FIXED_BPP
#define VIRTUAL_SIZE VIRTUAL_HEIGHT * VIRTUAL_PITCH
///////////////////////////////
#define RGBA_MASK_AUTO 0x0, 0x0, 0x0, 0x0
#define RGBA_MASK_565 0xF800, 0x07E0, 0x001F, 0x0000
#define RGBA_MASK_8888 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000
///////////////////////////////
@ -98,6 +99,8 @@ enum {
SDL_Surface* GFX_init(int mode);
SDL_Surface* GFX_resize(int width, int height, int pitch);
void GFX_setScaleClip(int x, int y, int width, int height);
void GFX_setNearestNeighbor(int enabled);
int GFX_autosize(SDL_Surface** screen, int* dirty);
void GFX_setMode(int mode);
void GFX_clear(SDL_Surface* screen);