可运行示例
使用 . 在屏幕上逐像素绘制对角红线SDL_RenderDrawPoint
。

主程序
#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 上游.
编译并运行:
gcc -std=c89 -Wextra -pedantic-errors -o main.out main.c -lSDL2
./main.out
如果您想一次设置一个大的像素矩形,例如整个屏幕或一个精灵,请使用SDL_Texture
+SDL_RenderCopy
和可能SDL_TEXTUREACCESS_STREAMING
,因为这样会快得多。示例在:
在 libsdl 2.0.2、Ubuntu 15.10 上测试。