renderbug/lib/Figments/Renderer.cpp

40 lines
967 B
C++
Raw Normal View History

2019-05-10 05:17:29 +00:00
#include "./Renderer.h"
#include "./Display.h"
2021-03-29 08:10:55 +00:00
#include <ArduinoLog.h>
2019-05-10 05:17:29 +00:00
void
Renderer::loop()
{
for(Display* dpy : m_displays) {
for(Figment* figment : m_figments) {
if (figment->state == Task::Running) {
#if defined(BOARD_ESP32) or defined(BOARD_ESP8266)
2021-04-10 18:10:25 +00:00
unsigned int frameStart = ESP.getCycleCount();
#endif
Log.verbose("Render %s", figment->name);
2019-05-10 05:17:29 +00:00
figment->render(dpy);
#if defined(BOARD_ESP32) or defined(BOARD_ESP8266)
2021-04-10 18:10:25 +00:00
unsigned int runtime = (ESP.getCycleCount() - frameStart) / 160000;
#else
unsigned int runtime = 0;
#endif
2021-04-10 18:10:25 +00:00
if (runtime >= 8) {
Log.warning("SLOW RENDER: %s took %dms!", figment->name, runtime);
2021-04-10 18:10:25 +00:00
}
2019-05-10 05:17:29 +00:00
}
};
}
2021-03-29 08:10:55 +00:00
FastLED.show();
FastLED.countFPS();
2019-05-10 05:17:29 +00:00
}
void
Renderer::onStart()
{
for(Display* dpy : m_displays) {
dpy->clear();
}
2021-03-29 08:10:55 +00:00
FastLED.show();
2019-05-10 05:17:29 +00:00
}