10 #include <bnb/utils/defs.hpp>
15 namespace bnb {
namespace interfaces {
18 enum class effect_status;
25 virtual std::string url() = 0;
27 virtual std::string name() = 0;
35 virtual void call_js_method(
const std::string & method_name,
const std::string & params) = 0;
42 virtual void eval_js(
const std::string & script,
const std::shared_ptr<js_callback> & result_callback) = 0;
50 virtual std::string eval_js_sync(
const std::string & script) = 0;
56 virtual void reset() = 0;
62 virtual void update() = 0;
71 virtual void deserialize(
const std::string & resolved_url,
const std::string & config_override) = 0;
77 virtual void activate(int32_t fx_width, int32_t fx_height, int32_t surface_width, int32_t surface_height) = 0;
79 virtual void dump_fs(
const std::string & out_dir) = 0;
81 virtual void dump() = 0;
83 virtual std::string dump_json() = 0;
85 virtual effect_status status() = 0;
87 virtual int64_t get_native_context() = 0;