SDL渲染黑屏c++

SDL renders blackscreen c++

我按照教程进行操作,但呈现黑色 screen.Cant 设置背景颜色。

#include <SDL2/SDL.h>
#include <iostream>

using namespace std;

int main() {
    SDL_Window * window = nullptr;

    SDL_Surface * window_surface = nullptr;
    SDL_Surface * image_surface = nullptr;

    SDL_Init(SDL_INIT_VIDEO);

    window = SDL_CreateWindow("test_environment", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
    SDL_Renderer* renderer;

    image_surface = SDL_LoadBMP("image.bmp");
    window_surface = SDL_GetWindowSurface(window);

    bool is_running = true;
    SDL_Event event;
    renderer = SDL_CreateRenderer(window, -1, 0);
    while (is_running) {

        while (SDL_PollEvent(&event)) {

            if (event.type == SDL_QUIT) {
                is_running = false;
            }
        }
       
        SDL_RenderClear(renderer);
        SDL_SetRenderDrawColor(renderer, 255, 12, 22, 255);
        SDL_Rect rect{0,0,600,400};
        SDL_RenderFillRect(renderer, &rect);
        SDL_RenderPresent(renderer);
        SDL_Delay(16);
    }

    SDL_DestroyWindow(window);
    SDL_FreeSurface(image_surface);
    SDL_Quit();
}

这是因为您在设置绘图颜色之前清除了渲染器。每次在循环中添加 SDL_SetRenderDrawColor(renderer, 255,255,255,255); SDL_RenderClear(renderer);