QuickDraw
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

Google開発のオンラインゲーム「Quick, Draw!」とは異なります。
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "QuickDraw" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2012年8月)

QuickDraw(クイックドロー)とは、かつてAppleClassic Mac OSで使われていた画像描画API の一種である。

macOSでは後継のQuartz 2Dを利用する。従来との互換維持のためQuickDrawもMac OS X v10.4で非推奨となったが、移行期間としてOS X Mountain Lionまで残されていた[1]
概要

QuickDrawの最初のバージョンはビル・アトキンソンほぼ一人により書かれた。元々はLisa用の描画関数群としてLisaGrafという名前で開発されていたが、Macintoshにも搭載されることが決まりQuickDrawと改称された。

1979年にApple社員がXEROXの研究所PARCを見学した際、Altoで動くSmalltalkシステムを見せられた。当時のSmalltalk GUIでのウインドウは単純な矩形の組み合わせで描画され、また、他のウインドウに隠れて一部分しか見えていないウインドウの表示内容の更新もおこなわれていなかった。しかし、Altoのハードウェア機能(描画に必要なビット転送ルーチンであるBitBLTのマイクロコード化など)を介した比較的高速な描画を見て、不定形クリッピング描画が実現されていると誤った思い込みをしてしまったビル・アトキンソンは、その認識のまま遂に“リージョン”の描画や演算処理を比較的高速に扱えるLisaGrafやQuickDrawを完成させてしまった。後に、QuickDrawの功績により彼はAppleフェローの地位を与えられた。

QuickDrawは直線、矩形、正円及び楕円などの図形描画を当時のマシンとしては高速に行うだけでなく、Macintoshを特徴付けるウインドウの重ね合わせの際に必須の不定形クリッピング描画を可能とし、その後のソフトウエアに大きな影響を与えた。
歴史

QuickDrawは、Apple Lisaの開発の一環としてLisa Grafとしてスタートした。Macintoshでは、当初は簡略化されていたが、後に拡張された。当初、QuickDraw GrafPortsはビット深度1、つまり1ピクセルあたり1ビット、つまり白黒のみをサポートしていた。これは、512×342ピクセルという固定サイズの初期Macintoshの内蔵スクリーンに適していた。QuickDrawは粗い平面モデルを使って限定的なカラーをサポートし、多色リボンを使用するタイプのドットマトリクスプリンタを駆動することができたが、この機能をサポートするアプリケーションはごくわずかであった。

1987年、Macintosh IIが開発・発売され、コンピュータ、モニタ、キーボードが分離した、よりオーソドックスな3ボックスのデザインになった。モニタが独立し、初代Macよりも大きくなったため、ビデオアーキテクチャも必然的に変更しなければならなかった。さらに、Macintosh IIはフルカラー化を可能にした。この時、Appleは業界で初めて、複数のモニタにまたがるシームレスなデスクトップをサポートすることを決定した。こうして、オリジナルのQuickDrawを大幅に拡張したColor QuickDrawが誕生した。オリジナルのアーキテクチャは拡張性に乏しかったが、Appleの開発者たちは一連のハッキングを駆使して、カラーの追加と新しいビデオアーキテクチャを、開発者とエンドユーザの双方にとって実質的にシームレスにすることに成功したのである。

Color QuickDrawは、接続された各ビデオカード/モニタを表すGDevices、色を扱う新しいカラーGrafPort(CGrafPort)構造体、さらに1ピクセルあたり複数ビットの画像用にBitMapの代わりにPixMapなどの新しいデータ構造を導入している。ここで使われた互換性のためのハックの1つは、新しい構造体が古い構造体とまったく同じサイズで、ほとんどのデータメンバが同じ場所にあるが、BitMapフィールドの代わりにカラー構造体のハンドルとポインタが追加されている。rowBytesフィールドの上位 2 ビットは、GrafPort と CGrafPort を区別するためのフラグとして使用された(旧式の GrafPort では常に0だが、これはBitMapがこれらのビットを設定するほど広くなり得なかったためだ)。なぜなら、32ビットのPixMapの最大行幅はわずか4,095であり、高解像度のグラフィック作業では問題となったからだった。後の開発版(Carbon)ではこの制限はなくなったが、完全な後方互換性はなかった。Color QuickDrawでは、インデックス付きビデオデバイスの色の調停を管理するパレットマネージャも追加された。ほとんどのグラフィックスプリミティブの操作は変更されず(ただしカラーで動作)、あるいは白黒のAPIの新しいカラーバージョンが追加された。

当初、Color QuickDrawは1、2、4、8ビットのビデオカードでのみ動作可能であった。その後24ビットのビデオカードが登場し(いわゆるトゥルーカラー)、QuickDrawは再び更新され、1ピクセルあたり32ビット(実際には24ビット、未使用は8ビット)のカラーデータまでサポートするようになった(「32-Bit QuickDraw」)。しかし、アーキテクチャは既にこれを許容していたので、新しいAPIは必要なかった。色データ構造自体は、1、2、4、8、15、24ビットの色深度を許容し、それぞれ2、4、16、256、32768、1677216色、または4、16、256スケールのグレーを生成した。QuickDrawは、実際のビデオハードウェアの利用可能な色深度への色の再サンプリングや、オフスクリーン画像バッファ間の転送を管理し、オプションで画像を低深度にディザリングして画質を向上させることも行った。また、カラーサンプリングユーティリティも追加され、プログラマはインデックス付きのビデオデバイスで使用するために最適なカラーパレットを生成することができるようになった。

QuickDrawのアーキテクチャは、常にGrafPortとそれに関連するBitMapまたはPixMapを「オフスクリーン」で作成することを可能にしていた。ピクセルは、QuickDrawのブリット機能であるCopyBitsを使って、これらのオフスクリーンポートとスクリーン間で転送することができた。このようなオフスクリーン合成は、ゲームやグラフィックスを多用するアプリケーションの主力となるものである。しかし、32ビットQuickDrawが登場するまでは、このようなオフスクリーンワールドは、プログラマがアプリケーション内で手作業で作成・設定する必要があった。これは、3つ以上の別々のかなり複雑なデータ構造(CGrafPort、PixMap、GDevice、インデックス付きデバイスの場合は、カラールックアップテーブルとその逆)を含むため、エラーが起こりやすい可能性があった。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:12 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef