(57)【要約】【課題】評価版のグラフィックスソフトウェアを見分けることの出来る処理を施すグラフィックス表示装置を提供する。【解決手段】VRAMに評価版であることを表示するbitmapのパターンを有するカーソルパターンを格納し、Graphics Display Controller（GDC）の表示レジスタに、カーソルパターンの表示位置等の情報を設定する。GDCの、ハードウェアによってカーソルを表示する処理を使って、bitmapを表示する。カーソルパターンの表示プロセスは、図形の描画実行プロセスと共に呼び出すようにする。【選択図】図５
2010152430.tif 000002
【特許請求の範囲】
【請求項１】
図形の描画を行うグラフィックスソフトウェアが評価版であることを示す表示を行うグラフィックス表示装置において、
該グラフィックスソフトウェアが評価版であることを示す表示パターンを格納する格納部と、
該表示パターンの表示の仕方を示すパラメータを格納する表示レジスタと、
前記図形描画とは別個の、ハードウェア処理によってカーソルを表示する機能によって、該パラメータに指定された表示の仕方で、該表示パターンを表示する表示部と、
を備えることを特徴とするグラフィックス表示装置。
【請求項２】
前記表示部は、前記表示パターンの表示を、前記図形の描画の実行プロセス内で実行することを特徴とする請求項１に記載のグラフィックス表示装置。
【請求項３】
前記表示部は、前記図形の描画の実行プロセスが所定回呼び出されるたびに、前記表示パターンの表示プロセスを実行することを特徴とする請求項２に記載のグラフィックス表示装置。
【請求項４】
前記表示部は、所定時間経過ごとに、前記表示パターンの表示プロセスを実行することを特徴とする請求項３に記載のグラフィックス表示装置。
【請求項５】
前記表示部に、所定のコードが設定された場合、前記表示パターンの表示を停止させることを特徴とする請求項１に記載のグラフィックス表示装置。
【請求項６】
前記表示レジスタは、少なくとも、前記表示パターンの前記格納手段内のアドレス、該表示パターンの表示位置座標、該表示パターンの色設定のパラメータを格納することを特徴とする請求項１に記載のグラフィックス表示装置。
【請求項７】
前記ハードウェア処理によってカーソルを表示する機能は、前記表示レジスタに前記パラメータを格納することによって、稼動することを特徴とする請求項１に記載のグラフィックス表示装置。
【請求項８】
前記表示パターンを表示するルーチンを、ＣＰＵによる描画レイヤから切り離し、ＣＰＵと異なる前記表示部の制御配下にすることを特徴とする請求項１に記載のグラフィックス表示装置。
【請求項９】
図形の描画を行うグラフィックスソフトウェアが評価版であることを示す表示を行うグラフィックス表示方法において、
該グラフィックスソフトウェアが評価版であることを示す表示パターンを格納し、
該表示パターンの表示の仕方を示すパラメータを格納し、
ハードウェア処理によってカーソルを表示する機能によって、該パラメータに指定された表示の仕方で、該表示パターンを表示する、
ことを特徴とするグラフィックス表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス表示装置に関する。
【背景技術】
【０００２】
従来、評価版と製品版のグラフィックスソフトウェアとを区別する方法は、機能制限を設ける程度の簡易な技術しかなかった。また、従来、評価版グラフィックスソフトウェアのバイナリファイルには不正利用対策が施されていないため、不正に製品に組み込まれても、評価版であることが判別不可能であった。
【０００３】
更に、従来手法では、使用しているグラフィックスソフトウェアが評価版であることを表示するbitmapを描画レイヤと同レイヤにソフトウェアで描画することも行われていたが、描画処理速度が遅くなる等の事態が発生していた。
【０００４】
すなわち、図1に示す従来技術においては、描画ソフトウェアが描画を行う描画レイヤに、グラフィックスソフトウェアが評価版であることを表示するbitmapを描画していた。ここで、描画とは、表示用メモリに画像データを展開することを示し、表示とは、表示画面に画像を映し出すことを意味する。以下の説明においても同様である。グラフィックスソフトウェアが評価版であることを表示するbitmapを描画レイヤに描画するとは、描画された画像データに上書きするように、bitmapのデータを表示用メモリに書き込むことを意味する。したがって、描画ソフトウェアで描画された描画データは、表示用メモリ上で変更を受けてしまい、描画ソフトウェアで描画された画像を正しく評価することが難しくなると共に、bitmapの描画処理が図形の描画処理に追加されるので、描画処理が遅くなるという事態を引き起こす。
【０００５】
図２及び図３は、従来技術の描画処理フローである。
図２において、最初に、ステップＳ１０において、図形描画ルーチンが呼び出され、図形の描画コマンドが生成される。次に、ステップＳ１１において、グラフィックスソフトウェアが評価版であることを表示するbitmapを描画する。ここでは、bitmapの描画のための描画コマンドを生成する。ステップＳ１２において、描画フラッシュ関数を呼び出し、生成された描画コマンドを実行して、描画を行う。図３にあるように、ステップＳ１２の描画フラッシュ関数は、ステップＳ１５において、描画フラッシュ処理を行うものであるが、ユーザアプリケーションから呼び出されるものである。描画フラッシュ関数を呼び出すことで、図形の描画が開始されるため、ユーザは、描画を行う場合には、必ず呼び出さなければならない関数である。
【０００６】
特許文献１には、装置ＩＤとソフトウェアコードに埋め込まれた装置ＩＤとを照合し、照合結果に基づいて、ソフトウェアの使用の可否を判断する、ソフトウェアの不正使用を防止する方法が開示されている。
【０００７】
特許文献２には、カーソルを表示するための制御回路が開示されている。
【特許文献１】特開２００１−２６５５８１号公報
【特許文献２】特開平１−１６９４８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、評価版のグラフィックスソフトウェアを見分けることの出来る処理を施すグラフィックス表示装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明のグラフィックス表示装置は、図形の描画を行うグラフィックスソフトウェアが評価版であることを示す表示を行うグラフィックス表示装置において、該グラフィックスソフトウェアが評価版であることを示す表示パターンを格納する格納部と、該表示パターンの表示の仕方を示すパラメータを格納する表示レジスタと、ハードウェア処理によってカーソルを表示する機能によって、該パラメータに指定された表示の仕方で、該表示パターンを表示する表示部とを備える。
【発明の効果】
【００１０】
本発明によれば、評価版のグラフィックスソフトウェアを見分けることの出来る処理を施すグラフィックス表示装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態においては、図４に示されるように、ソフトウェアで絵を描画する描画レイヤとは別に、カーソルを表示する処理に関連するカーソルレイヤに、ハードウェアを用いて、グラフィックスソフトウェアが評価版であることを表示するbitmapを表示する。すなわち、bitmapを、カーソルを表示する機能（ハードウェアによる表示処理）を使って、表示する。
【００１２】
具体的には、以下の機能を備える。
・評価版であることを示すbitmapをカーソル番号0と1（２つのカーソルが表示可能として、カーソルをカーソル番号0と1で特定しているものとする）に設定し、常に一定の位置に表示する。カーソル表示はハードウェア(Graphics Display Controller、以下GDCと略す)が行うため、ソフトウェアの動作とは独立してカーソル表示を行うことが出来、ソフトウェアの描画機能と性能への悪影響はない。
・カーソルパターンはVRAMに配置する。
・グラフィックスソフトウェアが評価版であることを表示するbitmapを表示するタイミングは、以下の描画フラッシュ関数がそれぞれ一定間隔で呼ばれる都度。たとえば100回毎であれば、0、100、200・・・のタイミングで表示する。念のため、ユーザが違法な回避処理を入れていないか、抜き打ちで関連する表示レジスタをチェックして、変更されていた場合は、後述の値を再設定する。
【００１３】
＜描画フラッシュ関数＞
- eglSwapBuffers
- glFlush
- glFinish
上記描画フラッシュ関数は、以下のような意味を持っている。
【００１４】
(1)eglSwapBuffers
書式：EGLBoolean eglSwapBuffers(EGLDisplay display, EGLSurface surface);
引数：display EGLDisplayを指定する。
surface EGLウインドウサーフェースを指定する。
説明：BackバッファとFrontバッファを交換する。
補足：EGLは、OpenGL ESと下位ネイティブプラットフォームが提供するウィンドウシステムとの間のインタフェースである。OpenGL ES(OpenGL for Embedded Systems)は、組み込み用途向けOpenGLのサブセット版グラフィックスライブラリである。
【００１５】
(2)glFlush
書式：void glFlush(void);
説明：以前に発行したOpenGL ESコマンドの実行を強制的に開始する。これにより、こ
れらのコマンドが有限時間内で完了することが保証される。
【００１６】
(3)glFinish
書式：void glFinish(void);
説明：これまでに発行されたOpenGL ESコマンドを全て強制的に完了させる。本関数は、発行済みコマンドの実行が完全に完了するまで戻らない。
【００１７】
更に、以下のような機能を備える。
・ユーザがアプリケーションで、カーソル表示をOffにしたり、画面外に座標を設定したり、パレット（カーソルの表示色の設定）を透明色にしたりして、プロテクトが外されることを考慮して、以下の値を再設定する。以下の括弧内の名称はGDCのレジスタ名（後述）である。
- カーソル番号0,1アドレス（CUOA0、CUOA1）
- カーソル番号0,1座標（CUY0_CUX0、CUY1_CUX1）
- カーソルレイヤパレット（L0PAL0〜L0PAL7）※8色程度
- カーソルレイヤイネーブル（DLS）
- メインメモリからVRAMへカーソルパターンをコピーする
- カーソル表示On（CPM_CUTC）
【００１８】
以上の構成により、グラフィックスソフトウェアが評価版であることを表示するbitmapをハードウェアで表示するため、ソフトウェアの描画性能への悪影響を最小限に抑えられる。つまり評価版でも製品版とほぼ同等の性能評価ができる。
【００１９】
また、評価版グラフィックスソフトウェアが不正に製品に組み込まれても、評価版であることが一意に分かるようになり、不正利用を抑止できる。
更に、製品版グラフィックスソフトウェアの購入検討を不正利用者に促すことができる。
【００２０】
本実施形態では、どんな不正対策がされてもカーソル表示状態を永続的に迂回することは不可能なため、確実に不正利用されているか否かが目視確認できる。
図５は、本発明の実施形態のグラフィックス表示装置のシステム構成図である。
【００２１】
CPU１０は、メインメモリ１１、VRAM１３、GDC１４とバス１２によって接続されている。メインメモリ１１には、グラフィックスソフトウェアが評価版であることを表示するbitmapのパターンを有する、カーソルのオリジナルパターンが格納される。VRAM１３には、ハードウェア表示用カーソルパターンと描画レイヤを格納する。メインメモリ１１にあるオリジナルカーソルパターンは、一定間隔ごとにVRAM１３にコピーされる。GDC１４は、VRAM１３にあるカーソルパターンと描画レイヤを参照し、それぞれを表示する。特に、GDC１４は、カーソルパターンを読み込み、カーソルパターンの表示を、GDC１４に内蔵されている処理回路によるハードウェア処理によって行う。ハードウェア処理による表示は、表示レジスタ１６に書き込まれたデータにしたがって行われる。表示レジスタ１６は、カーソルアドレス、カーソル座標、カーソルレイヤパレット（色指定）、カーソルレイヤイネーブル、カーソル表示Onの情報が登録される。LCDなどの表示装置１５は、オリジナルカーソルパターンで表されるbitmapと共に、描画データを表示画面に表示する。
【００２２】
図６は、GDCの表示レジスタのレジスタ名を示す図である。
レジスタCPM_CUTCには、カーソル表示Onを示すビットが設定される。レジスタCUOA0には、カーソル番号0のカーソルパターンのアドレスが設定される。レジスタCUY0_CUX0には、カーソル番号0のカーソルの表示位置座標が設定される。レジスタCUOA1には、カーソル番号1のカーソルパターンのアドレスが、設定される。レジスタCUY1_CUX1には、カーソル番号1のカーソルの表示位置座標が設定される。カーソル番号0と1のカーソルの座標は、固定した位置に互いに並べて１つのbitmapを表示するように設定する。レジスタDLSには、カーソルレイヤイネーブルが設定される。グラフィックスソフトウェアが評価版であることを表示するbitmapを表示する場合には、カーソルレイヤがイネーブルに設定される。レジスタL0PAL0〜LOPAL7には、カーソルレイヤパレット番号0〜7の設定が行われる。これは、カーソルパターンの表示色を設定するものである。
【００２３】
図７及び図８は、カーソル表示のためのハードウェア（GDC）の動作を説明する図である。
GDCは、図７に示されるような、VRAMにある描画レイヤの描画データを、内蔵の表示処理部（ハードウェア）によって表示する。次に、表示レジスタに適切な値を設定する。GDCは、VRAMに配置されたカーソルパターンと、表示レジスタ内の情報とを参照して、内蔵の処理部によってカーソルを表示する。描画ソフトウェアによる描画は、VRAMに描画データを展開し、GDCがこれを処理することによって表示が行われる。一方、GDCのハードウェアの表示処理は、表示レジスタに設定されたパラメータとVRAMに格納されるbitmapを指定することによって行われる。すなわち、ハードウェアによる表示は、bitmapとパラメータを指定することにより、ハードウェアがこれらを読み、画像を組み立てて、表示装置に表示するものである。
【００２４】
本実施形態の場合、表示レジスタのカーソル番号0座標レジスタにカーソル番号0のカーソルの左上隅の座標を設定し、表示レジスタのカーソル座標1レジスタにカーソル番号1のカーソルの左上隅の座標を設定する。また、表示レジスタのカーソル番号0アドレスレジスタに、VRAMに格納されているカーソル番号0用カーソルパターンのアドレスを設定する。同じく、表示レジスタのカーソル番号1アドレスレジスタに、VRAMに格納されているカーソル番号1用カーソルパターンのアドレスを設定する。更に、カーソルレイヤパレットにカーソルパターンの色を設定する。カーソルレイヤパレットの例としては、RR=RED、GG=GREEN、BB=BLUEとして、L0PAL0〜L0PAL7に、0x00RRGGBBで指定される色を設定する。図８の例では、L0PAL0には、0x00ff0000（赤色）、L0PAL1には、0x0000ff00（緑色）、L0PAL2には、0x000000ff（青色）、L0PAL3には、0x00ff0000（赤色）、L0PAL4には、0x0000ff00（緑色）、L0PAL5には、0x000000ff（青色）、L0PAL6には、0x00ffffff（白色）、L0PAL7には、0x00000000（黒色）が設定されている。
【００２５】
図９〜図１２は、本発明の実施形態の処理フローである。
図９は、全体処理のフローである。全体処理がスタートすると、ステップＳ２０において、図形描画ルーチンが起動する。この図形描画ルーチンでは、画面に表示する図形を描画するための描画コマンドを生成する。ステップＳ２１において、描画フラッシュ関数を実行する。この描画フラッシュ関数の実行により、ステップＳ２０において生成された描画コマンドが実行され、図形が描画される。ステップＳ２２において、図形描画が終了したか否かが判断される。ステップＳ２２の判断がＮｏの場合には、ステップＳ２０に戻って、図形の描画を続ける。ステップＳ２２の判断がＹｅｓの場合には、全体処理を終了する。本実施形態では、従来技術と異なり、bitmapの描画は、描画フラッシュ関数の実行の中で行われるため、全体処理のフローである図９には、bitmapを描画するためのステップは存在しない。
【００２６】
図１０は、描画フラッシュ関数の実行フローチャートである。ステップＳ２３において、描画フラッシュ処理が行われ、図形が描画される。次に、ステップＳ２４において、bitmap表示ルーチンが実行される。描画フラッシュ関数は、図形を描画するために必ず実行することが必要であるので、描画フラッシュ関数内部にbitmap表示ルーチンを組み込むことにより、図形を描画するときは必ずbitmapの表示も行われることとなる。
【００２７】
図１１は、bitmap表示ルーチンの実行フローチャートである。ステップＳ３０において、EVAカウンタに一定間隔値を設定する。一定間隔値は、bitmap表示ルーチンがはじめて呼び出されたときに設定されるもので、任意に値を設定可能である。EVAカウンタは、bitmap表示ルーチンが呼び出されるたびにカウントアップするカウンタで、bitmap表示ルーチンが一定間隔値だけ呼び出されるたびに、新たにカーソルパターンで表示されるbitmapの表示処理を行うものである。このように、一定間隔ごとに、グラフィックスソフトウェアが評価版であることを表示するbitmapを表示しなおすことにより、ユーザによるbitmap非表示化処理を一定間隔ごとに無効化する効果を有する。ステップＳ３１において、EVAカウンタが一定間隔値以上となったか否かが判断される。ステップＳ３１の判断がＹｅｓの場合には、ステップＳ３３に進む。ステップＳ３１の判断がＮｏの場合には、ステップＳ３２において、経過時間が一定値を超えていて、かつ、表示レジスタ内の値が変更されているか否かを判断する。ステップＳ３２の判断がＹｅｓの場合には、ステップＳ３３に進み、Ｎｏの場合には、ステップＳ３５に進む。ステップＳ３２では、前回のカーソルによるbitmap（カーソルbitmap）の表示からの経過時間が一定値を超えているか否かを判断している。これは、カーソルbitmapを一定時間毎に新たに表示しなおすことを意味する。bitmap表示ルーチンが一定回数呼び出される度に、カーソルbitmapを表示しなおしているが、一定間隔値が知られてしまうと、bitmapを表示させないためにはbitmap非表示化処理を一定間隔ごとに適用すればよいことが分かってしまう。そこで、bitmap非表示化処理を無効にする効果をより確かにするために、システムに搭載されているクロックを使って、一定時間経った場合にも、カーソルbitmapの再表示を行うようにするものである。また、表示レジスタ内の値が変更されているか否かを調べるのは、カーソルbitmapの表示内容が変更され、カーソルbitmapが表示されないように変更されている場合を検出するものである。ステップＳ３３では、EVAカウンタを０にリセットし、ステップＳ３４において、カーソルbitmap表示ルーチンを実行する。ステップＳ３５において、EVAカウンタを１だけカウントアップし、bitmap表示ルーチンを終了する。
【００２８】
図１２は、カーソルbitmap表示ルーチンの実行フローチャートである。ステップＳ４０において、カーソルアドレスを表示レジスタに設定し、ステップＳ４１において、カーソル座標設定を表示レジスタに行う。ステップＳ４２において、表示レジスタのカーソルレイヤパレットを設定し、ステップＳ４３において、カーソルレイヤイネーブルを設定する。ステップＳ４４において、メインメモリからVRAMにカーソルパターンをコピーし、ステップＳ４５において、カーソル表示をOnにする。これらのステップは、すべて、表示レジスタに値を設定するものであり、カーソルの表示は、GDCのハードウェアが行う。表示レジスタに各値を設定し、カーソルパターンがVRAMにコピーされると、ハードウェアが自動的にこれらの情報を読み込んで、カーソル表示を行うので、ステップＳ４０〜Ｓ４５の処理の順番は、特に限定されない。
【００２９】
以上のように、カーソルbitmapの表示を描画フラッシュ関数の呼び出しルーチンの中で行うことにより、ユーザが図形を表示したいときは、常にカーソルbitmapが表示されるようにすることが出来る。
【００３０】
図１３は、bitmap表示機能を解除する機能を実現するための処理フローである。
bitmap表示機能を解除する機能を実現するために、プロテクト解除関数を設ける。図１３（ａ）にあるように、プロテクト解除関数の引数に予め決められたコードを指定してプロテクト解除関数を呼び出す。ステップＳ４０において、プロテクト解除コードに引数を設定する。そして、図１３（ｂ）に示されるように、描画フラッシュ関数に、ステップＳ４２を追加する。ステップＳ４２では、プロテクト解除関数によって設定されたプロテクト解除コードが有効か否かを判断する。ステップＳ４２の判断がＮｏの場合には、bitmap表示ルーチンを呼び出し、カーソルbitmapを表示する。ステップＳ４２の判断がＹｅｓの場合には、カーソルbitmapを表示しないで、描画フラッシュ関数の実行を終了するようにする。この機能を設けておくことにより、製品版のグラフィックスソフトウェアを、bitmapを表示するようにして評価版として提供し、製品の購入と共に、bitmap表示を解除して、正規の製品版とすることが出来る。
【００３１】
図１４は、本発明の実施形態を適用したグラフィックスソフトウェアの表示例である。
ティーポットの表示画面の左上に、使用しているグラフィックスソフトウェアが評価版であることを示すbitmapが表示されている。前述したように、このbitmapは、ティーポットの描画が行われるプロセスの中で、ハードウェア処理により表示処理がなされる。ハードウェアを使うので、ソフトウェアによる描画処理が遅くなることも無い。また、ティーポットの描画プロセス中でbitmapが表示されるので、ティーポットのような図形が描画される際には、常に、bitmapが表示されるようになる。更に、前述したように、一定間隔、及び、一定時間毎に、bitmapを表示するようにしたので、bitmap非表示化処理を無効化する効果も有する。また、bitmapはハードウェアによって直接表示され、ティーポットなどの描画された絵の描画データ自体は変更を受けないので、描画データをそのまま取り出すことが出来、描画される絵の評価を楽に行うことが出来る。
【図面の簡単な説明】
【００３２】
【図１】従来技術を説明する図である。
【図２】従来技術の描画処理フロー（その１）である。
【図３】従来技術の描画処理フロー（その２）である。
【図４】本発明の実施形態の概念を説明する図である。
【図５】本発明の実施形態のグラフィックス表示装置のシステム構成図である。
【図６】GDCの表示レジスタのレジスタ名を示す図である。
【図７】カーソル表示のためのハードウェア（GDC）の動作を説明する図（その１）である。
【図８】カーソル表示のためのハードウェア（GDC）の動作を説明する図（その２）である。
【図９】本発明の実施形態の処理フロー（その１）である。
【図１０】本発明の実施形態の処理フロー（その２）である。
【図１１】本発明の実施形態の処理フロー（その３）である。
【図１２】本発明の実施形態の処理フロー（その４）である。
【図１３】bitmap表示機能を解除する機能を実現するための処理フローである。
【図１４】本発明の実施形態を適用したグラフィックスソフトウェアの表示例である。
【符号の説明】
【００３３】
１０      CPU
１１      メインメモリ
１２      バス
１３      VRAM
１４      Graphics Display Controller（GDC）
【図１】
2010152430.tif 000003
【図２】
2010152430.tif 000004
【図３】
2010152430.tif 000005
【図４】
2010152430.tif 000006
【図５】
2010152430.tif 000007
【図６】
2010152430.tif 000008
【図７】
2010152430.tif 000009
【図８】
2010152430.tif 000010
【図９】
2010152430.tif 000011
【図１０】
2010152430.tif 000012
【図１１】
2010152430.tif 000013
【図１２】
2010152430.tif 000014
【図１３】
2010152430.tif 000015
【図１４】
2010152430.tif 000016