#ifndef MANDELBROT_H
#define MANDELBROT_H
#include "SDL3/SDL.h"
// TODO: GPU shadering option
// TODO: flexible window size
// TODO: maybe? change colors
#define WINDOW_TITLE "Mandelbrot Visualization"
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
typedef struct position_s {
double x_min;
double x_max;
double y_min;
double y_max;
} position_t;
typedef struct state_s {
SDL_Window* window;
SDL_Surface* surface;
SDL_Renderer* renderer;
int num_threads;
int max_iteration;
} state_t;
// math.c
int mandelbrot_iterations(double cr, double ci, int max_iter);
void calculate_points(position_t* pos);
void mandelbrot_at_point(double cr, double ci, int* iter_out, double* zr_out, double* zi_out);
// draw.c
// TODO: color struct or something
void get_color(int iter, int max_iter, int* r, int* g, int* b);
void draw_points(SDL_Surface* surface);
#endif