#pragma once

namespace ImBlur {
    bool NewFrame(ID3D11Device* d3d11Device, IDXGISurface* backBuffer, float dpi);
    bool EndFrame();
    bool Cleanup();
    bool Begin(ImDrawList* drawList, bool dontCopy = false);
    bool End(bool composite = false);
    bool PushLayer(std::optional<ImVec4> clipRect = std::optional<ImVec4>());
    bool PopLayer();
    bool AddBlur(float strength, std::optional<ImVec4> clipRect = std::optional<ImVec4>(), float rounding = ImGui::GetStyle().FrameRounding);
}
