OgreWidget.h
myGLWidget.hCode:#ifndef __OGREWIDGET_H__ #define __OGREWIDGET_H__ #include <OGRE/Ogre.h> #include <QGLWidget> //#include <QX11Info> class OgreWidget : public QGLWidget { //Q_OBJECT; public: OgreWidget( QWidget *parent=0 ): QGLWidget( parent ), mOgreWindow(NULL) { init( "./plugins_d.cfg", "./ogre.cfg", "./ogre.log" ); createCamera(); createViewports(); createScene(); } virtual ~OgreWidget() { mOgreRoot->shutdown(); delete mOgreRoot; destroy(); } protected: virtual void initializeGL(); virtual void resizeGL( int, int ); virtual void paintGL(); virtual void initNavMesh() { } virtual void createCamera() { } virtual void createViewports() { } virtual void createScene() { } void init( std::string, std::string, std::string ); virtual Ogre::RenderSystem* chooseRenderer( const Ogre::RenderSystemList& ); Ogre::Root *mOgreRoot; Ogre::RenderWindow *mOgreWindow; Ogre::Camera *mCamera; Ogre::Viewport *mViewport; Ogre::SceneManager *mSceneMgr; }; #endif
Code:#ifndef MYGLWIDGET_H #define MYGLWIDGET_H #define _DEBUG 1 #include <d3d9.h> #include "OgreWidget.h" //#include "ogrerecast/Samples/include/BaseApplication.h" using namespace Ogre; class myGLWidget : public OgreWidget { public: #ifdef QWIDGET_H myGLWidget( QWidget *parent = 0, Qt::WindowFlags flags = 0); #else myGLWidget(); #endif virtual ~myGLWidget(); //virtual void initEffects(); virtual void initNavMesh(); virtual void paintEvent (QPaintEvent *e); virtual void resizeGL( int nWidth, int nHeight ); /*void createCamera(void); */ //------------------------------------------------------------------------------------- /*void createViewports(void); */ //------------------------------------------------------------------------------------- virtual void createScene(); }; #endif /* MYGLWIDGET_H */Code:/* * File: myDX9Widget.cpp * Author: Jacky * * Created on 2014年04月28日 星期一, 下午6:34 */ #include <iostream> #include "./myGLWidget.h" #include "./DotSceneLoader.h" using namespace Ogre; using namespace std; #ifdef QWIDGET_H myGLWidget::myGLWidget( QWidget* parent, Qt::WindowFlags flags) : OgreWidget ( parent ) { } #else myGLWidget::myGLWidget() { } #endif myGLWidget::~myGLWidget() { } void myGLWidget::initNavMesh() { } void myGLWidget::paintEvent(QPaintEvent* e) { //assert( mWindow ); if (mOgreWindow) { mOgreRoot->renderOneFrame(); } } void myGLWidget::resizeGL(int nWidth, int nHeight) { // setAspect(width() / (float) height()); //assert( mWindow ); if (mOgreWindow) { mOgreWindow->reposition( this->pos().x(), this->pos().y() ); mOgreWindow->resize( nWidth, nHeight ); paintEvent(0); } } // 1 /* void myDX9Widget::createCamera(void) { OutputDebugStringA("createCamera"); } // 2 //------------------------------------------------------------------------------------- void myDX9Widget::createViewports(void) { }*/ // 3 //------------------------------------------------------------------------------------- void myGLWidget::createScene() { DotSceneLoader* dotSceneLoader = new DotSceneLoader(); dotSceneLoader->parseDotScene("Warehouse.scene", "Essential", mSceneMgr); //OutputDebugStringA("Finished"); OutputDebugStringA("createScene"); delete dotSceneLoader; }
The inherited method called createScene is not called. No ideas why?




Reply With Quote
