Banuba SDK
Public Member Functions | List of all members
bnb::interfaces::effect Class Referenceabstract

Public Member Functions

virtual std::string url ()=0
 Thread-safe. More...
 
virtual void call_js_method (const std::string &method_name, const std::string &params)=0
 Call js method in effect. More...
 
virtual void eval_js (const std::string &script, const std::shared_ptr< js_callback > &result_callback)=0
 Evaluate the script in effect. More...
 
virtual std::string eval_js_sync (const std::string &script)=0
 Evaluate the script in effect. More...
 
virtual void reset ()=0
 Reset effect state MUST be called from the render thread.
 
virtual void update ()=0
 Update effect state (evaluate scheduled JS calls) MUST be called from the render thread.
 
virtual std::shared_ptr<::bnb::interfaces::scene > scene ()=0
 If effect is based on Scene engine and it is activated completly - returns Scene object from the effect. More...
 
virtual void deserialize (const std::string &resolved_url, const std::string &config_override)=0
 Deserialize effect from the provided resoved_url. More...
 
virtual void activate (int32_t fx_width, int32_t fx_height, int32_t surface_width, int32_t surface_height)=0
 activate current effect MUST be called from the render thread for OpenGL backends.
 
virtual void dump_fs (const std::string &out_dir)=0
 
virtual void dump ()=0
 
virtual std::string dump_json ()=0
 
virtual effect_status status ()=0
 

Detailed Description

Definition at line 21 of file effect.hpp.

Member Function Documentation

◆ call_js_method()

virtual void bnb::interfaces::effect::call_js_method ( const std::string &  method_name,
const std::string &  params 
)
pure virtual

Call js method in effect.

Parameters
method_nameJS global function name. Member functions are not supported.
paramsFunction arguments. @depreacted Use evalJs instead.

◆ deserialize()

virtual void bnb::interfaces::effect::deserialize ( const std::string &  resolved_url,
const std::string &  config_override 
)
pure virtual

Deserialize effect from the provided resoved_url.

If config_override is an empty string, will use config.json under provided resolved_url, otherwise content of config_override will be used.

Can be called from any thread.

◆ eval_js()

virtual void bnb::interfaces::effect::eval_js ( const std::string &  script,
const std::shared_ptr< js_callback > &  result_callback 
)
pure virtual

Evaluate the script in effect.

This method is thread safe.

Parameters
sctiptJS string to execute
js_callbackCallback for result, will be called in render thread.

◆ eval_js_sync()

virtual std::string bnb::interfaces::effect::eval_js_sync ( const std::string &  script)
pure virtual

Evaluate the script in effect.

MUST be called from the render thread

Parameters
sctiptJS string to execute
Returns
JS evaluation result

◆ scene()

virtual std::shared_ptr<::bnb::interfaces::scene> bnb::interfaces::effect::scene ( )
pure virtual

If effect is based on Scene engine and it is activated completly - returns Scene object from the effect.

Otherwise returns null. MUST be called from the render thread Returned Scene object MUST be used only from the render thread and only while the effect is in the activated state.

◆ url()

virtual std::string bnb::interfaces::effect::url ( )
pure virtual

Thread-safe.

May be called from any thread


The documentation for this class was generated from the following file: