Armadilloフォーラム

タッチの動作について

matsumoto

2014年12月8日 21時19分

お世話になっています、松本と申します。

Armadillo-840を利用させていただいています。LCD表示にて、2D描画を表示しているコンテンツで検証作業をしているのですが、
タッチの動作について質問させていただければと思います。

現在、作成したwidgetにbool event(QEvent* event)をオーバーライドして、touchEventを取得しています。(touchBegin/touchUpdate/touchEnd)
また、mouseEventについては、作成したwidgetに、mousePressEvent, mouseReleaseEvent, mouseMoveEventをオーバーライドしています。

mainのwidgetに、QVBoxLayoutを配置しそこに作成したwidgetを追加し、2Dの描画しています。
mainのwidget上から、QTimerを利用して、timeout()シグナルを利用して作成したwidgetとconnectし、定期的にupdate()を呼び出し、paintEvent()を呼ぶことで、描画のfps値を測定しています。

--mainのwidget内部--

Widget* widget = new Widget(this);
QVBoxLayout* layout = new QVBoxLayout;
 
layout->addWidget(widget);
layout->setSpacing(0);
layout->setMargin(0);
layout->setContentsMargins(0, 0, 0, 0);
setLayout(layout);
 
QTimer* timer = new Qtimer(this);
connect(timer SIGNAL(timeout()), widget, SLOT(animate()));//内部でupdate()を呼ぶ
timer->start();

mouseでタッチしたとき、moveしたときなどは、
fpsにほとんど変化がないのですが、touchしたときだけfpsが半分ぐらいに落ち込むという現象がありました。

eventのオーバーライドを全て行わないようにしてみたところ、
触っているだけでfps値が落ち込むという現象が起きいるのですが、何かご存じでしたらご教授いただけませんでしょうか
(mouseは、ずっと押下していてもそのようなことはありません)

プロジェクトで設定してるシステム環境変数は下記になります。

QT_QPA_EGLFS_DISPLAY=1
QT_QPA_EGLFS_WIDTH=800
QT_QPA_EGLFS_HEIGHT=480
QWS_MOUSE_PROTO=tslib:/dev/input/event0
# armadillo実行時にログインして上記を設定し、-qwsもつけて実行
# QT 4.8.4を利用

以上、宜しくお願い致します。

コメント

matsumoto

2014年12月11日 15時38分

お世話になっています、松本です。

SDカードブートで、配布されているイメージで実行させてみたところ、問題なくスムーズに動作することができました。
お騒がせいたしました。

> お世話になっています、松本と申します。
>
> Armadillo-840を利用させていただいています。LCD表示にて、2D描画を表示しているコンテンツで検証作業をしているのですが、
> タッチの動作について質問させていただければと思います。
>
> 現在、作成したwidgetにbool event(QEvent* event)をオーバーライドして、touchEventを取得しています。(touchBegin/touchUpdate/touchEnd)
> また、mouseEventについては、作成したwidgetに、mousePressEvent, mouseReleaseEvent, mouseMoveEventをオーバーライドしています。
>
> mainのwidgetに、QVBoxLayoutを配置しそこに作成したwidgetを追加し、2Dの描画しています。
> mainのwidget上から、QTimerを利用して、timeout()シグナルを利用して作成したwidgetとconnectし、定期的にupdate()を呼び出し、paintEvent()を呼ぶことで、描画のfps値を測定しています。
>
> --mainのwidget内部--
>

> Widget* widget = new Widget(this);
> QVBoxLayout* layout = new QVBoxLayout;
> 
> layout->addWidget(widget);
> layout->setSpacing(0);
> layout->setMargin(0);
> layout->setContentsMargins(0, 0, 0, 0);
> setLayout(layout);
> 
> QTimer* timer = new Qtimer(this);
> connect(timer SIGNAL(timeout()), widget, SLOT(animate()));//内部でupdate()を呼ぶ
> timer->start();
> 

>
> mouseでタッチしたとき、moveしたときなどは、
> fpsにほとんど変化がないのですが、touchしたときだけfpsが半分ぐらいに落ち込むという現象がありました。
>
> eventのオーバーライドを全て行わないようにしてみたところ、
> 触っているだけでfps値が落ち込むという現象が起きいるのですが、何かご存じでしたらご教授いただけませんでしょうか
> (mouseは、ずっと押下していてもそのようなことはありません)
>
> プロジェクトで設定してるシステム環境変数は下記になります。
>
> QT_QPA_EGLFS_DISPLAY=1
> QT_QPA_EGLFS_WIDTH=800
> QT_QPA_EGLFS_HEIGHT=480
> QWS_MOUSE_PROTO=tslib:/dev/input/event0
> # armadillo実行時にログインして上記を設定し、-qwsもつけて実行
> # QT 4.8.4を利用
>
> 以上、宜しくお願い致します。
>