BNBEffect
Objective-C
@interface BNBEffect : NSObject
/** Thread-safe. May be called from any thread */
- (nonnull NSString *)url;
/**
* Call js method in effect.
* @param methodName JS global function name. Member functions are not supported.
* @param params Function arguments.
* @depreacted Use `evalJs` instead.
*/
- (void)callJsMethod:(nonnull NSString *)methodName
params:(nonnull NSString *)params;
/**
* Evaluate the `script` in effect. This method is thread safe.
* @param sctipt JS string to execute
* @param js_callback Callback for result, will be called in render thread.
*/
- (void)evalJs:(nonnull NSString *)script
resultCallback:(nullable id<BNBJsCallback>)resultCallback;
/**
* Evaluate the `script` in effect.
* MUST be called from the render thread
* @param sctipt JS string to execute
* @return JS evaluation result
*/
- (nonnull NSString *)evalJsSync:(nonnull NSString *)script;
/**
* Reset effect state
* MUST be called from the render thread
*/
- (void)reset;
/**
* Update effect state (evaluate scheduled JS calls)
* MUST be called from the render thread
*/
- (void)update;
/**
* 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.
*/
- (nullable BNBScene *)scene;
/**
* Deserialize effect from the provided `resoved_url`. If `configOverride` is an
* empty string, will use `config.json` under provided `resolvedUrl`, otherwise
* content of `configOverride` will be used.
*
* Can be called from any thread.
*/
- (void)deserialize:(nonnull NSString *)resolvedUrl
configOverride:(nonnull NSString *)configOverride;
/**
* activate current effect
* MUST be called from the render thread for OpenGL backends.
*/
- (void)activate:(int32_t)fxWidth
fxHeight:(int32_t)fxHeight
surfaceWidth:(int32_t)surfaceWidth
surfaceHeight:(int32_t)surfaceHeight;
- (void)dumpFs:(nonnull NSString *)outDir;
- (void)dump;
- (nonnull NSString *)dumpJson;
- (BNBEffectStatus)status;
@end
Swift
class BNBEffect : NSObject
Undocumented
-
Thread-safe. May be called from any thread
Declaration
Objective-C
- (nonnull NSString *)url;
Swift
func url() -> String
-
Call js method in effect.
Declaration
Objective-C
- (void)callJsMethod:(nonnull NSString *)methodName params:(nonnull NSString *)params;
Swift
func callJsMethod(_ methodName: String, params: String)
Parameters
methodName
JS global function name. Member functions are not supported.
params
Function arguments. @depreacted Use
evalJs
instead. -
Evaluate the
script
in effect. This method is thread safe.Declaration
Objective-C
- (void)evalJs:(nonnull NSString *)script resultCallback:(nullable id<BNBJsCallback>)resultCallback;
Swift
func evalJs(_ script: String, resultCallback: BNBJsCallback?)
Parameters
sctipt
JS string to execute
js_callback
Callback for result, will be called in render thread.
-
Evaluate the
script
in effect. MUST be called from the render threadDeclaration
Objective-C
- (nonnull NSString *)evalJsSync:(nonnull NSString *)script;
Swift
func evalJsSync(_ script: String) -> String
Parameters
sctipt
JS string to execute
Return Value
JS evaluation result
-
Reset effect state MUST be called from the render thread
Declaration
Objective-C
- (void)reset;
Swift
func reset()
-
Update effect state (evaluate scheduled JS calls) MUST be called from the render thread
Declaration
Objective-C
- (void)update;
Swift
func update()
-
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.
-
Deserialize effect from the provided
resoved_url
. IfconfigOverride
is an empty string, will useconfig.json
under providedresolvedUrl
, otherwise content ofconfigOverride
will be used.Can be called from any thread.
Declaration
Objective-C
- (void)deserialize:(nonnull NSString *)resolvedUrl configOverride:(nonnull NSString *)configOverride;
Swift
func deserialize(_ resolvedUrl: String, configOverride: String)
-
activate current effect MUST be called from the render thread for OpenGL backends.
Declaration
Objective-C
- (void)activate:(int32_t)fxWidth fxHeight:(int32_t)fxHeight surfaceWidth:(int32_t)surfaceWidth surfaceHeight:(int32_t)surfaceHeight;
Swift
func activate(_ fxWidth: Int32, fxHeight: Int32, surfaceWidth: Int32, surfaceHeight: Int32)
-
Undocumented
Declaration
Objective-C
- (void)dumpFs:(nonnull NSString *)outDir;
Swift
func dumpFs(_ outDir: String)
-
Undocumented
Declaration
Objective-C
- (void)dump;
Swift
func dump()
-
Undocumented
Declaration
Objective-C
- (nonnull NSString *)dumpJson;
Swift
func dumpJson() -> String
-
Undocumented