Runnable example
Draws a diagonal red line pixel by pixel on the screen using SDL_RenderDrawPoint .

main.c
#include <stdlib.h> #include <SDL2/SDL.h> #define WINDOW_WIDTH 600 int main(void) { SDL_Event event; SDL_Renderer *renderer; SDL_Window *window; int i; SDL_Init(SDL_INIT_VIDEO); SDL_CreateWindowAndRenderer(WINDOW_WIDTH, WINDOW_WIDTH, 0, &window, &renderer); SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0); SDL_RenderClear(renderer); SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); for (i = 0; i < WINDOW_WIDTH; ++i) SDL_RenderDrawPoint(renderer, i, i); SDL_RenderPresent(renderer); while (1) { if (SDL_PollEvent(&event) && event.type == SDL_QUIT) break; } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return EXIT_SUCCESS; }
GitHub upstream .
Compile and run:
gcc -std=c89 -Wextra -pedantic-errors -o main.out main.c -lSDL2 ./main.out
If you want to set a large rectangle of pixels at once, for example, the whole screen or sprite, use SDL_Texture + SDL_RenderCopy and possibly SDL_TEXTUREACCESS_STREAMING , since it will be much faster. Examples on:
- What is bleit in SDL?
- Rendering pixels from an array of RGB values ββin SDL 1.2?
Tested on libsdl 2.0.2, Ubuntu 15.10.
Ciro Santilli ζ°η ζΉι δΈεΏ 996ICU ε
ε δΊδ»Ά
source share