Advertisement
Guest User

Untitled

a guest
May 21st, 2014
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. IRenderWidget::IRenderWidget( QWidget* Parent ) :
  2. QWidget( Parent ),
  3. m_Initialized( false ),
  4. m_RenderWindow( NULL )
  5. {
  6.   // Initialize the widget.
  7.   setMinimumSize( 320, 240 );
  8.   setAttribute( Qt::WA_PaintOnScreen );
  9.   setAttribute( Qt::WA_OpaquePaintEvent );
  10.   setAttribute( Qt::WA_NoSystemBackground );
  11.   setFocusPolicy( Qt::StrongFocus );
  12.   setMouseTracking( true );
  13.  
  14.   // Set the timer interval.
  15.   m_Timer.setInterval( (1.0f / 60.0f) * 1000.0f );
  16. }
  17.  
  18. IRenderWidget::~IRenderWidget()
  19. {
  20.   DE_SAFE_DELETE( m_RenderWindow );
  21. }
  22.  
  23. QPaintEngine* IRenderWidget::paintEngine() const
  24. {
  25.   return NULL;
  26. }
  27.  
  28. void IRenderWidget::resizeEvent( QResizeEvent* event )
  29. {
  30.   if( m_RenderWindow )
  31.   {
  32.     const QSize& Size = event->size();
  33.     m_RenderWindow->ResizeBuffers( Size.width(), Size.height() );
  34.   }
  35. }
  36.  
  37. void IRenderWidget::paintEvent( QPaintEvent* event )
  38. {
  39.   if( m_Initialized )
  40.   {
  41.     // Set the current render window.
  42.     DE::CEngine::GetRenderer().SetRenderWindow( m_RenderWindow );
  43.  
  44.     // Update the render window widget.
  45.     OnUpdate();
  46.  
  47.     // End of the rendering.
  48.     DE::CEngine::GetRenderer().EndOfRendering();
  49.   }
  50. }
  51.  
  52. void IRenderWidget::showEvent( QShowEvent* event )
  53. {
  54.   if( m_Initialized == false )
  55.   {
  56.     // Create the render window from renderer.
  57.     m_RenderWindow = DE::CEngine::GetRenderer().CreateRenderWindow();
  58.  
  59.     // Create the render window from handle.
  60.     m_RenderWindow->Create( (void*)winId(), false );
  61.  
  62.     // Initialize the render window widget.
  63.     OnInit();
  64.  
  65.     // Connect the timer.
  66.     connect( &m_Timer, SIGNAL( timeout() ), this, SLOT( repaint() ) );
  67.  
  68.     // Start the timer.
  69.     m_Timer.start();
  70.  
  71.     // Set the initialized flag.
  72.     m_Initialized = true;
  73.   }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement