[C++] 66 アプリ画像ファイルの有効パス SDL, FLTK

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, no IDE]

ゲームプログラミング本のサンプルコードでappファイルを作成しようとするとアイコン以外の画像ファイルを認識できませんでした。このSDLと普段使っているFLTKで画像の有効パスを表にまとめてみました。

FLTKのappファイルで相対パスが使えない、すなわちappファイルの中に画像を入れて相対パスで使うことができないというのは衝撃です。appファイル内画像を絶対パスで捉え続けるのはあまり現実的ではありません。検証の結果は単に私のスキル不足が原因と思いたいところではあります。

FLTKでの検証例(星の画像を配置し表示可否を確認)
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_PNG_Image.H>

Fl_Window* window;
Fl_Box* picturebox;
Fl_PNG_Image* pngimage;  

int main(int argc, char **argv) {
    Fl::set_font(FL_HELVETICA, "Osaka");
    window = new Fl_Window(100,100,360,220,"PLAIN");
    window->color(fl_rgb_color(131,204,210));

    pngimage = new Fl_PNG_Image("star.png"); // ファイルパスを変えて検証した
    picturebox = new Fl_Box(20, 20, 120, 120);
    picturebox->box(FL_UP_BOX);
    picturebox->image(pngimage); 
    picturebox->redraw();  
    window->add(picturebox);

    window->end();
    window->show(argc, argv);
    
    return Fl::run();
}