仮想スクリーン サポート
仮想スクリーン サポート
仮想画面は、ディスプレイの物理的なサイズよりも大きい表示領域を意味する。それは、追加のビデオメモリを必要とし、さらに遅いCPU上で、異なる画面間で瞬時に切り替えが可能になります。仮想表示領域が設定されている場合、ディスプレイの目に見える部分は、原点を設定することによって変更することができます。
emWinの仮想スクリーンのサポートは、パンのためにまたは別のビデオのページを切り替えるために使用することができます。パンニングは、アプリケーションがディスプレイよりも大きい1つの画面を使用している場合、仮想スクリーンのAPI関数が必要な領域が見えるようにするために使用することができます。仮想ページ仮想ページは、複数のページとして表示RAMを使用する方法です。たとえば、アプリケーションが3つの異なる画面を必要とする場合、各画面には表示RAMに独自のページを使用することができます。それらを使用する前に、このケースでは、アプリケーションが2番目と3番目のページを描画することができます。その後アプリケーションはemWinの仮想画面のAPI関数を使用して、異なるページ間を非常に高速に切り替えることができます。関数がしなければならない唯一の事は目的の画面を表示するための右の表示開始アドレスを設定しています。この場合、仮想Y -サイズは、通常、Y内の表示サイズの倍数です。
要件
仮想画面の機能は、複数の表示単画面に必要以上のRAMと表示出力の開始位置を変更するためにハードウェアの能力を持つハードウェアが必要です。
使用するディスプレイコントローラは、仮想的な領域のためのビデオRAMをサポートする必要があります。試験- PLEの表示が320 × 240の解像度を持ち、1ピクセルあたり16ビットと2画面の色深度がサポートする必要がある場合、ビデオRAMの必要なサイズは次のように計算することができます:サイズ= LCD_XSIZE * LCD_YSIZE * LCD_BITSPERPIXEL / 8 * NUM_SCREENSのサイズ= 320 × 240 × 16 / 8 × 2 サイズ= 307200バイト設定可能な表示開始位置
使用するディスプレイコントローラは、設定可能な表示開始位置を必要とします。これは、ディスプレイドライバも表示開始アドレスを設定するレジスタを持っているか、左上の表示開始位置を設定するコマンドを持っていることを意味します。
コンフィギュレーション
仮想画面は、初期化時に設定する必要があります。関数
LCD_SetVSizeEx()は仮想ディスプレイのサイズを定義するために使用する必要があります。さらにそれがされ
てドライバのコールバックルーチンの中でコマンドのLCD_X_SETORGに反応する必要は
右側のフレームバッファの開始アドレスの設定。
LCD_SetVSizeEx()
説明
仮想ディスプレイのサイズを設定します。
プロトタイプ
int型LCD_SetVSizeEx(int型LayerIndex、int型XSIZE、INT ySize);
戻り値
成功時に0、エラー時には1。
例
以下のいくつかの例では、仮想画面の使用方法を明確にすることが
emWinで示されている
基本的なサンプル
次のサンプルは128x192の仮想画面と3つの異なる画面間の瞬時切り替えのための128 × 64の表示を使用する方法を示します。コンフィグ #LCD_XSIZE 128を定義する#LCD_YSIZE 64を定義#LCD_VYSIZE 192定義
アプリケーション
GUI_SetColor(GUI_RED);
GUI_FillRect(0、0、127、63);
GUI_SetColor(GUI_GREEN);
GUI_FillRect(0、64、127、127);
GUI_SetColor(GUI_BLUE);
GUI_FillRect(0、127、127、191);
GUI_SetColor (GUI_WHITE);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringAt("スクリーン0"、0、0);
GUI_DispStringAt("画面1"、0、64);
GUI_DispStringAt("画面2"、0、128);
GUI_SetOrg(0、64 ); / * * /画面1に原点を設定
GUI_SetOrg(0、128); * /画面2〜/ *設定起源
下の表は、ディスプレイの出力を示しています。
説明 | ディスプレイ出力 | 仮想領域の内容 |
実行する前にGUI_SetOrgを(0、240) | ||
実行後GUI_SetOrgを(0、240) | ||
実行後GUI_SetOrgを(0、480) |
ウィンドウマネージャを使用して高度なサンプル
emWinの出荷は、アプリケーションの仮想画面を使用する方法を示すサンプルが含まれています。それはSampleGUIBASIC_VirtualScreens.cの下で見つけることができます。
スクリーン0 | 画面1 |
上記のように簡単な紹介を示した後、サンプルは、2つの別々のページに2つのスクリーンを作成します。最初の画面は、2つの温度曲線のグラフィカルな表現を含むダイアログを示しています。"色の設定"ボタンを押すと、アプリケーションはさらに遅いCPU上で、次の画面に瞬時に切り替わります。"調整色"ダイアログの"OK"ボタンを押した後、アプリケーションが最初の画面に戻ります。上記のサンプルのビューアのスクリーンショット
ビューアを使用している場合、両方の画面を同時に表示することができます。上記スクリーンショットは、左側と右側で全体構成された仮想ディスプレイのRAMの内容で目に見える表示を示しています。
ウィンドウマネージャを使用してダイアログのサンプル
メイン画面/ 0ページ | メイン画面/ページ1 |
キャリブレーション画面/ 2ページ | 約画面/ 2ページ |
短いイントロ画面の後に"メイン画面"がページ0を使用してディスプレイに表示されます。"セットアップ"ボタンを押した後、"セットアップ"画面が1ページ上に作成されます。画面が作成された後、アプリケーションが1ページに切り替えることにより、画面が表示されるようになります。"校正"と"情報"画面の両方を使用するページ2。ユーザがEnterキーを押す場合、ボタンのキャリブレーション"またはいずれかの"バージョン情報"のアプリケーションは、2ページに切り替わり、ダイアログを示します。
ビューアは、同時にすべてのページを表示することができます。2右サイドにある - 上記のスクリーンショットは、ページ0と全層の左側と内容(仮想ディスプレイRAM)で表示される表示を示しています。