Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 窗口不显示图像SDL_C++_Sdl - Fatal编程技术网

C++ 窗口不显示图像SDL

C++ 窗口不显示图像SDL,c++,sdl,C++,Sdl,程序不会在我创建的窗口中显示图像,也不会收到我设置的任何失败消息,这意味着这些值不是空的。 有什么问题? 代码如下: #include "SDL.h" #include "SDL_image.h" #include <iostream> int main(int argc,char* argv[]) { SDL_Window *window; SDL_Renderer *renderer; SDL_Event event; bool quit = f

程序不会在我创建的窗口中显示图像,也不会收到我设置的任何失败消息,这意味着这些值不是空的。 有什么问题? 代码如下:

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

int main(int argc,char* argv[])
{
    SDL_Window *window;
    SDL_Renderer *renderer;
    SDL_Event event;
    bool quit = false;
    SDL_Surface *tmpsur = NULL;
    SDL_Texture *tex = NULL;

    SDL_Init(SDL_INIT_EVERYTHING);

    window = SDL_CreateWindow("First window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN);
    renderer = SDL_CreateRenderer(window, -1, 0);

    tmpsur = IMG_Load("assets/player.png");
    if (tmpsur == NULL)
    {
        std::cout << "fail" << std::endl;
    }
    tex = SDL_CreateTextureFromSurface(renderer,tmpsur);
    if (tex == NULL)
    {
        std::cout << "fail 2" << std::endl;
    }
    SDL_FreeSurface(tmpsur);

    SDL_RenderPresent(renderer);

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

    SDL_DestroyWindow(window);
    SDL_DestroyRenderer(renderer);
    SDL_Quit();

    return 0;
}
#包括“SDL.h”
#包括“SDL_image.h”
#包括
int main(int argc,char*argv[])
{
SDL_窗口*窗口;
SDL_渲染器*渲染器;
SDL_事件;
bool-quit=false;
SDL_表面*tmpsur=NULL;
SDL_纹理*tex=NULL;
SDL_Init(SDL_Init_EVERYTHING);
window=SDL_CreateWindow(“第一个窗口”,SDL_WINDOWPOS_居中,SDL_WINDOWPOS_居中,800,600,SDL_window_显示);
渲染器=SDL_CreateRenderer(窗口,-1,0);
tmpsur=IMG_Load(“assets/player.png”);
如果(tmpsur==NULL)
{

std::cout您需要将纹理复制到渲染目标上。在呈现渲染器之前,您需要这样调用:

SDL_RenderCopy(renderer, text, nullptr, nullptr);
SDL_RenderPresent(renderer);
参数中的nullptrs将使其在所有目标(窗口)上复制纹理