Получение BMP из CFBundle

У меня есть приложение SDL, которое я делаю в xcode.

int main( int argc, char* args[] )
{
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING );

//The images
SDL_Surface* hello = NULL;
SDL_Window* screen = NULL;
SDL_Renderer *sdlRenderer = NULL;

//Set up screen
screen = SDL_CreateWindow("My Game Window",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
640, 480,
SDL_WINDOW_OPENGL);

//Create Renderer
sdlRenderer = SDL_CreateRenderer(screen, -1, 0);

//Load image
hello = SDL_LoadBMP( "hello.bmp" );

//Create texture from the surface
SDL_Texture* hello_texture = SDL_CreateTextureFromSurface(sdlRenderer, hello);

//copy texture to the renderer's buffer.
SDL_RenderCopy(sdlRenderer, hello_texture, NULL, NULL);

//Update Screen
SDL_RenderPresent(sdlRenderer);

//Pause
SDL_Delay( 5000 );

//Quit SDL
SDL_Quit();

return 0;
}

Так что все работает хорошо, но изображение не отображается. После отладки я обнаружил, что load_bmp возвращает ноль. Поэтому я попытался выяснить, каким должен быть правильный путь к файлу:

 CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef resourcesURL = CFBundleCopyBundleURL(mainBundle);
CFStringRef str = CFURLCopyFileSystemPath( resourcesURL, kCFURLPOSIXPathStyle );
resourcesURL = CFBundleCopyResourceURL(
mainBundle,
CFSTR("hello.bmp"),
NULL,
NULL
);

но это также не дает мне ничего, так что кажется, что hello.bmp неправильно копируется в пакет? Кто-нибудь еще сталкивался с этим, и нет, что нужно сделать?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]