SDL2 图像加载 windows 10

SDL2 image load in windows 10

#include <SDL.h>
#include <SDL_image.h>
#include <SDL_mixer.h>
#include <iostream>
int main(int argc, char* args[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *window;
    window = SDL_CreateWindow("Titlu",
        100,
        100,
        600,
        400,
        SDL_WINDOW_RESIZABLE
        );
    SDL_Renderer* renderer = nullptr;
    SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
    int p = 0;
    SDL_Event* mainEvent = new SDL_Event();
    SDL_Texture* grass_image = nullptr;

    grass_image = IMG_LoadTexture(renderer,"grass.bmp");
    if (grass_image == NULL)
        std::cout << "FAILED";
    SDL_Rect grass_rect;
    grass_rect.x = 10;
    grass_rect.y = 50;
    grass_rect.w = 250;
        grass_rect.h = 250;
    while (!p && mainEvent->type != SDL_QUIT)
    {
        SDL_PollEvent(mainEvent);
        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer,grass_image,NULL,&grass_rect);
        SDL_RenderPresent(renderer);
    }
    SDL_DestroyWindow(window);
    SDL_DestroyRenderer(renderer);
    delete mainEvent;


    return 0;

}

grass_image = IMG_LoadTexture(渲染器,"grass.bmp");不起作用,并且 returns NULL 图片的路径很好。

请告诉我我是否做错了什么,或者是否可以修复与我的 windows 10 或 visual studio 2015 更新 3 不兼容的问题 请注意,当我 运行 它时,我的 window 是白色而不是黑色。

您的 renderer 为 NULL。像这样初始化它:

SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);