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);
我按照教程进行操作,但呈现黑色 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);