Search code examples
c++sdl

SDL2 SDL_GetRenderDrawColor only able to display black


I am able to make a window with SDL2 and C++ that has a black background, as soon as I change one of the arguments from SDL_GetRenderDrawColor from 0 to anything else I get this error:

Error (active) E0167 argument of type "int" is incompatible with parameter of type "Uint8 *"

this is my code:

#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;
}

I am working with Visual Studio 2019 Community, I already succesfully set up SDL2 in Visual Studio at my Workplace but doing the same things at home yielded this error.


Solution

  • If you want to set the render draw color, you should use SDL_SetRenderDrawColor. SDL_GetRenderDrawColor is used to get the render draw color.