0
SDL_Surface
のpixels
メンバーからキャストされたunsigned char
ピクセル配列に色付きの矩形を描画する方法を解明しようとしています。SDL_Surfaceピクセルで長方形を描く
次の関数は、前者を行うことになっている。
void draw_rectangle(SDL_Surface* surface, int x, int y, int width, int height)
{
SDL_LockSurface(surface);
//Make each pixel black
std::vector<uint8_t> pixels(surface->h * surface->pitch, 0);
for (int dy = y; dy < height; dy++) {
for (int dx = x; dx < width; dx++) {
pixels[dx + dy] = 0;
pixels[dx + dy + 1] = 255;
pixels[dx + dy + 2] = 0;
}
}
memcpy(surface->pixels, pixels.data(), surface->pitch * surface->h);
SDL_UnlockSurface(surface);
}
それが動作するが、画面にテクスチャをテクスチャに表面修飾変換SDL_CreateTextureFromSurface
を使用してコピーし、それをテストする場合、それは一つだけを表示します緑色画素:私は私のポインタ演算が間違っていたことに気づいている