Pythonでいくつかの流体力学をスケッチしています。しばらくして、もう少し速度を求めているので、実際のロジックをCで書き直し、Pythonバインディングをいくつか作成しました(SWIGを使用)。
今の私の問題は、それを良い方法でレンダリングする方法がないことです。ロジックはピクセルごとに実行されるため、ピクセルを追跡してレンダリングしたいと思います。
を受け入れるClibで関数を作成しようとすると、PythonでTypeErrorSDL_Surface*
が発生します。おそらく、PyGameがそれをSDLに直接簡単にマッピングしたと考えるのは少しナイーブでした。また、Pythonは、Clibs"init"に。を返すようにした場合の対処方法がわからないようですSDL_Surface*
。
これを行うための良い方法は何ですか?C lib内のすべてをレンダリングするだけであれば、問題はありません。しかし、私はそこにいくつかのGUIを配置したいと思います(Pythonを使用)。C libは、どのピクセルが「ダーティ」であるかをすでに追跡しています。そのリストを公開してPythonにループさせ、ダーティピクセルごとに関数を呼び出す必要がありますか?この種の巨大なループが、アプリの一部をCで書き直したかった正確な理由であるため、悪いようです。
そして、誰かがそれを提案する前に、boost.pythonは今インストールするのが少し重いので(私はWindowsを使用しているので)、私は今のところSWIGに固執します(誰かが「ちょうど」ブーストをインストールする賢い方法を持っていない限り) .python?)。
ここで銀の弾丸を期待しています。SDLを実行してClibを作成し、Pythonとレンダリングターゲットを共有してPyGameを実行するにはどうすればよいですか?