ページ

2011年10月31日月曜日

swig生成コードがerror: no matching function for callとのたまったら

以下の条件に当てはまるか確認します。

  1. エラー該当コード行が以下のようなデフォルトコンストラクタを呼ぶコード
    Ogre::ResourceManager::ResourceMapIterator result;

  2. Ogre::ResourceManager::ResourceMapIteratorはデフォルトコンストラクタを呼べない


当てはまる場合は、デフォルトコンストラクタを呼ばないコード生成をswigにさせましょう。
具体的には、以下のような2行を、該当コードを生成するクラス用interface宣言より前に記述します。

%feature("valuewrapper") Ogre::ResourceManager::ResourceMapIterator;
class Ogre::ResourceManager::ResourceMapIterator;

詳しい説明は、こちら

結果、コードが以下のように代わり、デフォルトコンストラクタが呼ばれないコードとなります。
SwigValueWrapper< Ogre::ResourceManager::ResourceMapIterator > result;

keywords: swig, default constructor

2011年10月7日金曜日

Ubuntuでkey repeatが効かなくなった時の対処

Ogre3Dライブラリを使用して遊んでいると、頻繁にkey repeatが効かなくなることがあります。
その時は

  1. メニューのシステム => 設定 =>キーボードを選択

  2. 全般タブのリピート・キーのチェックボックスを、一度OFFして、すぐにON


で復帰させることが出来ます。

ちなみに、Ogre3Dでkey repeatが効かなくなるのは、Ogre3Dがinput methodとして使っているOISの終了処理が適切に行われていないためと思われます。