首页 > 解决方案 > SDL2 SDL_GetRenderDrawColor 只能显示黑色

问题描述

我可以使用具有黑色背景的 SDL2 和 C++ 创建一个窗口,只要我将 SDL_GetRenderDrawColor 中的一个参数从 0 更改为其他任何值,我就会收到此错误:

错误(活动)E0167“int”类型的参数与“Uint8 *”类型的参数不兼容

这是我的代码:

#include <stdio.h>
#include <SDL.h>
#undef main

int main(int argc, char** argv[]) {

    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Window * window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
    SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);

    bool quit = false;

    while (!quit) {
        SDL_Delay(10);
        SDL_Event event;
        SDL_PollEvent(&event);

        switch (event.type) {

        case SDL_QUIT: quit = true; break;

        }

        SDL_GetRenderDrawColor(renderer, 255, 0, 0, 0);
        SDL_RenderClear(renderer);

        SDL_RenderPresent(renderer);

    }

    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

我正在使用 Visual Studio 2019 社区,我已经在工作场所的 Visual Studio 中成功设置了 SDL2,但是在家里做同样的事情会产生这个错误。

标签: c++sdl

解决方案


如果要设置渲染绘制颜色,则应使用SDL_SetRenderDrawColor. SDL_GetRenderDrawColor用于获取渲染绘制颜色。


推荐阅读