(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142663
(43)【公開日】2024-10-11
(54)【発明の名称】プログラム、ミラーリング方法、及び電子機器
(51)【国際特許分類】
G09G 5/14 20060101AFI20241003BHJP
G06F 3/14 20060101ALI20241003BHJP
G06F 3/147 20060101ALI20241003BHJP
G09G 5/00 20060101ALI20241003BHJP
【FI】
G09G5/14 A
G06F3/14 350A
G06F3/147 310
G09G5/00 510V
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023054904
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】重光 真
(72)【発明者】
【氏名】内海 翔太
【テーマコード(参考)】
5B069
5C182
【Fターム(参考)】
5B069DD10
5B069KA02
5C182AA03
5C182AB03
5C182AB08
5C182AC03
5C182AC12
5C182BA03
5C182BB03
5C182BC25
5C182CB41
5C182CB43
5C182CB55
5C182DA14
5C182DA53
(57)【要約】
【課題】アプリケーション実行環境において実行されるプログラムに従って表示されるアプリ画像がミラーリングの対象画像に含まれる場合であっても、ミラーリングできるようにする。
【解決手段】電子機器10Aは、表示装置130、及び処理装置110を備える。処理装置110は、表示装置に表示する画像の第1レイヤーにアプリケーション実行環境VMにおいて実行されるプログラムPRAに従って表示するコンテンツ画像を含む対象画像をキャプチャする。処理装置110は、キャプチャにより取得されるキャプチャ画像を外部装置に送信することにより、ミラーリングを行う。処理装置110は、ミラーリングを実行している期間に、コンテンツ画像とは異なる第2画像を第1レイヤーに繰り返し描画する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
表示装置と、前記表示装置に画像を表示する処理装置と、を備える電子機器における前記処理装置に、
前記表示装置に表示する画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像、を含む第1画像をキャプチャすることと、
前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、
前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、
を実行させる、プログラム。
【請求項2】
前記第2画像を繰り返し描画することは、前記第1レイヤーの少なくとも一部の画素に、透過色を繰り返し描画することを含む、請求項1に記載のプログラム。
【請求項3】
前記第2画像を繰り返し描画することは、
前記期間における第1時刻にキャプチャされた第1画像の、第1部分の色を取得することと、
前記第1レイヤーの、前記第1部分に対応する画素に、前記第1部分の色に応じた色を描画することと、
前記期間における前記第1時刻とは異なる第2時刻にキャプチャされた第1画像の、前記第1部分とは異なる第2部分の色を取得することと、
前記第1レイヤーの、前記第2部分に対応する画素に、前記第2部分の色に応じた色を描画することと、を含む、
請求項1に記載のプログラム。
【請求項4】
前記第2画像を繰り返し描画することは、
前記第1レイヤーにおいて、アイコン又はウィンドウ操作のボタンが表示される位置とは異なる位置に前記第2画像を描画することを含む、
請求項1、請求項2又は請求項3に記載のプログラム。
【請求項5】
前記第2画像は、予め定められた色の画像を含む、請求項1に記載のプログラム。
【請求項6】
前記第2画像は、前記送信することを実行していることを示す画像を含む、請求項1又は請求項5に記載のプログラム。
【請求項7】
表示装置と、前記表示装置に画像を表示する処理装置とを備える電子機器において前記表示装置に表示される画像のミラーリング方法であって、
前記表示装置に表示される画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像、を含む第1画像をキャプチャすることと、
前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、
前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、
を含むミラーリング方法。
【請求項8】
表示装置と、
前記表示装置に画像を表示する処理装置と、を含み、
前記処理装置は、
前記表示装置に表示する画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像、を含む第1画像をキャプチャすることと、
前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、
前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を実行する、
電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、ミラーリング方法、及び電子機器、に関する。
【背景技術】
【0002】
特許文献1には、表示手段に表示される画像をキャプチャすることによりキャプチャ画像を生成するキャプチャ手段と、他の装置に送信する映像のモードを切り換えるモード制御手段とを備える画像通信装置が開示されている。特許文献1におけるモードには、キャプチャ画像を他の装置に送信するミラーリングモードが含まれる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、ミラーリングモードにおいて、ミラーリングの対象の画像のキャプチャをいつ行うかについて、詳細には記載されていない。以下では、ミラーリング対象の画像は対象画像と称される。対象画像のキャプチャをいつ行うのかについては種々の態様が考えられる。一例としては、対象画像の更新を契機としてキャプチャする態様が考えられる。
【0005】
近年、あるOS(Operating System)向けに開発されたアプリケーションプログラムを他のOSにおいて実行できるようにするアプリケーション実行環境が種々提案されている。アプリケーション実行環境において実行されるアプリケーションプログラムに従って表示されるコンテンツ画像が対象画像に含まれる場合、アプリケーション実行環境によってはミラーリングに不具合が発生する場合がある。例えば、コンテンツ画像が更新されない限りキャプチャが行われないアプリケーション実行環境である場合、対象画像全体のミラーリングに支障が生じる。
【課題を解決するための手段】
【0006】
本開示の一態様によるプログラムは、表示装置と、前記表示装置に画像を表示する処理装置と、を備える電子機器における前記処理装置に、前記表示装置に表示される画像における第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って描画されるコンテンツ画像を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を実行させる。
【0007】
また、本開示の一の態様に係るミラーリング方法は、表示装置と、前記表示装置に画像を表示する処理装置とを備える電子機器において前記表示装置に表示される画像のミラーリング方法であって、前記表示装置に表示される画像における第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って描画されるコンテンツ画像を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を含む。
【0008】
また、本開示の一の態様に係る電子機器は、表示装置と、前記表示装置に画像を表示する処理装置と、を含み、前記処理装置は、前記表示装置に表示される画像における第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って描画されるコンテンツ画像を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を実行する。
【図面の簡単な説明】
【0009】
【
図1】本開示の第1実施形態による電子機器10Aを含む表示システム1の構成例を示す図である。
【
図2】電子機器10Aに表示される画像の一例を示す図である。
【
図3】電子機器10Aに表示される画像におけるレイヤーを説明するための図である。
【
図5】電子機器10Aの描画部110cが実行する処理を説明するための図である。
【
図6】電子機器10Aの処理装置110がプログラムPRAに従って実行するミラーリング方法における処理の流れを示すフローチャートである。
【
図8】電子機器10Bの更新部110fが実行する処理を説明するための図である。
【
図9】電子機器10Bの処理装置110がプログラムPRBに従って実行するミラーリング方法における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本開示の一実施形態による電子機器について図面を参照して説明する。なお、各図において、各部の寸法及び縮尺は、実際のものと適宜に異ならせてある。また、以下に述べる実施形態は、好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本開示の範囲は、以下の説明において特に本開示を限定する旨の記載がない限り、これらの形態に限られるものではない。
【0011】
(A:第1実施形態)
図1は、本開示の第1実施形態による電子機器10Aを含む表示システム1の構成例を示す図である。
図1に示されるように、表示システム1は、電子機器10Aの他に、電子機器20と、プロジェクター30と、無線中継装置40と、を含む。無線中継装置40は、例えば無線LAN(Local Area Network)のアクセスポイント装置である。無線中継装置40は、電子機器10A、電子機器20、及びプロジェクター30の各々の間の無線通信を中継する。表示システム1では、電子機器10Aは、無線中継装置40を介してプロジェクター30と通信する。また、表示システム1では、電子機器20は、無線中継装置40を介してプロジェクター30と通信する。表示システム1では、プロジェクター30は、電子機器10A又は電子機器20から送信された画像データの表す画像を投射スクリーン等の投射面に投射することにより画像を表示する。
図1に示す表示システム1には、1台のプロジェクター30が含まれているが、複数のプロジェクター30が表示システム1に含まれてもよい。プロジェクター30は本開示における外部装置の一例である。
【0012】
電子機器10A及び電子機器20は、プログラム実行機能を有する情報処理装置である。本実施形態では、電子機器10Aはタブレット端末であり、電子機器20はスマートフォンである。電子機器10A及び電子機器20の各々には、自装置において表示中の画像をキャプチャし、キャプチャした画像を表す画像データをプロジェクター30へ送信するプログラムPRAが記憶されている。表示システム1では、電子機器10AにおいてプログラムPRAを実行することによって、電子機器10Aにおいて表示中の画像をプロジェクター30に投射させること、即ち電子機器10Aの表示画像のミラーリングが実現される。同様に、表示システム1では、電子機器20においてプログラムPRAを実行することによって、電子機器20において表示中の画像のミラーリングが実現される。
【0013】
本実施形態におけるプログラムPRAは、電子機器20のOS向けに開発されたプログラムである。本実施形態では、電子機器10AのOSは電子機器20のOSとは異なる。このため、電子機器10AのOS上では、プログラムPRAを直接実行することはできない。本実施形態では、電子機器10AのOSの開発者によって、電子機器10AのOS上において電子機器20のOS向けのプログラムの実行を可能にするアプリケーション実行環境VMが提供されている。電子機器10Aは、アプリケーション実行環境VMを有する。電子機器10Aでは、アプリケーション実行環境VMを用いてプログラムPRAが実行される。
【0014】
電子機器10Aには、プログラムPRA及びアプリケーション実行環境VMの他に、文書作成ソフト又は表計算ソフト等の各種アプリケーションプログラムが予めインストールされている。電子機器10Aにインストールされている各種アプリケーションプログラムは、電子機器10AのOS向けに開発されたネイティブアプリと、他のOS向けに開発された非ネイティブアプリとに分類される。前述のプログラムPRAは、非ネイティブアプリの一例である。
【0015】
電子機器10Aでは、アプリケーション実行環境VM上でのプログラムPRAの実行と並列に、ネイティブアプリを実行することができる。アプリケーション実行環境VM上でのプログラムPRAの実行と並列にネイティブアプリを実行している電子機器10Aは、プログラムPRAに従って表示する画像GAとネイティブアプリに従って表示する画像GBとを含む画像GCを表示する。
図2は、電子機器10Aに表示される画像の一例を示す図である。画像GAは、例えばミラーリングのための各種操作をユーザーに行わせるためのメニュー画面の画像である。画像GBは、例えば文書作成ソフトに従って作成される文書の画像である。概念的には、画像GCは、画像GBが配置されるレイヤーL2と、レイヤーL1の上に重ねられ、画像GAが配置されるレイヤーL1と、に区分けされる。レイヤーL1には非ネイティブアプリの画像が表示される。以下ではレイヤーL1は非ネイティブレイヤーと称される。非ネイティブレイヤーは本開示における第1レイヤーの一例である。レイヤーL2にはネイティブアプリの画像が表示される。以下ではレイヤーL2はネイティブレイヤーと称される。
【0016】
図3は、電子機器10Aに表示される画像におけるレイヤーを説明するための図である。
図3に示される画像GCがミラーリングの対象である場合、アプリケーション実行環境VMの仕様によっては、ネイティブレイヤーの更新が検出されず、ミラーリングに支障が生じる場合がある。また、アプリケーション実行環境VMのバグにより同様の不具合が発生する場合もある。本実施形態におけるプログラムPRAは、このような不具合を回避できるように構成されており、この点に本実施形態の特徴が表れている。以下、プログラムPRA及びアプリケーション実行環境VMを有する電子機器10Aを中心に説明する。
【0017】
図4は、電子機器10Aの構成例を示す図である。
図4に示されるように、電子機器10Aは、処理装置110、通信装置120、表示装置130、入力装置140、及び記憶装置150を有する。処理装置110は、例えばCPU(Central Processing Unit)等のプロセッサー、即ちコンピューターを含んで構成される。処理装置110は、単一のプロセッサーで構成されてもよいし、複数のプロセッサーで構成されてもよい。処理装置110は、記憶装置150に記憶されているプログラムPRAに従って作動することにより、電子機器10Aの制御中枢として機能する。
【0018】
通信装置120は、無線中継装置40と無線により通信する無線通信回路である。通信装置120は、処理装置110から与えられる画像データを無線中継装置40へ送信する。表示装置130は、処理装置110から与えられる画像データの表す画像を表示する。本実施形態における表示装置130は、液晶ディスプレイ装置である。入力装置140は、ユーザーの各種入力操作を受け付ける複数の操作子を含む。複数の操作子の具体例としては、ボタン、スイッチ、テンキー及びカーソルキーが挙げられる。入力装置140は、これら複数の操作子に対するユーザーの操作内容を示すデータを処理装置110に出力する。これにより、ユーザーの操作内容が処理装置110に伝達される。
【0019】
記憶装置150は、処理装置110が読み取り可能な記録媒体である。記憶装置150は、例えば、不揮発性メモリーと揮発性メモリーとを含む。不揮発性メモリーは、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)又はEEPROM(Electrically Erasable Programmable Read Only Memory)である。揮発性メモリーは、例えば、RAM(Random Access Memory)である。
【0020】
記憶装置150の不揮発性メモリーには、前述のプログラムPRA、アプリケーション実行環境VM、電子機器10AのOSを実現するカーネルプログラム、プログラムPRA以外の各種非ネイティブアプリ、及び各種ネイティブアプリが予め記憶されている。
図4では、カーネルプログラム、プログラムPRA以外の非ネイティブアプリ、及びネイティブアプリの図示は省略されている。記憶装置150の揮発性メモリーは、これらプログラムを実行する際のワークエリアとして処理装置110によって利用される。
【0021】
処理装置110は、電子機器10Aの電源投入を契機としてカーネルプログラムを不揮発性メモリーから揮発性メモリーへ読み出し、読み出したカーネルプログラムを実行する。なお、
図4では、電子機器10Aの電源の図示は省略されている。電子機器10Aでは、処理装置110にカーネルプログラムを実行させることによって、OSが実現される。OSを実現している状態の電子機器10Aでは、入力装置140に対する操作により実行を指示されたプログラムが不揮発性メモリーから揮発性メモリーへ読み出され、読み出されたプログラムが実行される。例えば、何れかのネイティブアプリの実行を指示された場合、処理装置110は該当するネイティブアプリを不揮発性メモリーから揮発性メモリーへ読み出し、読み出したネイティブアプリを実行する。また、プログラムPRAの実行を指示されると、処理装置110は、まず、アプリケーション実行環境VMを実行し、このアプリケーション実行環境VMを用いてプログラムPRAを実行する。
【0022】
プログラムPRAを実行中の処理装置110は、
図4に示されるキャプチャ部110a、送信部110b、描画部110cとして機能する。つまり、
図4に示されるキャプチャ部110a、送信部110b、及び描画部110cは、何れも、CPU等のコンピューターをソフトウェアに従って作動させることにより実現されるソフトウェアモジュールである。キャプチャ部110a、送信部110b、及び描画部110cの各々の機能は次の通りである。
【0023】
キャプチャ部110aは、アプリケーション実行環境VMにおいて実行されるプログラムPRAに従って非ネイティブレイヤーに表示する画像GAを含む画像GCをキャプチャする。このメニュー画面の画像GAは本開示におけるコンテンツ画像の一例である。本実施形態では、キャプチャ部110aによりキャプチャされる画像GCがミラーリングの対象、即ち対象画像となる。対象画像は本開示における第1画像の一例である。キャプチャ部110aは、非ネイティブレイヤーの更新がアプリケーション実行環境VMにより検出されたことを契機として対象画像をキャプチャする。キャプチャ部110aは、キャプチャした画像を表す画像データを記憶装置150に記憶させる。キャプチャ部110aによりキャプチャされた画像は本開示におけるキャプチャ画像の一例である。以下では、キャプチャ部110aによりキャプチャされた画像を表す画像データはキャプチャ画像データと称される。
【0024】
送信部110bは、対象画像のキャプチャがキャプチャ部110aによって行われる毎に、キャプチャ画像データを、通信装置120を用いて無線中継装置40経由でプロジェクター30へ送信する。これにより、表示装置130に表示中の画像のミラーリングが実現される。
【0025】
図5は、描画部110cが実行する処理を説明するための図である。描画部110cは、送信部110bによるキャプチャ画像データの送信が行われる期間において、コンテンツ画像とは異なる画像GT1を、レイヤーL1即ち非ネイティブレイヤーに、所定の周期で繰り返し描画する。送信部110bによるキャプチャ画像データの送信が行われる期間とは、ミラーリングが実行されている期間の意味である。前述した非ネイティブレイヤーは本開示における第1レイヤーの一例である。描画部110cにより第1レイヤーに描画される画像GT1は本開示における第2画像の一例である。
【0026】
前述したように、プログラムPRAは、本来、電子機器20のOS向けに開発されたプログラムであり、電子機器20のOSでは、オブジェクトの画像を描画する仕組みとして、透過色のオブジェクトを描画できるものの、処理速度が遅い第1の仕組みと、透過色のオブジェクトを描画できないものの、処理速度が速い第2の仕組みとが予め用意されている。例えば、電子機器20のOSがAndroidであれば、第1の仕組みは、Viewであり、第2の仕組みはSurfaceViewである。なお、Androidは登録商標である。
【0027】
本実施形態における描画部110cは、上述の第1の仕組みを用いて、非ネイティブレイヤーの中央右端に位置する一つの画素に、透過色を繰り返し描画することにより、画像GT1を描画する。通常、色は、透過度(α)、赤成分の値(R)、緑成分の値(G)、及び青成分の値(B)の組み合わせで表現され、α、R、G及びBの各々は0~255の範囲内の値である。本実施形態における透過色は、αを1/255に設定した色である。例えば、赤の透過色は(α、R、G、B)=(1、255、0、0)と表される。αを1/255に設定した色が一つの画素に描画されても、肉眼での識別はほぼ不可能である。非ネイティブレイヤーの中央右端に位置する一つの画素に透過色を描画することによって、ユーザーの目には実質的には見えない非ネイティブレイヤーの更新を発生させることができる。本実施形態では、描画部110cは、非ネイティブレイヤーの中央右端に位置する一つの画素に、赤の透過色を繰り返し描画するが、青の透過色を繰り返し描画してもよい。また、描画部110cは、非ネイティブレイヤーの中央右端に位置する一つの画素に、赤の透過色と青の透過色とを交互に描画してもよい。人間工学的には、人間の目は緑を識別しやすいため、青と赤の描画であれば、より識別し難くなると考えられる。
【0028】
図5では、画像GT1を描画するために透過色が繰り返し描画される画素がハッチングで示されている。非ネイティブレイヤーにおける中央右端の一つの画素に透過色を描画する理由は次の通りである。一般に、UI(User Interface)画面の左上隅及び右上隅には、ウィンドウを閉じるためのボタン等のウィンドウ操作のためのボタンが配置されることが多い。また、UI画面の左下隅にはスタートメニューアイコンが配置されることが多く、UI画面の右下隅には時計等のアイコンが配置されることが多い。このため、UI画面の四隅にはユーザーの目が向き易いと考えられる。また、日本語対応のUI画面であれば、当該画面を構成する各項目は左から右に向かう方向に並べられることが多い。従って、画面の中央右端にはユーザーの目は向きにくいと考えられる。非ネイティブレイヤーにおける中央右端の一つの画素に透過色を描画するのは、画像GT1が目立たないようにするためである。
【0029】
本実施形態では、非ネイティブレイヤーには画像GT1が繰り返し描画されるので、仕様又はバグによりアプリケーション実行環境VMにおいて非ネイティブレイヤー以外の更新、即ちネイティブアプリの画像の更新が検出されない場合であっても、画像GT1が描画される毎に対象画像がキャプチャされる。このため、画像GT1の描画を実行する周期が十分に短く設定されていれば、対象画像のミラーリングに支障が生じることはない。
【0030】
また、プログラムPRAに従って作動している処理装置110は、本開示の特徴を顕著に示すミラーリング方法を実行する。
図6は、このミラーリング方法における処理の流れを示すフローチャートである。
図6に示されるように、このミラーリング方法は、第1判定処理SA110、第2判定処理SA120、描画処理SA130、キャプチャ処理SA140、及び送信処理SA150を含む。第1判定処理SA110、第2判定処理SA120、描画処理SA130、キャプチャ処理SA140、及び送信処理SA150の各々の処理内容は次の通りである。
【0031】
第1判定処理SA110では、処理装置110は、入力装置140に対する操作により、ミラーリングの修了を指示されたか否かを判定する。入力装置140から処理装置110に与えられるデータが、ミラーリングの終了を指示する操作子の押下を示す場合、第1判定処理SA110の判定結果は“Yes”となり、ミラーリングの終了を指示する操作子以外の操作子の押下を示す場合、第1判定処理SA110の判定結果は“No”となる。第1判定処理SA110の判定結果が“Yes”である場合、処理装置110は、本ミラーリング方法の実行を終了する。プログラムPRAの実行を開始してから第1判定処理SA110の判定結果は“Yes”となるまでの期間が、ミラーリングが実行されている期間となる。第1判定処理SA110の判定結果が“No”である場合、処理装置110は、第2判定処理SA120を実行する。
【0032】
第2判定処理SA120では、処理装置110は、前回の画像GT1の描画から所定周期に応じた時間が経過したか否かを判定する。プログラムPRAの実行開始後に第2判定処理SA120が初めて実行される場合、又は前回の画像GT1の描画から所定周期に応じた時間が経過した場合に、第2判定処理SA120の判定結果は“Yes”となる。プログラムPRAの実行開始後、2回目以降に実行される第2判定処理SA120では、前回の画像GT1の描画から所定周期に応じた時間が経過していない場合に判定結果が“No”となる。第2判定処理SA120の判定結果が“No”である場合、処理装置110は、第1判定処理SA110を再度実行する。第2判定処理SA120の判定結果が“Yes”である場合、処理装置110は、描画処理SA130以降の処理を実行する。
【0033】
描画処理SA130では、処理装置110は、描画部110cとして機能する。描画処理SA130では、処理装置110は、前述の画像GT1を非ネイティブレイヤーに描画する。
【0034】
描画処理SA130に後続するキャプチャ処理SA140では、処理装置110は、キャプチャ部110aとして機能する。キャプチャ処理SA140では、処理装置110は、非ネイティブレイヤーの更新がアプリケーション実行環境VMにより検出されたことを契機として対象画像をキャプチャする。そして、キャプチャ処理SA140では、処理装置110は、キャプチャ画像データを記憶装置150に記憶させる。
【0035】
キャプチャ処理SA140に後続する送信処理SA150では、処理装置110は、送信部110bとして機能する。送信処理SA150では、処理装置110は、キャプチャ処理SA140にて記憶装置150に書き込まれたキャプチャ画像データを、通信装置120を用いてプロジェクター30へ送信する。送信処理SA150の実行を完了すると、処理装置110は、第1判定処理SA110以降の処理を再度実行する。
【0036】
以上説明したように、本実施形態によれば、仕様又はバグによりアプリケーション実行環境VMにおいて非ネイティブレイヤー以外の更新が検出されない場合であっても、対象画像のミラーリングに支障が生じることはない。
【0037】
(B:第2実施形態)
図7は、本開示の電子機器の第2実施形態による電子機器10Bの構成例を示す図である。電子機器10Bは、電子機器10Aと同様にタブレット端末である。
図7では、
図4におけるものと同一の構成要素には同一の符号が付されている。
図7と
図4とを比較すれば明らかなように、電子機器10Bの構成はプログラムPRAに代えてプログラムPRBが記憶装置150に記憶されている点において電子機器10Aの構成と異なる。以下では、第1実施形態と共通の構成については同一の符号を付し、詳細な説明を省略する。
【0038】
プログラムPRBは、プログラムPRAと同様に電子機器20のOS向けに開発されたプログラムである。プログラムPRBは、プログラムPRAと同様にミラーリングを実現するためのプログラムである。本実施形態では、電子機器10BのOSは電子機器10AとOSと同一であり、電子機器10BにおいてプログラムPRBを実行するには、前述のアプリケーション実行環境VMが必要となる。
図7に示されるように、電子機器10Bは、アプリケーション実行環境VMを有する。
【0039】
電子機器10Bの処理装置110は、プログラムPRBを実行することにより、
図7に示されるキャプチャ部110a、送信部110b、取得部110d、描画部110e、及び更新部110fとして機能する。つまり、
図7に示されるキャプチャ部110a、送信部110b、取得部110d、描画部110e、及び更新部110fは、何れも、CPU等のコンピューターをソフトウェアに従って作動させることにより実現されるソフトウェアモジュールである。第1実施形態との相違点である取得部110d、描画部110e、及び更新部110fの各々の機能は次の通りである。
【0040】
取得部110dは、対象画像における処理対象位置の画素の色を取得する。本実施形態では、処理対象位置の初期値として対象画像の右上隅の位置が予め定められており、この処理対象位置は、描画部110eによる描画の周期に応じた時間が経過する毎に、更新部110fによって順次更新される。
図8は、更新部110fが実行する処理を説明するための図である。
図8に示されるように、更新部110fは、描画部110eによる描画の周期に応じた時間が経過する毎に、処理対象位置を1画素分だけ下の位置に順次更新する。なお、処理対象位置が右下隅の位置に到達すると、更新部110fは、処理対象位置を右上隅の位置に戻す。このように、処理対象位置は順次更新されるので、ミラーリングを実行している期間における第1時刻において処理対象位置の示す第1部分と、当該期間における第1時刻とは異なる第2時刻において処理対象位置が示す第2部分とは異なることになる。
【0041】
描画部110eは、ミラーリングが実行されている期間において、コンテンツ画像とは異なる画像GT2を、レイヤーL1即ち非ネイティブレイヤーに、所定の周期で繰り返し描画する。描画部110eは、前述の第2の仕組みを用いて、画像GT2を非ネイティブレイヤーに描画する。
図8に示されるように、描画部110eは、非ネイティブレイヤーにおける処理対象位置に、取得部110dにより取得された色に1/255の割合で青をαブレンドすることで得られた色の画像を描画することにより、画像GT2を描画する。青をαブレンドするのは、青は、赤、緑、及び青の三色のうち人間工学的に最も色の識別感度が低い色であり、αブレンド後の色の変化をユーザーに感じにくくさせるためである。画像GT2は本開示における第2画像の一例である。
【0042】
前述したように第2の仕組みは透過色を扱えない。処理対象位置に白又は黒等の予め定められた色を描画すると、当該色と対象画像における処理対象位置の色との差が大きい場合に画像GT2が目立つといった不具合が発生する。本実施形態では、対象画像における処理対象位置の色に応じた色が非ネイティブレイヤーにおける処理対象位置に描画されるので、上記不具合の発生が回避される。
【0043】
本実施形態では、描画部110eは、第2の仕組みを用いて、画像GT2、即ち第2画像を描画するため、第1実施形態に比較して第2画像の描画速度が向上する。また、処理対象位置を1画素分ずつ更新する理由は次の通りである。処理対象位置を固定にすると、取得部110dにより取得される色は、描画部110eにより前回描画された画素の色にほかならず、処理対象画像における本来の色ではない。このため、取得部110dによる色の取得及び描画部110eによる描画を繰り返すと、非ネイティブレイヤーにおいて処理対象位置に配置される画像が変化した場合に、変化後の画像における色に追従できず、画像GT2が目立つといった不具合が発生する。このような不具合の発生を回避するため、予め第1の処理対象位置と第2の処理対象位置とを用意し、取得部110dによる色の取得及び描画部110eによる描画を行う毎に処理対象位置を交互に切り替えることも考えられる。しかし、キャプチャと描画のスレッドが異なり、タイミング次第では第1の処理対象位置と第2の処理対象位置とを切り替えでは対処できない場合がある。このため、本実施形態における更新部110fは、処理対象位置を連続的に1画素分ずつ更新する。
【0044】
また、プログラムPRBに従って作動している処理装置110は、本開示の特徴を顕著に示すミラーリング方法を実行する。
図9は、このミラーリング方法における処理の流れを示すフローチャートである。
図9に示されるように、このミラーリング方法は、描画処理SA130に代えて、取得処理SB110、描画処理SB120、及び更新処理SB130を含む点において第1実施形態におけるミラーリング方法と異なる。
【0045】
取得処理SB110では、処理装置110は、取得部110dとして機能する。取得処理SB110では、処理装置110は、処理対象画像における処理対象位置の画素の色を取得する。描画処理SB120では、処理装置110は、描画部110eとして機能する。描画処理SB120では、処理装置110は、取得部110dにより取得された色に1/255の割合で青をαブレンドすることで得られた色の画像を非ネイティブレイヤーにおける処理対象位置に描画する。更新処理SB130では、処理装置110は、更新部110fとして機能し、処理対象位置を1画素分だけ下の位置に更新する。
【0046】
以上説明したように、本実施形態によれば、第1実施形態と同様に、仕様又はバグによりアプリケーション実行環境VMにおいて非ネイティブレイヤー以外の更新が検出されない場合であっても、対象画像のミラーリングに支障が生じることはない。また、本実施形態によれば、第1実施形態に比較して第2画像の描画速度が向上するので、ゲームの画像等の高速な描画が要求されるコンテンツ画像が対象画像に含まれる場合であっても、対象画像のミラーリングを支障なく行うことができる。
【0047】
(C:変形)
以上、本開示の第1実施形態及び第2実施形態について説明したが、これら実施形態は以下のように変形されてもよい。
(C-1:変形例1)
上記各実施形態ではプロジェクター30が外部装置であったが、電子機器10A又は電子機器10Bから送信される画像データを記憶する記憶装置が外部装置であってもよい。また、FPD(Flat Panel Display)が外部装置であってもよい。
【0048】
(C-2:変形例2)
描画部110cが透過色を描画する画素の数は一つには限定されず、二つ以上であってもよい。また、描画部110cが透過色を描画する位置は、非ネイティブレイヤーの中央右端には限定されない。描画部110cが透過色を描画する位置は、アイコン又はウィンドウ操作のボタンが表示される位置とは異なる位置であればよい。要は、描画部110cは、非ネイティブレイヤーの少なくとも一部に透過色を描画すればよい。なお、右から左へ向けて文字を綴る言語に対する電子機器10Aであれば、画像における中央左端にはユーザーの目は向きにくいと考えられるので、描画部110cは中央左端の画素に透過色を描画してもよい。従って、透過色を繰り返し描画する画素の位置は電子機器10Aの対応言語に応じて設定されてもよい。
【0049】
また、ネイティブレイヤーに真っ白又は真っ黒な画像が配置される場合、描画部110cは、透過色に代えて薄い灰色又は薄い灰色よりも少し濃い灰色を、非ネイティブレイヤーの一つの画素に描画してもよい。薄い灰色の具体例としては、(α、R、G、B)=(1、1、1、1)の色が挙げられる。薄い灰色よりも少し濃い灰色の具体例としては、(α、R、G、B)=(2、1、1、1)の色が挙げられる。ネイティブレイヤーに配置される画像が真っ白又は真っ黒な画像である場合、非ネイティブレイヤーの一つの画素に描画される色は赤の透過色よりも、薄い灰色又は薄い灰色よりも少し濃い灰色である方が、第2画像が目立たなくなると考えられるからである。また、第2画像として、赤、青、黒、又は白等の透過色以外の予め定められた色の画像が用いられてもよい。本態様によれば、第2画像を目立たせ、ミラーリングを実行中であることをユーザーに明示することができる。また、「ミラーリングを実行中」等の文言を表す画像等、ミラーリングを実行していることを示す画像を第2画像として用いることによって、ミラーリングを実行中であることがユーザーに明示されてもよい。
【0050】
(C-3:変形例3)
上記第1実施形態におけるキャプチャ部110a、送信部110b、及び描画部110cは何れもソフトウェアモジュールであったが、キャプチャ部110a、送信部110b、及び描画部110cのうちの任意の一つ、任意の二つ、又は全部が電子回路等で構成されたハードウェアモジュールであってもよい。キャプチャ部110a、送信部110b、及び描画部110cのうちの任意の一つ、任意の二つ、又は全部がハードウェアモジュールであっても、第1実施形態と同一の効果が奏される。同様に、第2実施形態における取得部110d、描画部110e、及び更新部110fもハードウェアモジュールであってもよい。第2実施形態における取得部110d、描画部110e、及び更新部110fのうちの任意の一つ、任意の二つ、又は全部がハードウェアモジュールであっても、第2実施形態と同一の効果が奏される。
【0051】
(C-4:変形例4)
プログラムPRAは単体で製造されてもよく、また、有償又は無償で提供されてもよい。プログラムPRAの具体的な提供態様としては、フラッシュROM等のコンピューター読み取り可能な記録媒体にプログラムPRAを書き込んで配布する態様、又はインターネット等の電気通信回線経由のダウロードによりプログラムPRAを配布する態様が挙げられる。同様に、プログラムPRBが単体で製造されてもよく、また、有償又は無償で提供されてもよい。
【0052】
(D:本開示のまとめ)
本開示は、上述した実施形態及び変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の態様で実現することができる。例えば、本開示は、以下の態様によっても実現可能である。以下に記載した各態様中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、或いは本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
以下、本開示のまとめを付記する。
【0053】
(付記1)本開示の一態様によるプログラムは、表示装置と、前記表示装置に画像を表示する処理装置と、を備える電子機器における前記処理装置に、前記表示装置に表示する画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を実行させる。
【0054】
(付記1)に記載のプログラムによれば、第1レイヤーには第2画像が繰り返し描画されるので、仕様又はバグによりアプリケーション実行環境において第1レイヤー以外の更新が検出されない場合であっても、第2画像が描画される毎に第1画像がキャプチャされる。このため、(付記1)に記載のプログラムによれば、仕様又はバグによりアプリケーション実行環境において第1レイヤー以外の更新が検出されない場合であっても、外部装置との間の第1画像のミラーリングに支障が生じることはない。
【0055】
(付記2)前記プログラムは、前記第2画像を繰り返し描画することは、前記第1レイヤーの少なくとも一部の画素に、透過色を繰り返し描画することである、(付記1)に記載のプログラムである。
【0056】
(付記2)に記載のプログラムによれば、ユーザーの眼から見て第2画像が目立たないようにすることができる。
【0057】
(付記3)前記プログラムは、前記第2画像を繰り返し描画することは、前記期間における第1時刻にキャプチャされた第1画像の、第1部分の色を取得することと、前記第1レイヤーの、前記第1部分に対応する画素に、前記第1部分の色に応じた色を描画することと、前記第1時刻とは異なる前記期間における第2時刻にキャプチャされた第1画像の、前記第1部分とは異なる第2部分の色を取得することと、前記第1レイヤーの、前記第2部分に対応する画素に、前記第2部分の色に応じた色を描画することと、を含む、(付記1)に記載のプログラムである。
【0058】
(付記3)に記載のプログラムによれば、第1画像が時間変化する場合であっても、ユーザーの眼から見て第2画像が目立たないようにすることができる。
【0059】
(付記4)前記プログラムは、前記第2画像を繰り返し描画することは、前記第1レイヤーにおいて、アイコン又はウィンドウ操作のボタンが表示される位置とは異なる位置に前記第2画像を描画することを含む、(付記1)~(付記3)の何れかに記載のプログラムである。
【0060】
(付記4)に記載のプログラムによれば、ユーザーの眼から見て第2画像が目立たないようにすることができる。
【0061】
(付記5)前記プログラムは、前記第2画像は、予め定められた色の画像を含む、(付記1)~(付記4)の何れかに記載のプログラムである。
【0062】
(付記5)に記載のプログラムによれば、第2画像を敢えて目立たせることによりミラーリングを行っていることをユーザーに明示しつつ、外部装置との間の第1画像のミラーリングを支障なく行うことがきる。
【0063】
(付記6)前記プログラムは、前記第2画像は、前記送信することを実行していることを示す画像を含む、(付記1)~(付記5)の何れかに記載のプログラムである。
【0064】
(付記6)に記載のプログラムによれば、ミラーリングを行っていることをユーザーに明示しつつ、外部装置との間の第1画像のミラーリングを支障なく行うことがきる。
【0065】
(付記7)本開示の一の態様に係るミラーリング方法は、表示装置と、前記表示装置に画像を表示する処理装置とを備える電子機器において前記表示装置に表示される画像のミラーリング方法であって、前記表示装置に表示される画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像、を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を含む。
【0066】
(付記7)に記載のミラーリング方法によれば、(付記1)に記載のプログラムと同様に、仕様又はバグによりアプリケーション実行環境において第1レイヤー以外の更新が検出されない場合であっても、外部装置との間の第1画像のミラーリングに支障が生じることはない。
【0067】
(付記8)本開示の一の態様に係る電子機器は、表示装置と、前記表示装置に画像を表示する処理装置と、を含み、前記処理装置は、前記表示装置に表示する画像の第1レイヤーにアプリケーション実行環境において実行されるアプリケーションプログラムに従って表示するコンテンツ画像、を含む第1画像をキャプチャすることと、前記キャプチャすることによって取得されるキャプチャ画像を外部装置に送信することと、前記送信することを実行している期間に、前記コンテンツ画像とは異なる第2画像を前記第1レイヤーに繰り返し描画することと、を実行する。
【0068】
(付記8)に記載の電子機器によれば、(付記1)に記載のプログラム又は(付記7)に記載のミラーリング方法と同様に、仕様又はバグによりアプリケーション実行環境において第1レイヤー以外の更新が検出されない場合であっても、外部装置との間の第1画像のミラーリングに支障が生じることはない。
【符号の説明】
【0069】
1…表示システム、10A,10B,20…電子機器、30…プロジェクター、40…無線中継装置、110…処理装置、110a…キャプチャ部、110b…送信部、110c,110e…描画部、110d…取得部、110f…更新部、120…通信装置、130…表示装置、140…入力装置、150…記憶装置、PRA,PRB…プログラム、VM…プログラム。