void Canvas::RenderCanvas() { DoThink(); Gwen::Renderer::Base* render = m_Skin->GetRender(); render->Begin(); RecurseLayout( m_Skin ); render->SetClipRegion( GetBounds() ); render->SetRenderOffset( Gwen::Point( 0, 0 ) ); render->SetScale( Scale() ); if ( m_bDrawBackground ) { render->SetDrawColor( m_BackgroundColor ); render->DrawFilledRect( GetRenderBounds() ); } DoRender( m_Skin ); DragAndDrop::RenderOverlay( this, m_Skin ); ToolTip::RenderToolTip( m_Skin ); render->End(); }
void WindowCanvas::RenderCanvas() { // // If there isn't anything going on we sleep the thread for a few ms // This gives some cpu time back to the os. If you're using a rendering // method that needs continual updates, just call canvas->redraw every frame. // if ( !NeedsRedraw() ) { Platform::Sleep( 10 ); return; } m_bNeedsRedraw = false; Gwen::Renderer::Base* render = m_Skin->GetRender(); if ( render->BeginContext( this ) ) { render->Begin(); RecurseLayout( m_Skin ); render->SetClipRegion( GetRenderBounds() ); render->SetRenderOffset( Gwen::Point( X() * -1, Y() * -1 ) ); render->SetScale( Scale() ); if ( m_bDrawBackground ) { render->SetDrawColor( m_BackgroundColor ); render->DrawFilledRect( GetRenderBounds() ); } DoRender( m_Skin ); DragAndDrop::RenderOverlay( this, m_Skin ); ToolTip::RenderToolTip( m_Skin ); render->End(); } render->EndContext( this ); render->PresentContext( this ); }