Mac OSX Build and Run!

OSX上でのプログラミングの初歩について、情報共有ができればと思います。

なぜFB は使用する STR# リソースIDを上書きするのか?

この内容はStazのQ&Aにある記事ですが、実際にどうなっているかを確認してみました。
確かにデバッグモードを使用するとFB4によってリソースID 1006と1010がデバック時に書き換えが行われます。と言うことで、ID:1000-1010は使わない必要があります。

これはデバッグモードでビルドを行い、できたアプリのSTR#リソースを確認することで分かります。

STR_ID.jpg

スポンサーサイト

コンパイル時のファイル名

以下はFuture BASIC4.2での確認内容です。

【アピアランス時に使用されるファイル一覧(デバッカーを含む)】
アピアランス+カーボンモードでは以下の計66ファイルが関係します。
RNTM APPEARANCE.INCL
TLBX STANDARD.INCL
TLBX STRUCTURES.INCL
SUBS OSXWD.INCL
TLBX QUICKTIME.INCL
TLBX PROCESSES.INCL
TLBX HELP MGR.INCL
TLBX PALETTES.INCL
TLBX FLOAT.INCL
TLBX COLORPICKER.INCL
TLBX CFSTRING.INCL
TLBX 8.5 WINDOW MGR.INCL
TLBX APPEARANCE.INCL
TLBX THEME.INCL
SUBS WINDOWCONSTANTS.INCL
QD ACCESSORS.INCL
RNTM APPEARANCE.GLBL
SUBS COMPILER.INCL
SUBS COMPILER.GLBL
SUBS FLOAT.INCL
USERFLOATPREFS
SUBS FLOATPPC.INCL
SUBS PRINTING.INCL
TLBX PRINTING.INCL
SUBS COMMON.INCL
SUBS FBCARBONSTUBS.INCL
SUBS APPEARANCE AEVENTS.INCL
SUBS FILES.INCL
TLBX NAVIGATION.INCL
OSX TERMIOS.INCL
SUBS UNIX SHELL.INCL
TLBX STDCLIB.INCL
TLBX CFBUNDLE.INCL
OSX FCNTL.INCL
OSX IOSERIALKEYS.INCL
OSX IOKITLIB.INCL
TLBX CFDICTIONARY.INCL
OSX BSD GLUE.INCL
OSX SERIALIO.INCL
SUBS GRAPHICS.INCL
SUBS DEFUSR.INCL
SUBS DYNAMIC.INCL
SUBS SOUND.INCL
TLBX SOUNDS.INCL
SUBS THREADS.INCL
TLBX THREADS.INCL
SUBS DEBUGGER.INCL
SUBS DEBUGGER.GLBL
SUBS DEBUG UTIL.INCL
SUBS PREFSFILE.INCL
UTIL_FOLDERS.INCL
SUBS DEBUG FORMAT.INCL
SUBS DEBUG DETAILS.INCL
SUBS CARBONCDEF.INCL
TLBX CARBON WDEF.INCL
SUBS INDEX.INCL
SUBS APPEARANCE BTNS.INCL
TLBX ICONS.INCL
SUBS APPEARANCE EFS.INCL
SUBS APPEARANCE IO.INCL
SUBS APPEARANCE MENUS.INCL
SUBS CONTAINERS.INCL
UTIL CHECK LIBRARYS.INCL
RNTM COMPLETION.INCL




【標準に使用されるファイル一覧(デバッカーを含む)】
標準+カーボンモードでは以下の計59ファイルが関係します。

RNTM FBII.INCL
TLBX STANDARD.INCL
TLBX STRUCTURES.INCL
SUBS OSXWD.INCL
TLBX QUICKTIME.INCL
TLBX PROCESSES.INCL
TLBX HELP MGR.INCL
RNTM FBII.GLBL
TLBX FLOAT.INCL
TLBX COLORPICKER.INCL
TLBX PALETTES.INCL
SUBS COMPILER.INCL
SUBS COMPILER.GLBL
SUBS FLOAT.INCL
USERFLOATPREFS
SUBS FLOATPPC.INCL
SUBS PRINTING.INCL
TLBX PRINTING.INCL
TLBX CFSTRING.INCL
SUBS FBCARBONSTUBS.INCL
SUBS COMMON.INCL
SUBS APPLEEVENTS.INCL
SUBS FILES.INCL
TLBX NAVIGATION.INCL
OSX TERMIOS.INCL
SUBS UNIX SHELL.INCL
TLBX STDCLIB.INCL
TLBX CFBUNDLE.INCL
OSX FCNTL.INCL
OSX IOSERIALKEYS.INCL
OSX IOKITLIB.INCL
TLBX CFDICTIONARY.INCL
OSX BSD GLUE.INCL
OSX SERIALIO.INCL
SUBS GRAPHICS.INCL
SUBS DEFUSR.INCL
SUBS DYNAMIC.INCL
SUBS SOUND.INCL
TLBX SOUNDS.INCL
SUBS THREADS.INCL
TLBX THREADS.INCL
SUBS TEXTFIELDS.INCL
SUBS INDEX.INCL
SUBS USR DATE.INCL
UTIL_ABOUT.INCL
SUBS CARBONCDEF.INCL
TLBX CARBON WDEF.INCL
SUBS WINDOWCONSTANTS.INCL
SUBS CARBONWDEF.INCL
SUBS DEBUGGER.INCL
SUBS DEBUGGER.GLBL
SUBS DEBUG UTIL.INCL
SUBS PREFSFILE.INCL
UTIL_FOLDERS.INCL
SUBS DEBUG FORMAT.INCL
SUBS DEBUG DETAILS.INCL
SUBS CONTAINERS.INCL
UTIL CHECK LIBRARYS.INCL
RNTM COMPLETION.INCL


OS9 のウインドウ更新とは?

OS9以前のサンプルコードを見るとウインドウ更新をしていることに気づきます。
OSXではこの処理は不要です。

OS9以前では以下の様にウインドウ更新しないと消えてしまいます。
OSXでは一度ウインドウに描かれた内容はウインドウ用のバッファーに
保存されるためダイアログイベントを使いアップデートイベントを処理
する必要はありません。一度書けばウインドウが重なろうとも消えるこ
とはありません。ちなみにClassicの時はシステムがウインドウ用のバッ
ファーが無いのでアップデートイベントを使い再描画するか、自前でオ
フスクリーンから転送する必要がありました。

サンプルコード(動作非保証)

OS9noUpdate.jpg



OSXnoUpdate.jpg



Plain Gliding Pixels

FB4 DEMOに含まれているサンプルコードにAnti-aliased Gliding Pixeがあります。
まずはサンプルコードのベースを理解する為にPlainだけの構造にしてみました。
このサンプルは各ポイントについて座標とスピードを持ち、1/60フレームで表示する
ものです。

サンプルコード(動作非保証)

サンプルDEMO(動作非保証)

PlainGlidingPixels.jpg

FB4サンプルコード(OpenGL)

FB4のデモ版に含まれているOpenGLのサンプルコードを試してみました。
良くADCで見かけるものと同じですが、FPS600ぐらいでした。(G4 867MHz)
BASICでここまで動くとは。
OpenGLdemo.jpg