§ Использование
Здесь можно сразу скачать шаблон mingw SDL2 для WindowsЗависимости:
- Должен быть установлен MinGW32/64
- Файл должен идти с SDL2.dll
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
Ссылка на установку SDL2
Необходимо выбрать SDL2-devel-2.0.20-mingw.tar.gz (MinGW 32/64-bit)
Из папки с i686 сделать распаковку в c:\MinGW
Не забыть прописать новые path=c:\MinGW\bin
§ Код
1#define SDL_MAIN_HANDLED 2#include <SDL2/SDL.h> 3 4#include <math.h> 5#include "lib.cc" 6 7int cursor = 0; 8 9// Объявление 10SDL_AudioSpec sdl_audio = {44100, AUDIO_U8, 2, 0, 2048}; 11 12// Обработчик 13void audio_callback(void *data, unsigned char *stream, int len) 14{ 15 for (int i = 0; i < len; i += 2) { 16 17 float v1 = sin((float)cursor*0.020)*31. + 127; 18 float v2 = sin((float)cursor*0.021)*31. + 127; 19 20 stream[i] = v1; 21 stream[i+1] = v2; 22 23 cursor += 1; 24 } 25} 26 27// Главная работа с окном и данными 28int main (int argc, char** args) { 29 30 lib* app = new lib(320, 180, 2, 50); 31 32 // Инициализировать аудио 33 // -------------------------------------- 34 35 sdl_audio.callback = audio_callback; 36 SDL_OpenAudio(&sdl_audio, 0); 37 SDL_PauseAudio(0); 38 39 // -------------------------------------- 40 while (app->handler()) { 41 42 int kbcode = app->get_kbcode(); 43 if (kbcode == SDL_SCANCODE_ESCAPE) break; 44 45 for (int y = 0; y < 180; y++) 46 for (int x = 0; x < 320; x++) { 47 app->pset(x, y, x*y + app->frameid()); 48 } 49 50 app->line(0,0,320,180,0xffffff); 51 app->circle(160,90,50,0xffff00); 52 app->circlef(160,90,25,0x00ff00); 53 app->update(); 54 } 55 // -------------------------------------- 56 57 return 0; 58};