Я начинаю изучать SDL3, и я получаю эту странную ошибку, пытаясь отображать текстуру с помощью SDL_RENDETEXTURE
Сообщения об ошибках:
Исключение, произведенное по адресу 0x00007ffca9067788 в Fairy Tail.exe: Microsoft C ++ Exception: _com_error в местоположении памяти 0x000000f86c0fed60 < /p>
< /blockquote>
и sdl_geterror () one:
function , id3d11device1 :: createePixelShader: параметр неверный
Очевидно, что они появляются только тогда, когда я использую функцию sdl_geterror (), чтобы проверить, пройдет ли текстура, в частности, эти строки кода:
if(SDL_RenderTexture(renderer, fairy, NULL, NULL)
< /code>
{< /p>
SDL_Log("IMG Error: %s", SDL_GetError());
}
< /code>
Как ни странно, они не появляются, когда я проверяю то же условие, но для ложного значения, только для истинных значений, как в вышеуказанных строках, то есть (я думаю), текстура существует рендер, но он просто не отображается в окне, а в Индин Консоль отправляет эти сообщения об ошибках. < /p>
Вот полный код для лучшего понимания: < /p>
//Header file mygame.h
#pragma once
#include
#include "SDL3/SDL.h"
#include "SDL_image.h"
class Game
{
public:
Game();
~Game();
void init(const char*, int xpos, int ypos, int width, int height, bool fullscreen);
void handle_events();
void update();
void render();
void clean();
bool running();
private:
bool is_running = NULL;
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
//Source File for the function definitions of the above header file mygame.cpp
#include "mygame.h"
SDL_Texture* fairy = NULL;
Game::Game() {}
Game::~Game() {}
//Initialization function
void Game::init(const char* title, int xpos, int ypos, int width, int height, bool fullscreen)
{
int flags = 0;
if (fullscreen)
{
flags = SDL_WINDOW_FULLSCREEN;
}
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout clean();
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... y-location