【開発環境】
各方面からの話をまとめてみますと、Apple社がNewGWorld()やCopyBits()を含むすべてのQuickDraw APIを抹殺しようと考えているのは明らかです(笑)。もう少し具体的に言えば、CGrafPortに依存するAPIをすべて消し去り(代用APIを用意する)、描画に関してはCoreGraphics(Quartz 2D)のCGContextRef環境のみを許するということです。そのうちOpenGLの描画環境も統合するかもしれません。まあ、すぐさまAPIそのものを消してしまうと動かなくなるCarbonアプリケーションが続出しますので(笑)、そんなに早急には断行できないでしょうが、将来的には開発環境がらみでAPIの使用をロックするかもしれません?つまり、XcodeではCMFアプリケーションが開発できないようになっているのと同じ状況になるわけです。
QuickDraw APIはスレッドセーフでもありませんし、GPUの能力も生かしていません。仕様自体も古く、現状のMac OS Xシステムにはマッチしなくなってきています。逆に、それを使用することが処理のボトルネックになっているケースもあるわけです。Apple社側でもその点を重視しており、「Transitioning to Quartz 2D 」といったドキュメントを提供し、描画処理をCoreGraphicsへ移行するようにと説いています。そのドキュメントを参考にし、QuickDraw 関連のAPIをすべて除外しても、現状の自作アプリケーションの開発が継続できるかどうかを詳しく調べてみました。各Managerのヘッダファイルを参照すると、QuickDraw依存 API(例えばRegionとかPictureを使うもの)は随分と新しい物に置き換えられていることが分かりました(もしくは仕様の拡張で対応している)。
ただし完全に準備万端かと言うと、そうでもないのが現状でして(涙)、Mac OS X 10.4(Tiger)においてより完璧になるよう努力中と言ったところでしょうか?個人的な要望としては、CoreGraphics APIにはメモリ内のビット操作やメモリ移動に関わるAPIがないので、それらを新規に追加してもらいたいと思います。例えば、CopyBits()における部分的な画像(メモリ)転送や、CopyMask()とRegionによるマスク処理などは画像描画のみに利用されているわけではありません、オフスクリーン間での特殊なメモリ操作にも頻繁に活用されているのです。こちらの方面はTigerのCore Imageが受け持つことになるのかもしれませんが(なのか?)、QuickDraw依存度の大きいQuickTimeも含め、QuickDrawとCGrafPortが完全に消滅したとしても、Carbonアプリケーションの開発者がまったく困らないような完璧な準備をお願いしたいと思います。
【テクニカルドキュメント】
前回から12月3日の期間中、Apple社のDocumentationサイトにはドキュメントが17登録されました。WebObject関連のドキュメントも6つあります。このうち新規のドキュメントは「Pasteboard Manager Programming Guide」のみです。Pasteboard ManagerはCarbon FrameworkのScrap Managerに取って代わるAPI群であり、Clipbordを用いたCpoy&Paste処理に最新の仕組みを提供します。ちなみに、Pasteboard ManagerはMac OS X 10.3以降でしか利用できませんので、アプリケーションに実装する場合には注意してください。前回紹介した「Pasteboard Manager Reference」と同時に参照すると良いでしょう。残りのうち「Component Manager for QuickTime 」の内容はかなり変更されていますが、それ以外のドキュメントはマイナーな変更のみです。
「Apple Human Interface Guideline」(PDFあり)
「Cocoa Bindings Reference」
「Component Manager for QuickTime 」(PDFあり)(改編)
「Core Foundation Reference」
「Deploying Applications」(PDFあり)
「Enterprise Objects」(PDFあり)
「Initializing QuickTime」(PDFあり)
「Kernel Programming」(PDFあり)
「Low-Level File Management」
「Outline Views」
「Pasteboard Manager Programming Guide」(PDFあり)(初版)
「QuickTime Overview」(PDFあり)
「Web Kit C Referenc」(PDFあり)
「WebObjects 5.2.3 API Reference」
「WebObjects Dynamic Elements Reference」(PDFあり)
「WebObjects Extensions Reference」(PDFあり)
「XML Serialization」(PDFあり)
http://developer.apple.com/documentation/index-rev-date.html
前回から12月3日の期間中、新規のテクニカルノートはひとつも登録されませんでしたが、新しいテクニカルQ&Aは2つ登録されました。「SetSoundMediaBalance balance parameter clarification」は内容の改訂です(日本語訳もあり)。「My custom item dismisses my Navigation Services dialog」の方は、Mac OS X 10.2におけるNavigation Serviceのバグの回避方法について解説されています。
QTMTB49「SetSoundMediaBalance balance parameter clarification」
QA1381「My custom item dismisses my Navigation Services dialog」
http://developer.apple.com/technicalqas/index-rev-date.html
【サンプルソースコード】
前回から12月3日の期間中、Apple社のSample Codeサイトには、新しいサンプルソースコードがひとつだけ登録されました。OpenGLを用いた描画でのテクスチャの活用を紹介したCocoaサンプルです。
「NSGLImage」(Cocoa&OpenGL関連)
http://developer.apple.com/samplecode/index-rev-date.html
【デベロップメント SDK】
前回から12月3日の期間中、Apple社のSDKサイトには新しいSDKはひとつも登録されませんでした。
http://developer.apple.com/sdk/
copyright 2005 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact us: koike@ottimo.co.jp