使い方を教えてくださいQtやSDLの相互の関連性を検討した。
質問
構築を行ってい物理シミュレーション-エンジンエディタです。を構築して欲しいエディタを一部活用し、Qtっ走らせたいという、エンジンはSDLとOpenGL.
私の最初のアイデアを構築エディタのみを使用Qtや共有をし、コードのエンジンのリソースマネージャのレンダリング、数学ⅰ).でも、私がしていきたいと思って走行できるようにシミュレーションの編集者。 この手段としてのシミュレーションコードを利用しSDLす。
なので、私の質問は、この:あるいはOpenGLの描画をQtでウィンドウをSDL?
いまされることができる供給SDLとウィンドウハンドルを描画する誰もが持ってい経験dongす。
また、ネジ部のシミュレータの可能性のある問題を用いているのでSDLす。
解決
ながら頂く場合がございまのように最初の答えを提案する問題によりネジ.ありません簡単には解決できるスレッドは、このようにSDL QtやOpenGL度だけメインループ処相互作用.なに楽しいです。
最も簡単sanestい切り離し、両部品です。そのSDLとQt走分離プロセスとして利用のメール通信(されています。d-busはこちら)。できるSDL描画のたボーダレスウエディタを送信コマンド経由でメッセージ
他のヒント
この簡素化いう私のプロジェクト.使用できるように通常のウィジェットが必要となりますので、皆さんが利用でm_Screenオブジェクトの描画にSDL面でのショーウィジェット)
#include "SDL.h"
#include <QWidget>
class SDLVideo : public QWidget {
Q_OBJECT
public:
SDLVideo(QWidget *parent = 0, Qt::WindowFlags f = 0) : QWidget(parent, f), m_Screen(0){
setAttribute(Qt::WA_PaintOnScreen);
setUpdatesEnabled(false);
// Set the new video mode with the new window size
char variable[64];
snprintf(variable, sizeof(variable), "SDL_WINDOWID=0x%lx", winId());
putenv(variable);
SDL_InitSubSystem(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE);
// initialize default Video
if((SDL_Init(SDL_INIT_VIDEO) == -1)) {
std:cerr << "Could not initialize SDL: " << SDL_GetError() << std::endl;
}
m_Screen = SDL_SetVideoMode(640, 480, 8, SDL_HWSURFACE | SDL_DOUBLEBUF);
if (m_Screen == 0) {
std::cerr << "Couldn't set video mode: " << SDL_GetError() << std::endl;
}
}
virtual ~SDLVideo() {
if(SDL_WasInit(SDL_INIT_VIDEO) != 0) {
SDL_QuitSubSystem(SDL_INIT_VIDEO);
m_Screen = 0;
}
}
private:
SDL_Surface *m_Screen;
};
武器agiは、dexで下がらないboxerぐ
注意:通常の設定の両方をminとmaxのサイズのウィジェットのSDL面サイズです。
レンダリングをopenglからQTは自明であるが(非常) 直接経験のSDLがあるアプリについてはこちらを混合します。http://www.devolution.com/pipermail/sdl/2003-January/051805.html
あの記混合QT widgewtsのopenglこちら http://doc.trolltech.com/qq/qq26-openglcanvas.html 少し超えていを厳重に必要なもお見事!