処理(Transaction) を使用したディスプレイの構成


Quartz Display Services を使用すると、1 回の処理(transaction) で一連のディスプレイを構成することができます。構成変更の実行中に、Quartz はすべてのオンラインディスプレイで標準のフェード効果を実行します。ディスプレイが白黒の単色にフェードして、構成が行われ、ディスプレイは正常に戻ります。フェード効果の詳細については、フェード効果の使用 を参照してください。


CGBeginDisplayConfiguration を呼び出して、新しい処理(transaction) を開始します。次のステップは、あなたが何をしたいのかを宣言することです。たとえば、以下の関数を使用できます。


処理(transaction) の準備が完了したら、CGCompleteDisplayConfiguration を呼び出して処理を実行します。この呼び出しでは、また構成変更の範囲も指定します。通常、kCGConfigureForAppOnly を指定して、アプリケーションの存続期間に変更を適用します。


リスト 1 は、カスタムのフェード効果を持つ構成処理を使用して、OS X v10.6 以降の単一のディスプレイのディスプレイモードを変更する方法を示しています。OS X v10.5 以前の場合は、代わりにリスト 2 を参照してください。各番号付きコード行の詳細な説明はリストの後に示します。


リスト 1 単純な構成処理(OS X v10.6 以降)


void MyDisplaySwitchToMode (CGDirectDisplayID display, CGDisplayModeRef mode)
{
    CGDisplayConfigRef config; // 1
    CGBeginDisplayConfiguration (&config); // 2
    CGConfigureDisplayWithDisplayMode (config, display, mode, NULL); // 3
 
    CGConfigureDisplayFadeEffect ( // 4
        config,
        0.6,    // fade out interval in seconds
        1.0,    // fade in interval
        0.5,    // red
        0.5,    // green
        0.5     // blue
    );
 
    CGCompleteDisplayConfiguration (config, kCGConfigureForAppOnly); // 5
}


リスト 2 単純な構成処理(OS X v10.5)


void MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode)
{
    CGDisplayConfigRef config; // 1
    CGBeginDisplayConfiguration (&config); // 2
    CGConfigureDisplayMode (config, display, mode); // 3
 
    CGConfigureDisplayFadeEffect ( // 4
        config,
        0.6,    // fade out interval in seconds
        1.0,    // fade in interval
        0.5,    // red
        0.5,    // green
        0.5     // blue
    );
 
    CGCompleteDisplayConfiguration (config, kCGConfigureForAppOnly); // 5
}


コードの動作は以下のとおりです。


  1. 一連のディスプレイ構成変更用のコンテキストを提供する変数である、ディスプレイ構成オブジェクトを宣言します。
  2. 新しい構成処理を開始し、ディスプレイ構成オブジェクトを戻して渡します。
  3. この構成のディスプレイモードの変更を宣言します。
  4. この構成のデフォルトのフェード効果をカスタマイズします。新しいフェード色はグレーです。
  5. アプリケーションの範囲で新しい構成を適用します。戻ったとき、構成オブジェクトはもはや有効ではありません。

前の章 次の章



目次
Xcode の新機能

  • Quartz Display Services プログラミング入門
  • この文書の構成
  • Quartz ディスプレイサービスの概要
  • ディスプレイの状態
    ディスプレイ ID
    ディスプレイモード(OS X v10.6 以降)
    ディスプレイモード(OS X v10.5)
    ディスプレイの配置
    ディスプレイのミラーリング
  • ディスプレイに関する情報の取得
  • ディスプレイ状態情報の取得(OS X v10.6 以降)
    ディスプレイ状態情報の取得(OS X v10.5)
    ディスプレイモード情報の取得(OS X v10.6 以降)
    ディスプレイモード情報の取得(OS X v10.5)
  • ディスプレイのキャプチャ
  • ディスプレイモードの変更(OS X v10.6以降)
  • 使用可能なモードからベストのモードを見つける
  • ディスプレイモードの変更(OS X v10.5)
  • メインディスプレイのモードを設定
  • 処理(Transaction) を使用したディスプレイの構成
  • フェード効果の使用
  • すべてのディスプレイをフェードする
    単一のディスプレイをフェードする
  • 構成変更の通知
  • マウスカーソルの制御
  • 文書改定履歴












  • トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)