Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
  • 受託開発のご用命はコチラまで
  • 探し物が見つからない場合のご用命はポジティブワンまで
  • 見積もり依頼、製品問い合せはこちらまで
  • ポジティブワンNFCラボ
  • 技術サポート窓口
  • 特集&ソリューション
  • ダウンロード
  • 旧サイトはこちら
人気製品
  • ボードコンピュータ
  • 組み込み開発ツール
  • OS・ミドルウェア
  • スマートカード
POC-SOM-Arria10-1E アルテラ製Arria10搭載小型システムオンモジュール(72mm x24mmです。PCIe Gen3x8, USB3. Host, Dual...
hit-2
MPX 2041 フリースケール製i.MX6搭載超小型システムオンモジュールです。 i.MX6であるデュアルlite、クアッド(800MHz)を搭載した超小型(20mm x 50...
hit-1
TI製OMAP4460搭載超小型システムオンモジュールです。OMAP4460(ARM Cortex-A9デュアル1.5MHz)を搭載した超小型(20mm x 50...
hit-3
POC-Tiny-i.MX6 Freescale製i.MX6搭載超小型システムオンモジュールです。 38mm x...
hit-4
MPX 2041 フリースケール製 Quad Core QorIQ™...
hit-5
Qualcomm® Snapdragon™ 805コア (APQ8084)搭載超小型(50mm x28.5mm)モジュールです。4K2Kに対応しています。標準モジュールは、RAM 2GB,eMMC...
hit-6
Sentis ToF-M100 PMD社19k-S3搭載、LEDとIOボード搭載の3Dセンサ・テクノロジ、ToF(Time of Flight)...
hit-7
Cosmic C言語 Cosmic独自で開発されたセイフティクリティカル分野で使われる汎用C言語です。 オリジナルのIDEやユーティリティも準備していますが、多くのIDEのオプションC言語として、採...
hit-7
Rlink...
hit-6
Code パフォーマンス最適化されたGNUコンパイラ(GCC)と商用Eclipse IDEです。 パフォーマンス最適化されたGNUコンパイラ(GCC)、GNU...
hit-5
Segger製J-linkPRO SEGGER製J-LinkはIARやKeilをはじめとする多くのARMの多くの統合開発環境及びGBDベースの無償ツールで使えるインサーキットエミュレータです。インサーキッ...
hit-4
Segger製FlasherARM ARMコア用インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。主に、製造ラインで利用できるように設計されたモデ...
hit-3
CycloneMAX インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。 フリースケール製ColdFire...
hit-1
CyclonePRO インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。 フリースケール製HC08、HCS08、HC(S)12(X)、Col...
hit-2
SCIOPTAリアルタイムOS メッセージパッシング方式リアルタイムOSです。メモリー保護、スーパーバイザ機能をサポートしたセイフティクリティカル向けRTOSです。 メッセージパッシング方式ですと、...
hit-sciopta
embOS マイコンのマルチインタフェース、グラフィックなどの機能強化されているなか、多くのドライバやサンプリをサポートしたRTOSです。 GCCやIARなどのマルチ言語にも対応したバイナリーカーネ...
hit-embos
NFCフォーラム冶具 NFCフォーラム・ポーラ&リステナ NFCフォーラム準拠テスト冶具です。NFCフォーラムテスト定められているポーラ&リスナのアンテナです。そのNFCフォーラム準拠したアンテナテ...
nfcforum-poller-listner-anntena
POC-NomadLAB NFCモバイルのSPY検証ツール 非接触型スマートカード(ISO14443 TypeA,およびTypeB, NFC...
poc-nomadlab-nfc-spy
EMV...
hit-emv-visa-mastercard-pvt
プレスリリース・セミナー・展覧会情報

ポジティブワン、グローバルポータルサイト(https://www.positive-one.com/)をオープン

ポジティブワン株式会社は、本日2018年11月1日に、グローバルポータルサイト(https://www.positive-one...

Readmore

Tracealyzer for Amazon FreeRTOSの販売開始

ポジティブワン株式会社(本社:東京都渋谷区)は、Percepio AB(パーセピオ)社Tracealyzer for FreeRT...

Readmore

AIプロセッサRK3399Pro搭載した回路設計から製造、ソフトウエアの一括受託開発開始

2019年1月7日、ポジティブワンは、Rockchip社RK3399Pro搭載した産業用ボードコンピュータおよびソフトウエアの受...

Readmore

注目製品

Time-of-flight-TOP

ToF(Time of Flight)センサ

&ToFソフトウエア受託開発


pickup-automotive

オートモーティブ市場向け
 開発ソリューション


segger-embedded-studio-vs Atollic TureStudio

ARMマイコンIDE,GCC,J-link, 
 Flashプログラマ・ツール

紹介動画

Cannot Connect to Youtube Server


Cannot Connect to Youtube Server

Cannot Connect to Youtube Server

Cannot Connect to Youtube Server

emWin 仮想スクリーンサポート

  
 

仮想スクリーンサポート

仮想スクリーンはディスプレイの物理的サイズよりも大きな表示領域のことです。追加のビデオメモリが必要になりますが、低速なCPUでの画面の切替を高速にすることができます。仮想スクリーンが設定されている時、実際の表示領域の切り替えは参照原点を変更することでできます。

emWin VSS VirtualScreens

仮想スクリーンではページの切替時にパンニングを利用することができます。

 

パンニング

アプリケーションがディスプレイサイズよりも大きな表示領域を使用している場合、仮想スクリーンAPIによって原点を変更することで目的の領域を画面に表示することができます。

 

仮想ページ

アプリケーションが複数のページを使用する場合、あらかじめ複数のページを仮想スクリーン上に読み込んでおくことで低速CPUでも高速な画面切り替えを可能します。たとえばアプリケーションが3ページ使用する場合、まだ表示しない2ページ目、3ページ目についてもあらかじめ仮想スクリーン上に読み込んでしまいます。下層ページを利用する場合、仮想スクリーンのサイズは高さはページ数分だけ大きくなります。

 

使用要件

仮想スクリーンでは通常のシングルスクリーンと比較して大きなビデオメモリが必要となります。

ビデオメモリサイズ

ディスプレイコントローラは仮想スクリーンに必要なビデオメモリサイズに対応している必要があります。例えば、解像度が320×240の画面で色深度が16ビット・2ページ分の仮想スクリーンの場合、必要なビデオメモリサイズは次のように計算できます。

  • メモリサイズ= 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

 

サンプル

次のサンプルは128x192の仮想スクリーンと128 × 64のディスプレイでどのように3ページを高速で切り替えるのか示します。

 

初期設定

#difine LCD_XSIZE 128

#difine LCD_YSIZE 64

#difjne 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

emWin VSS Sample0

スクリーン1

emWin VSS Sample1

スタート画面は2つの温度変化をモニターするグラフ(スクリーン0)を表示しています。SetColorボタンを押すと画面は瞬時にスクリーン1に切り替わります。たとえ低速なCPUでも高速切替が可能です。

 

上記のサンプルのビューアでのスクリーンショット

emWin VSS RealTimeSample

ビューアを使用している場合、両方の画面を同時に表示することができます。上記スクリーンショットでは、左側に実際に表示さている画面を、右側に仮想スクリーン全体を表示しています。

ダイアログのサンプル

メイン画面/ スクリーン0

emWin VSS DialogSample Main

メイン画面/スクリーン1

emWin VSS DialogSample Setup

キャリブレーション画面/ スクリーン2

emWin VSS DialogSample Calibrate

説明画面/ スクリーン2

emWin VSS DialogSample About

はじめにメイン画面としてスクリーン0がディスプレイに表示されます。"セットアップ"ボタンを押すと、"セットアップ"画面がスクリーン1に作成され画面を切り替えます。キャリブレーションと説明画面の両方はスクリーン2を使用して表示されます。

virtual-screen-support0

ビューアを使用している場合、両方の画面を同時に表示することができます。上記スクリーンショットでは、左側に実際に表示さている画面を、右側に仮想スクリーン全体を表示しています。

emWinホームに戻る 


仮想スクリーンサポート関連ページ 
SEGGER
RTOS&Middleware