/* SPDX-License-Identifier: ISC */ /* * shadermeh.h * * Copyright (C) 2022 David Oberhollenzer */ #ifndef SHADERMEH_H #define SHADERMEH_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define AUDIO_SAMPLES (4096) #define AUDIO_BUFFER_SIZE (sample_rate * 3) #define AUDIO_FFT_SIZE (AUDIO_SAMPLES * 2) #define AUDIO_CHANNELS (2) typedef struct { Window wnd; GLXContext gl; bool visible; } window; window *window_create(unsigned int width, unsigned int height, const char *caption); void window_make_current(window *wnd); void window_swap_buffers(window *wnd); void window_set_vsync(window *wnd, int enable); void window_destroy(window *wnd); void window_show(window *wnd); void window_hide(window *wnd); bool window_handle_events(void); GLuint shader_program_load(const char *fsh); int shader_program_get_build_status(GLuint prog); void shader_program_print_info_log(GLuint prog); #endif /* SHADERMEH_H */