【问题标题】:SDL2 CreateRenderer throwing Invalid Window ErrorSDL2 CreateRenderer 抛出无效窗口错误
【发布时间】:2014-04-07 04:11:55
【问题描述】:

我目前的代码如下:

#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,我不确定为什么,我目前正在关注this教程,除了分辨率和使用之外,我已经将代码复制到了T SDL_image, SDL_image 在这个阶段应该不会真正影响渲染器的创建,我也尝试过教程中指定的分辨率,它似乎仍然会抛出同样的错误。

有人对这个问题有任何见解吗?

【问题讨论】:

    标签: c++ sdl sdl-2


    【解决方案1】:
    if (win = nullptr) {
            ^ assignment, probably wanted ==
    

    不要将win 设置为nullptr,它可能不会是nullptr

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2021-08-07
      相关资源
      最近更新 更多