| ログイン | ご入会 |
ADC連絡先
|
|
|
|
Q: 開発中のアプリケーションは、PMSessionGetGraphicsContext を呼び出して QuickDraw GrafPort を取得し、その中への描画を行います。GrafPort が検出された場合、私は SInt16 depth = GetPixDepth( GetPortPixMap( grafPtr ) ) を呼び出して色数を判断しようとするのですが、結果の色数は常に 0 になってしまいます。どこに問題があるのでしょうか。 A: GetPortPixMap は、GrafPtr ではなく、CGrafPtr とともに動作するように設計されているため、GetPortPixMap に GrafPtr を渡すと、常に NULL が返されます。したがって、NULL が渡されるため、GetPixDepth もゼロを返すことになります。ただし、モノクロで印刷を行っている場合、PMSessionGetGraphicsContext から得られるグラフィックスコンテキストは GrafPtr であってもかまいません。アプリケーションがグラフィックスコンテキストの色数を検出する必要がある場合は、リスト 1 に示すコードを使用してください。
|