スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 音声再生は出来た | トップページ | マウスカーソルの合成等 »

画像表示も出来た

今日は、開発中のOSX用Mirror-DTCクライアントのネイティブ版に画像表示用のコードを実装した。画像表示は現行のJava版でもOpenGLを使っていて、ネイティブ版でも同様なのだが、スクロールバーについては、OpenGL画面の中に自前で用意する格好にした。

昨日書いた様に、OSXのCocoaフレームワークには、NSScrollViewというのがあって、テキストビューなんかは、これを使ってスクロール機能を実現しているのだが、OpenGLViewについては、同様の形式でNSScrollViewは使えない。

どうしても使いたければ、ダミーのドキュメントビューを作成し、NSScrollViewには、それを入れる格好にし、OpenGLViewはそのダミーのビュー上に表示させる格好にすれば、とりあえずは、格好はつくかもしれない。

しかし、そんな面倒な事をしたとしても、最近のOSXのスクロールバーはホイール等でスクロールさせない限り表示されず、表示されたとしても、それはドキュメントにオーバーレイ表示される格好になっている。

なので、上記の様な小細工を行う場合には、更に、オーバーレイ表示に対応させる為に、面倒な小細工をしなければならない。

と、いう事で、作者的には、スクロールバーは自前で描画する格好にした。なので、OSXの通常アプリで表示されるスクロールバーとは見た目が少し異なる事になるのだが、現行のJava版についても、OS標準のスクロールバーとは若干異なるので、まあ良いか、という感じだ。

で、これで、画面描画と音声再生の両方が出来る様になったので、Windows8.1を再インストールしたX202E上でAGMPlayerを使ってDVD画質の動画を再生している状況を視聴する格好にし、CPU負荷を測定してみたのだが、現行のJava版と同等程度だった。

つまり、現行のJava版はネイティブアプリと同等の処理性能があるので、優秀、という事になるのだが、使用メモリ量については、Java版が200MB程度消費しているのに対して、ネイティブ版は50MB程度しか使っていない。

また、表示を「ウインドウに合わせる」に設定し、ウインドウサイズを変更すると、Java版では少しウインドウサイズの追随がギコチナイ感じもするのだが、ネイティブ版では、スムーズにサイズ変更が行える。

と、いう事で、今日の時点では、まだ、ネイティブ版のメリットは、微々たるモノなのだが、ネイティブ版の場合、他のアプリがやっている事なら何の問題もなくやれる筈なので、現行のJava版相当の機能の実装が終わったら、少し、機能拡張についても検討する事になる筈だ。

ちなみに、今日の時点では、まだマウスカーソルの合成処理は入っていない。また、マウス/キーボード入力についても対応出来ていないのだが、この辺については、明日中には対応できている筈だ。

しかし、上記の様な機能はMirror-DTC的には基本機能でしかないので、その後、ファイル/クリップ転送だとか、スクリーンキーボード機能だとかを実装しなければならない。

なので、普通に考えて、今週中に完成するとも思えないのだが、もし完成したとしても、その時点で公開する事は無い筈だ。

これは何故なのか、というと、ネイティブ版の最大のメリットはJavaを使わなくても良くなる、という事になるのだが、現時点では、サーバーについてはJava版しか存在しないからだ。

つまり、クライアントが完成したら、続けてサーバーも作るつもりになっているのだが、サーバーについては、ネイティブアプリ化する事で、サービス動作の様な事も出来る様になる筈なので、ネイティブ化するメリットは大きいかもしれない。

= この記事に関連する公開中ソフト =

Mirror-DTC

Mirror-DTC

(2015/02/15追加)

« 音声再生は出来た | トップページ | マウスカーソルの合成等 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/60256708

この記事へのトラックバック一覧です: 画像表示も出来た:

« 音声再生は出来た | トップページ | マウスカーソルの合成等 »

2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google