前回投稿は、Linux カーネルに MT インターフェイスが取り込まれたニュースについてでしたが、例えば KDE 開発元もマルチタッチを模索してちょっとしたデモしてたりするようです。Hutterer 氏が示してたマルチタッチのイベントの流れに当てはめれば Qt はツールキット辺りになるのかな?
あと、マルチタッチについて調べてると blob(s) っていう言葉を目にするんですけど、「染み」っていう意味らしくて、タッチしてる部分とそうでない部分でコントラストを付けるとタッチ部分がそのように見えるのが由来みたいですね。
で、今回はマルチタッチとマルチポイントの違いについての Hutterer 氏による説明。ちょうど1年くらい前の短い投稿文です。
点で捉えるだけのタッチでもマルチタッチと言うのならすでに MPX で可能な状態で、あとはアプリの対応次第ということでしょうか。
しかし氏にいわせるとそれは本当のマルチタッチではない、とのこと。
原文: http://wearables.unisa.edu.au/mpx/?q=node/147
Multi-touch? or multi-point?
MPX(マルチポインターX)でマルチタッチが可能になるのかどうか質問されることが増えてきた。
答えはイエスでもなくノーでもない。
マルチタッチの構成について少し混乱があるようだ。質問に単純に答えれば「複数のタッチポイントを扱う」なのだが、実際はそう単純ではない。
「タッチ」とは一体何なのだろうか?
ユーザーインターフェイスにおいて、それは通常、感応面をタッチしてオブジェクトの操作が可能なことを意味する。
これは間接的(ラップトップ上のタッチパッド)または直接的(タッチ画面)に行うことが可能だ。
X サーバにとって、それが直接的な操作または間接的な操作のどちらであるかというのは意味をなさず、タッチデバイスが提供するデータこそが重要になる。
多くのデバイスは、そのタッチポイントを単純な x/y 座標にまで落とし込む。(例えば、Wacom タブレットや公共の場所にある大抵のタッチ画面、自分が知る限り iPhone さえも基本的にそうだ。注:例外はある。圧力情報を提供するものもあれば、Wacom タブレットは傾き等々の情報を提供)
X サーバから見ると、マウスとそれらタッチデバイスとの間に違いは全く存在しない。
MPX というのはマルチポイントだ。
ようするに、使用しているデバイスが複数のタッチポイントに対応していたり、そうしたデバイスが複数あるのならば、もうそれらがすでに利用できる状態にあるということだ。それらを使えばいいし、そうしたデバイス向けのソフトウェアを書けばいい。
しかし、実はここに大きな相違点が存在する。デバイスのなかには1つの点よりむしろ、タッチ領域の検知が可能なものがある。
ここが興味深いところで、それはなぜかというと、これがジェスチャーを可能にするからだ。
手の平でのタッチが、手の横とは違うし親指や他の指とも異なる。これこそが真の「タッチ対応」であり、そしてまだ全く一般的なものではない。
真のマルチタッチに対応する有名な例の1つは、MS Surface だ。
MPX はマルチタッチを行うわけではない。
しかし、マルチポイントが一番厄介なものであり、(マルチポイントさえ実装すれば)マルチタッチはかなり簡単だということが分かっている。(注:技術的な視点からの話であって、意味的に正しく働かせるのは相当大変である。)
そこまでくると、クライアントにその情報を渡してやる必要性というのが唯一の相違点になる。
X サーバはそうしたデータを送るための適切なイベントというものを持っていないが、昨年に自分は数週間かけてその辺りに手をつけてみた。
その結果というのが BlobEvents なのだが、主に時間が取れないために、それとき以来そのブランチにあまり更新はない。
現在の master にマージして全体を整理し公にレビューさせるための時間が取れさえすれば、この blob ブランチは復活するだろう。
だが今のところはマルチポイントであって、マルチタッチではない。