mirror of
https://github.com/MadeOfJelly/MushMachine.git
synced 2025-06-19 19:26:36 +02:00
adopt engine stuff to new update strategy
This commit is contained in:
@ -1,4 +1,7 @@
|
||||
#include "simple_sdl_renderer.hpp"
|
||||
#include "mm/update_strategies/update_strategy.hpp"
|
||||
|
||||
#include <entt/core/hashed_string.hpp>
|
||||
|
||||
#include <mm/logger.hpp>
|
||||
#define LOG_CRIT(...) __LOG_CRIT( "SimpleSDLRenderer", __VA_ARGS__)
|
||||
@ -8,7 +11,6 @@
|
||||
#define LOG_DEBUG(...) __LOG_DEBUG("SimpleSDLRenderer", __VA_ARGS__)
|
||||
#define LOG_TRACE(...) __LOG_TRACE("SimpleSDLRenderer", __VA_ARGS__)
|
||||
|
||||
|
||||
namespace MM::Services {
|
||||
|
||||
SimpleSDLRendererService::SimpleSDLRendererService(void) {
|
||||
@ -42,18 +44,12 @@ bool SimpleSDLRendererService::enable(Engine& engine) {
|
||||
return false;
|
||||
}
|
||||
|
||||
_render_handle = engine.addUpdate([this](Engine& e){ this->render(e); });
|
||||
|
||||
targets["display"].reset(renderer, 800, 600);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SimpleSDLRendererService::disable(Engine& engine) {
|
||||
if (!_render_handle.expired()) {
|
||||
engine.removeUpdate(_render_handle);
|
||||
}
|
||||
|
||||
void SimpleSDLRendererService::disable(Engine&) {
|
||||
processors.clear();
|
||||
|
||||
targets.clear();
|
||||
@ -61,6 +57,17 @@ void SimpleSDLRendererService::disable(Engine& engine) {
|
||||
SDL_DestroyRenderer(renderer);
|
||||
}
|
||||
|
||||
std::vector<UpdateStrategies::UpdateCreationInfo> SimpleSDLRendererService::registerUpdates(void) {
|
||||
return {
|
||||
{
|
||||
"SimpleSDLRendererService::render"_hs,
|
||||
"SimpleSDLRendererService::render",
|
||||
[this](Engine& e){ this->render(e); },
|
||||
UpdateStrategies::update_phase_t::POST
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void SimpleSDLRendererService::render(Engine& engine) {
|
||||
targets["display"].clear(renderer, {40, 40, 40, 255});
|
||||
|
||||
|
@ -21,8 +21,6 @@ namespace MM::Services {
|
||||
|
||||
std::vector<std::function<void(SimpleSDLRendererService&, Engine&)>> processors;
|
||||
|
||||
private:
|
||||
Engine::FunctionDataHandle _render_handle;
|
||||
|
||||
public:
|
||||
bool enable(Engine& engine) override;
|
||||
@ -30,6 +28,9 @@ namespace MM::Services {
|
||||
|
||||
const char* name(void) override { return "SimpleSDLServiceSystem"; };
|
||||
|
||||
std::vector<UpdateStrategies::UpdateCreationInfo> registerUpdates(void) override;
|
||||
|
||||
|
||||
private:
|
||||
void render(Engine& engine);
|
||||
};
|
||||
|
Reference in New Issue
Block a user