#include #include #include #include ControlLayer::ControlLayer(OpenEngine::Ref layer) : active_layer(layer), OpenEngine::Layer("control_layer") { } void ControlLayer::OnUpdate() { } bool ControlLayer::SwitchLayer(OpenEngine::KeyPressedEvent& event) { OE_PROFILE_FUNCTION(); auto& app = OpenEngine::Application::Get(); OpenEngine::Ref layer; if (event.GetKeyCode() == OE_KEY_1) { OE_PROFILE_SCOPE("Press Key 1"); OE_DEBUG("Sandbox2D Layer"); { OE_PROFILE_SCOPE("Creating SB2D"); layer = OpenEngine::CreateRef(); } app.QueueLayerPush(layer); app.QueueLayerPop(active_layer); active_layer = layer; return true; } else if (event.GetKeyCode() == OE_KEY_2) { OE_PROFILE_SCOPE("Press Key 2"); OE_DEBUG("Sandbox Layer"); { OE_PROFILE_SCOPE("Creating SB"); layer = OpenEngine::CreateRef(); } app.QueueLayerPush(layer); app.QueueLayerPop(active_layer); active_layer = layer; return true; } return false; } bool ControlLayer::StopRunning(OpenEngine::KeyPressedEvent& event) { if (event.GetKeyCode() == OE_KEY_ESCAPE) { OpenEngine::Application::Get().StopRunning(); return true; } return false; } void ControlLayer::OnEvent(OpenEngine::Event& event) { OpenEngine::EventDispatcher dispatcher(event); dispatcher.Dispatch(BIND_EVENT_FN(ControlLayer::SwitchLayer)); dispatcher.Dispatch(BIND_EVENT_FN(ControlLayer::StopRunning)); } void ControlLayer::OnImGuiRender() { } void ControlLayer::OnAttach() { } void ControlLayer::OnDetach() { }