SDL2 CreateRenderer выдает ошибку Invalid Window

Мой текущий код выглядит следующим образом:

#include <iostream>
#include "SDL.h"
#include "SDL_image.h"

int main(int argc, char **argv) {
    if (SDL_Init(SDL_INIT_EVERYTHING != 0)) {
        std::cout << "SDL_Init() Error: " << SDL_GetError() << std::endl;
        std::cin.get();
        return 1;
    }

    SDL_Window *win = SDL_CreateWindow("RandomSDL2", 100, 100, 1280, 720, SDL_WINDOW_SHOWN);
    if (win = nullptr) {
        std::cout << "SDL_CreateWindow() Error: " << SDL_GetError() << std::endl;
        std::cin.get();
        return 1;
    }

    SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (ren == nullptr) {
        std::cout << "SDL_CreateRenderer() Error: " << SDL_GetError() << std::endl;
        std::cin.get();
        return 1;
    }

    SDL_Surface *img = IMG_Load("res/test.png");
    if (img == nullptr) {
        std::cout << "IMG_Load() Error: " << IMG_GetError() << std::endl;
        std::cin.get();
        return 1;
    }

    SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, img);
    SDL_FreeSurface(img);
    if (tex == nullptr) {
        std::cout << "SDL_CreateTextureFromSurface() Error: " << SDL_GetError << std::endl;
        std::cin.get();
    }

    SDL_RenderClear(ren);
    SDL_RenderCopy(ren, tex, NULL, NULL);
    SDL_RenderPresent(ren);

    SDL_Delay(2000);

    SDL_DestroyTexture(tex);
    SDL_DestroyRenderer(ren);
    SDL_DestroyWindow(win);

    SDL_Quit();

    return 0;
}

Кажется, что функция CreateRenderer выдает ошибку Invalid Window, я не уверен, почему, в настоящее время я следую этот учебник, я скопировал код до буквы T, кроме разрешения и использования SDL_image, SDL_image на самом деле не должен влиять на создание рендерер на этом этапе, я также пробовал разрешение, указанное в руководстве, и, кажется, все еще выдает ту же ошибку.

У кого-нибудь есть понимание по этому вопросу?


person Sn0wCrack    schedule 07.04.2014    source источник


Ответы (1)


if (win = nullptr) {
        ^ assignment, probably wanted ==

Не устанавливайте win в nullptr, и это, вероятно, не будет nullptr.

person genpfault    schedule 07.04.2014