void UIRendererD3D11::render() { auto root = gui::UIManager::instance().root(); if (root) { renderWidget(std::move(root)); } }
void SdlManager::update() { SDL_Event event; unsigned long subscriberCount = subscriberList.size(); //Handle events on queue while(SDL_PollEvent(&event) != 0) { for(unsigned long subscriberIndex = 0; subscriberIndex < subscriberCount; subscriberIndex++) subscriberList[subscriberIndex]->handleEvent(event); for(unsigned long widgetIndex = 0; widgetIndex < widgetCount[WL_INTERACTIVE]; ++widgetIndex) widgetList[WL_INTERACTIVE][widgetIndex]->handleEvent(event); } // end event handler loop // Clear screen SDL_SetRenderDrawColor( renderer, 0xFF, 0xFF, 0xFF, 0xFF ); SDL_RenderClear( renderer ); SDL_SetRenderDrawColor( renderer, 0x00, 0x00, 0x00, 0x00 ); // Render everything to renderTexture for(int layerIndex = 0; layerIndex < WL_COUNT; layerIndex ++) for(int widgetIndex = 0; widgetIndex < widgetCount[layerIndex]; ++widgetIndex) renderWidget(widgetList[layerIndex][widgetIndex]); // Copy render texture and update screen SDL_RenderPresent( renderer ); // Update frame rate display frameCount ++; if(timer != time(0)) { timer = time(0); std::stringstream ss; ss << (frameCount) << " fps"; fpsCounter->setText(ss.str()); frameCount = 0; } // Waste time until the next frame starts // Disabling wait for more fps - SB 10.29.14 wait(); }
void UIRendererD3D11::renderWidget(gui::WidgetPtr_T widget) { if (!widget->isVisible()) return; if (widget->getType() == gui::LabelType) { renderLabel(std::move(std::static_pointer_cast<gui::Label>(widget))); } else if (widget->getType() == gui::OverlayType) { // TODO: implement } std::for_each(widget->getChildren().cbegin(), widget->getChildren().cend(), [&](gui::WidgetWeakPtr_T ptr) { if (!ptr.expired()) renderWidget(std::move(ptr.lock())); }); }
void LightbulbHSWidget::postWidget( QString nRow1, int r1Presence, QString nRow2, int r2Presence, QString nRow3, int r3Presence, QString nRow4, int r4Presence, int unreadCount, int presence, bool showGlobalUnreadCnt, bool showStatus, QString accountIcon ) { bool needToRender; if (row1 != nRow1) { row1 = nRow1; needToRender = true; } if (row1presence != r1Presence) { row1presence = r1Presence; needToRender = true; } if (row2 != nRow2) { row2 = nRow2; needToRender = true; } if (row2presence != r2Presence) { row2presence = r2Presence; needToRender = true; } if (row3 != nRow3) { row3 = nRow3; needToRender = true; } if (row3presence != r3Presence) { row3presence = r3Presence; needToRender = true; } if (row4 != nRow4) { row4 = nRow4; needToRender = true; } if (row4presence != r4Presence) { row4presence = r4Presence; needToRender = true; } if (mPresence != presence) { mPresence = presence; needToRender = true; } if (unreadMsgCount != unreadCount) { unreadMsgCount = unreadCount; needToRender = true; } if (showGlobalUnreadCount != showGlobalUnreadCnt) { showGlobalUnreadCount = showGlobalUnreadCnt; if (unreadCount > 0) needToRender = true; } if (showMyPresence != showStatus) { showMyPresence = showStatus; needToRender = true; } if (accountsIcon != accountIcon) { accountsIcon = accountIcon; if (!showMyPresence) icon_account = new QSvgRenderer(QString(":/accounts/" + accountIcon)); needToRender = true; } if (needToRender) { qDebug() << "LightbulbHSWidget::postWidget(): widget data changed. Rendering."; renderWidget(); } }