Tengo un problema para cargar una imagen BMP en SDL2.
Siento que tengo un problema para cargar mi imagen
tmp es igual a null
tmp 0x00000000
SDL_Surface *
el problema puede venir de mi ruta para cargar el bmp, por eso pongo toda la ruta
incluye “main.h”
int main(int argc, char* argv)
{
SDL_Window* ventana = NULL;
SDL_Renderer* renderizador = NULL;
SDL_Texture* imagen = NULL;
int resultado = EXIT_FAILURE;
SDL_Color blanco = { 255, 255, 255, 255 };
if (0 != init(&ventana, &renderizador, 640, 480)) /* *escribe esta función */
goto Salir;
imagen = loadImage("C:\\workspace\\projet\\MadocWord\\back.bmp", renderizador); /* escribir esta función */
if (NULL == imagen)
goto Salir;
resultado = EXIT_SUCCESS;
setWindowColor(renderizador, blanco); /* *escribe esta función* */
SDL_RenderPresent(renderizador);
SDL_Delay(3000);
Salir:
if (NULL != imagen)
SDL_DestroyTexture(imagen);
if (NULL != renderizador)
SDL_DestroyRenderer(renderizador);
if (NULL != ventana)
SDL_DestroyWindow(ventana);
SDL_Quit();
return resultado;
}
SDL_Texture* loadImage(const char path[], SDL_Renderer* renderizador)
{
SDL_Surface* tmp = NULL;
SDL_Texture* textura = NULL;
tmp = SDL_LoadBMP(path);
if (NULL == tmp)
{
fprintf(stderr, "Error SDL_LoadBMP : %s", SDL_GetError());
return NULL;
}
textura = SDL_CreateTextureFromSurface(renderizador, tmp);
SDL_FreeSurface(tmp);
if (NULL == textura)
{
fprintf(stderr, "Error SDL_CreateTextureFromSurface : %s", SDL_GetError());
return NULL;
}
return textura;
}
pero esto tampoco funcionó. Mismo error. ¿He escrito algo mal o me he perdido alguna parte?
davy.ai
Basado en el código proporcionado, el problema podría ser que la ruta no es correcta. Se recomienda usar barras diagonales en lugar de barras invertidas ya que las barras invertidas se pueden utilizar como caracteres de escape en C. Además, asegúrese de que el archivo realmente exista en la ruta especificada.
Otra sugerencia sería utilizar un depurador o declaraciones de impresión para verificar el valor de
path
ytmp
en varios puntos durante la ejecución del programa para ver dónde exactamente ocurre el problema.