43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
|
//
|
||
|
// Created by william on 12/07/24.
|
||
|
//
|
||
|
|
||
|
#ifndef NES_EMULATOR_PATTERN_DISPLAY_H
|
||
|
#define NES_EMULATOR_PATTERN_DISPLAY_H
|
||
|
|
||
|
#include <SDL.h>
|
||
|
#include "../include/types.h"
|
||
|
|
||
|
#define PATTERN_SIZE 8
|
||
|
#define PATTERN_BORDER_WIDTH 1
|
||
|
#define PATTERN_BORDER_COLOR 0xff2223b2
|
||
|
#define PATTERN_DRAW_SIZE (PATTERN_SIZE + PATTERN_BORDER_WIDTH)
|
||
|
|
||
|
typedef unsigned int pixel;
|
||
|
|
||
|
typedef struct pattern_tile {
|
||
|
byte data_low[8];
|
||
|
byte data_high[8];
|
||
|
} PatternTile;
|
||
|
|
||
|
typedef struct pattern_display {
|
||
|
SDL_Texture *texture;
|
||
|
PatternTile *tiles;
|
||
|
int width;
|
||
|
int height;
|
||
|
} PatternDisplay;
|
||
|
|
||
|
static inline int pattern_display_get_size(int tile_count) {
|
||
|
return tile_count * PATTERN_DRAW_SIZE + PATTERN_BORDER_WIDTH;
|
||
|
}
|
||
|
|
||
|
void pattern_display_init(PatternDisplay *display, SDL_Renderer *renderer, int tiles_x, int tiles_y);
|
||
|
|
||
|
void pattern_display_uninit(PatternDisplay *display);
|
||
|
|
||
|
void pattern_display_build(PatternDisplay *display, byte *memory);
|
||
|
|
||
|
void pattern_display_render(PatternDisplay *display, SDL_Renderer *renderer);
|
||
|
|
||
|
#endif //NES_EMULATOR_PATTERN_DISPLAY_H
|