Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IRenderWidget::IRenderWidget( QWidget* Parent ) :
- QWidget( Parent ),
- m_Initialized( false ),
- m_RenderWindow( NULL )
- {
- // Initialize the widget.
- setMinimumSize( 320, 240 );
- setAttribute( Qt::WA_PaintOnScreen );
- setAttribute( Qt::WA_OpaquePaintEvent );
- setAttribute( Qt::WA_NoSystemBackground );
- setFocusPolicy( Qt::StrongFocus );
- setMouseTracking( true );
- // Set the timer interval.
- m_Timer.setInterval( (1.0f / 60.0f) * 1000.0f );
- }
- IRenderWidget::~IRenderWidget()
- {
- DE_SAFE_DELETE( m_RenderWindow );
- }
- QPaintEngine* IRenderWidget::paintEngine() const
- {
- return NULL;
- }
- void IRenderWidget::resizeEvent( QResizeEvent* event )
- {
- if( m_RenderWindow )
- {
- const QSize& Size = event->size();
- m_RenderWindow->ResizeBuffers( Size.width(), Size.height() );
- }
- }
- void IRenderWidget::paintEvent( QPaintEvent* event )
- {
- if( m_Initialized )
- {
- // Set the current render window.
- DE::CEngine::GetRenderer().SetRenderWindow( m_RenderWindow );
- // Update the render window widget.
- OnUpdate();
- // End of the rendering.
- DE::CEngine::GetRenderer().EndOfRendering();
- }
- }
- void IRenderWidget::showEvent( QShowEvent* event )
- {
- if( m_Initialized == false )
- {
- // Create the render window from renderer.
- m_RenderWindow = DE::CEngine::GetRenderer().CreateRenderWindow();
- // Create the render window from handle.
- m_RenderWindow->Create( (void*)winId(), false );
- // Initialize the render window widget.
- OnInit();
- // Connect the timer.
- connect( &m_Timer, SIGNAL( timeout() ), this, SLOT( repaint() ) );
- // Start the timer.
- m_Timer.start();
- // Set the initialized flag.
- m_Initialized = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement