SDL2 не будет правильно рисовать прямоугольники - PullRequest
0 голосов
/ 25 сентября 2018

Я создаю окно и рисую прямоугольник, но по какой-то причине вместо рисования прямоугольника экран просто меняется на этот цвет.Я приложил фотографию того, как выглядит окно, и я приложу исходный код.

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

using namespace std;
int SCREEN_WIDTH = 650;
int SCREEN_HEIGHT = 650;

int main() {
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;

        return 1;
    }

    SDL_Window *window = SDL_CreateWindow("Cells", 100, 100, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (window == nullptr) {
        std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;

        SDL_Quit();

        return 1;
    }

    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (renderer == nullptr) {
        std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;

        SDL_DestroyWindow(window);
        SDL_Quit();

        return 1;
    }

    SDL_Event event;
    bool quit = false;

    while (!quit) {
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                quit = true;
            }
        }

        SDL_RenderClear(renderer);
        // renderTextures
        SDL_Rect fillRect = { 122, 122, 122, 122};
        SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
        SDL_RenderFillRect(renderer, &fillRect);
        SDL_RenderPresent(renderer);
    }

    return 0;
}

Неправильно рисует

1 Ответ

0 голосов
/ 25 сентября 2018

SDL_RenderClear использует текущий цвет рисования, который вы изменили, так что ваш прозрачный цвет и цвет прямоугольника одинаковы.Установите другой чистый цвет (тот, который вы хотите на фоне, где больше ничего не рисуется), например,

    SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
    SDL_RenderClear(renderer);
    // now draw your rectangles with different col
...