nesemu/gui/pattern_window.h

53 lines
1.3 KiB
C

//
// Created by william on 6/14/24.
//
#ifndef NES_EMULATOR_PATTERN_WINDOW_H
#define NES_EMULATOR_PATTERN_WINDOW_H
#include "../include/types.h"
#include "components/window.h"
#define PW_SCALE 2
#define PW_ROW_TILE_COUNT 16
#define PW_PALETTE_MAX 3
typedef struct nes_pattern_window {
Window window;
SDL_Texture *texture;
byte palette;
} PatternWindow;
/**
* Creates a pattern window instance.
* @return A reference to the created window instance
*/
PatternWindow *pattern_window_create(int *window_id);
/**
* Destroys a pattern window instance.
* @param window A reference to the window to destroy
*/
void pattern_window_destroy(PatternWindow *window);
/**
* Updates the content of a pattern window with the current data from the ROM mapper.
* @param window A reference to the window to update
*/
void pattern_window_update(PatternWindow *window);
/**
* Renders a pattern window to the screen.
* @param window A reference to the window to render
*/
void pattern_window_render(PatternWindow *window);
/**
* Sends a key up event to a pattern window.
* @param window A reference to the window to send the event to
* @param keycode The code of the key of the event
*/
void pattern_window_key_up(PatternWindow *window, SDL_KeyCode keycode);
#endif //NES_EMULATOR_PATTERN_WINDOW_H