SDL_SetColorKey () не удаляет цвет фона - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь установить прозрачность моего изображения. Этот код прекрасно работает в C ++, но когда я пытаюсь использовать тот же код в C, он больше не работает. При выполнении кода изображение отображается, однако черный фон остается. Это код, который я использую. Может кто-нибудь помочь мне определить проблему?

SDL_Texture* Utilities_loadImage( SDL_Renderer* r, const char* file )
{

    /* load an image into memory using SDL_image library function */
    SDL_Surface* surface = SDL_LoadBMP(file);
    if(!surface)
    {
        printf("error creating surface: %s\n", SDL_GetError());
        return NULL;
    }

    if(SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0, 0, 0)) != 0)
    {
        printf("Unable to set colourkey: %s", SDL_GetError());
    }

    /* convert image into a texture for use by the grafx hardware */
    SDL_Texture* texture = SDL_CreateTextureFromSurface(r, surface);

    /* get rid of surface */
    SDL_FreeSurface(surface);
    if(!texture)
    {
        printf("error creating texture: %s\n", SDL_GetError());
        return NULL;
    }

    return texture;
}
...