#include #include #include #include #include "jshader.h" #include #define WIDTH 384 #define HEIGHT 240 int main(int argc, char **argv) { SDL_Init(SDL_INIT_EVERYTHING); SDL_Window *win = SDL_CreateWindow("Shaders i tal", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WIDTH*3, HEIGHT*3, 0); SDL_SetHint(SDL_HINT_RENDER_DRIVER, "opengl"); SDL_Renderer *renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE); SDL_Texture *texTarget = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, WIDTH, HEIGHT); std::ifstream f("crtpi.glsl"); std::string source((std::istreambuf_iterator(f)), std::istreambuf_iterator()); shader::init(win, texTarget, source.c_str()); // Carreguem una imatge pa ficar algo SDL_Texture *bmpTex = SDL_CreateTextureFromSurface(renderer, SDL_LoadBMP("pang.bmp")); bool should_exit = false; while (!should_exit) { SDL_Event e; while ( SDL_PollEvent(&e) ) { if ( e.type == SDL_QUIT || ( e.type == SDL_KEYDOWN && e.key.keysym.sym == SDLK_ESCAPE ) ) { should_exit = true; } } SDL_SetRenderTarget(renderer, texTarget); SDL_RenderCopy(renderer, bmpTex, NULL, NULL); shader::render(); } SDL_Quit(); return 0; }