Skip to content

Instantly share code, notes, and snippets.

@computermouth
Created February 27, 2018 06:53
Show Gist options
  • Save computermouth/18701c201e98d1ba07500c7aa7c341e1 to your computer and use it in GitHub Desktop.
Save computermouth/18701c201e98d1ba07500c7aa7c341e1 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <SDL2/SDL.h>
const int WIN_WIDTH = 640;
const int WIN_HEIGHT = 480;
int main(int argc, char **argv){
if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
printf("SDL_Init failed: %s\n", SDL_GetError());
return 1;
}
SDL_Window *win = SDL_CreateWindow("Rendering to a texture!", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, WIN_WIDTH, WIN_HEIGHT, 0);
SDL_Renderer *renderer = SDL_CreateRenderer(win, -1,
SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE);
//Make a target texture to render too
SDL_Texture *texTarget = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,
SDL_TEXTUREACCESS_TARGET, WIN_WIDTH, WIN_HEIGHT);
//Now render to the texture
for(int l = 0; l < 6000; l++){
SDL_SetRenderTarget(renderer, texTarget);
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
for(int i = 0; i < 4; i++)
for(int j = 0; j < 600; j++)
SDL_RenderDrawLine(renderer, i*100, i*100 + j, i*100 + 100, i*100 + 100+ j);
//Detach the texture
SDL_SetRenderTarget(renderer, NULL);
//Now render the texture target to our screen, but upside down
//~ SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texTarget, NULL, NULL);
//~ SDL_RenderCopyEx(renderer, texTarget, NULL, NULL, 0, NULL, SDL_FLIP_VERTICAL);
SDL_RenderPresent(renderer);
}
SDL_DestroyTexture(texTarget);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(win);
SDL_Quit();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment