• [soccerwindow2] Mac OSX で動作確認. (akiyama) 19:17:48

Macでの動作確認を完了. Mac版Qtは,Xを使わず,完全にMacのグラフィックライブラリ上で動くらしい. ログプレイヤとしても,モニタクライアントとしても動作した. しかし,やはりかなりCPUを食っていて,フルスクリーン表示で20%以上のCPU使用率. 描画を高速化しなければ.

ログ再生中.

スクリーンショット1

ダイアログ表示.

スクリーンショット2

Qt4のインストール手順は,以下のページそのまま.
http://macwiki.sourceforge.jp/cgi-bin/wiki.cgi?Qt4%2FMac

$ tar xvfz qt-mac-opensource-src-4.2.1.tar.gz
$ cd qt-mac-opensource-src-4.2.1
$ echo "yes" | ./configure -nomake examples \
  -no-sql-mysql -plugin-sql-sqlite \
  -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg \
  -platform macx-g++
$ make
$ sudo make install

$ sudo find /usr/local/Trolltech/Qt-4.2.1/lib -name \*.prl -delete
$ sudo perl -pi -e "s|`pwd -P`|/usr/local/Trolltech/Qt-4.2.2|g" \
  /usr/local/Trolltech/Qt-4.2.1/lib/*.la \
  /usr/local/Trolltech/Qt-4.2.1/lib/*.pc

/etc/profile の中身

export QTDIR=/usr/local/Trolltech/Qt-4.2.1
PATH="$QTDIR/bin:/opt/local/bin:/opt/local/sbin:/opt/robocup/bin:/bin:/sbin:/usr/bin:/usr/sbin"
export PATH
LD_LIBRARY_PATH="$QTDIR/lib:/opt/local/lib:/opt/robocup/lib"
export LD_LIBRARY_PATH
export QMAKESPEC=$QTDIR/mkspecs/macx-g++

if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi

ホームの.bash_profile

export PATH=$HOME/bin:$HOME/rcss/bin:$PATH
export LD_LIBRARY_PATH=$HOME/rcss/lib:$LD_LIBRARY_PATH

環境変数の設定方法もちゃんと整理したいな.

そして,今のところGNU Autotoolsは使えず,Makefileの生成にはqmakeを使わなければならない. しかも,projectファイルの修正が必要. 具体的には,DarwinPortsでインストールしたboostへのパスを通すことが必要で,以下のような記述を各projectファイルへ追加しなければならない.

INCLUDEPATH += /opt/local/include
LIBS += /opt/local/lib
  • [soccerwindow2] Mac OSX でのメニューの不具合を修正. (akiyama) 20:11:06

Mac版Qtの不具合なのか,それとも仕様なのか不明だが,メニューの文字列として「Preference」を使用するとメニューが現れないという問題に遭遇. 「View Preference」と変更することで対処した.

  • [soccerwindow2] 円の描画を円弧の描画で置換. (akiyama) 23:59:34

SimKansaiで下羅さんから受けたアドバイスに基づいて,塗りつぶしの無いdrawEllipse()とdrawPie()をdrawArc()に置き換えてみた. drawEllipse()とdrawArc()を比較すると,そもそも塗りつぶしが行われないdrawArc()の方が早いのは確かなようだ. しかし,扇型の描画であるdrawPie()に関してはかえって重くなってしまった. この結果から,QPainterの描画関数は,塗りつぶしの有無よりも呼出回数そのものの方が速度に影響するのだろうと推測できる. 例えば,塗りつぶしの無い扇型を描画するために,これまではdrawPie()を使っていたが,これを塗りつぶしの無い関数で置き換えようとすると,drawArc()1回とdrawLine()2回の呼出が必要になる. 重くなった原因は,描画関数の総呼出回数が増えてしまうからとしか考えられない. 結局,QPixmapにキャッシュしておいて一気に書き出すという,以前から考えている方法を実践する以外に無いということだ.


添付ファイル: filesoccerwindow2-mac-2.png 278件 [詳細] filesoccerwindow2-mac-1.png 300件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (2022d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.