diff options
author | Michael Pavone <pavone@retrodev.com> | 2018-11-16 19:56:24 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2018-11-16 19:56:24 -0800 |
commit | 909f6628edf5b5446586321c0a4df5045f2955c8 (patch) | |
tree | 6d304707aa635b3e257e5516e3eb04bef8e18b3b /vdp.c | |
parent | 2bff2ff8721d68b27720ba9a6ee8f03fab235a98 (diff) |
Small cleanup of vdp_context struct layout and removal of separately allocated buffers
Diffstat (limited to 'vdp.c')
-rw-r--r-- | vdp.c | 16 |
1 files changed, 3 insertions, 13 deletions
@@ -19,7 +19,6 @@ #define MAP_BIT_H_FLIP 0x800 #define MAP_BIT_V_FLIP 0x1000 -#define SCROLL_BUFFER_SIZE 32 #define SCROLL_BUFFER_MASK (SCROLL_BUFFER_SIZE-1) #define SCROLL_BUFFER_DRAW (SCROLL_BUFFER_SIZE/2) @@ -138,13 +137,9 @@ static void update_video_params(vdp_context *context) static uint8_t color_map_init_done; -void init_vdp_context(vdp_context * context, uint8_t region_pal) +vdp_context *init_vdp_context(uint8_t region_pal) { - memset(context, 0, sizeof(*context)); - context->vdpmem = malloc(VRAM_SIZE); - memset(context->vdpmem, 0, VRAM_SIZE); - /* - */ + vdp_context *context = calloc(1, sizeof(vdp_context) + VRAM_SIZE); if (headless) { context->output = malloc(LINEBUF_SIZE * sizeof(uint32_t)); context->output_pitch = 0; @@ -152,10 +147,6 @@ void init_vdp_context(vdp_context * context, uint8_t region_pal) context->cur_buffer = FRAMEBUFFER_ODD; context->fb = render_get_framebuffer(FRAMEBUFFER_ODD, &context->output_pitch); } - context->linebuf = malloc(LINEBUF_SIZE + SCROLL_BUFFER_SIZE*2); - memset(context->linebuf, 0, LINEBUF_SIZE + SCROLL_BUFFER_SIZE*2); - context->tmp_buf_a = context->linebuf + LINEBUF_SIZE; - context->tmp_buf_b = context->tmp_buf_a + SCROLL_BUFFER_SIZE; context->sprite_draws = MAX_DRAWS; context->fifo_write = 0; context->fifo_read = -1; @@ -250,12 +241,11 @@ void init_vdp_context(vdp_context * context, uint8_t region_pal) if (!headless) { context->output = (uint32_t *)(((char *)context->fb) + context->output_pitch * context->border_top); } + return context; } void vdp_free(vdp_context *context) { - free(context->vdpmem); - free(context->linebuf); free(context); } |