mirror of
https://github.com/alibaba/GCanvas.git
synced 2025-12-08 17:36:42 +00:00
127 lines
3.9 KiB
Objective-C
127 lines
3.9 KiB
Objective-C
/*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <GLKit/GLKit.h>
|
|
#import "GCVCommon.h"
|
|
#import "GCanvasModuleProtocol.h"
|
|
#import "GCanvasViewProtocol.h"
|
|
#import "GCanvasObject.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
typedef void (^GCanvasModuleCallback)(id result);
|
|
|
|
|
|
#define kGCanvasResetNotification @"kGCanvasReset"
|
|
#define kGCanvasCompLoadedNotification @"kGCanvasCompLoaded"
|
|
#define kGCanvasDestroyNotification @"kGCanvasDestroy"
|
|
|
|
|
|
@interface GCanvasModule : NSObject
|
|
|
|
@property (nonatomic, weak, readonly) id<GCanvasModuleProtocol>deletage;
|
|
@property (nonatomic, weak) id<GCVImageLoaderProtocol>imageLoader;
|
|
|
|
@property (nonatomic, strong, readonly) NSMutableDictionary *gcanvasObjectDict;
|
|
|
|
- (instancetype)init __attribute__((unavailable("unavailable, use initWithDelegate instead")));
|
|
- (instancetype)initWithDelegate:(nonnull id<GCanvasModuleProtocol>)delegate;
|
|
|
|
- (dispatch_queue_t)gcanvasExecuteQueue;
|
|
|
|
#pragma mark - Export Method of Context2D
|
|
/**
|
|
* Export JS method for initialize GCanvas Module, a synchronize method
|
|
*
|
|
* @param args input arguments
|
|
*
|
|
* @return enable success return "true", or return "false"
|
|
*/
|
|
- (NSString*)enable:(NSDictionary *)args;
|
|
|
|
/**
|
|
* Export JS method for context 2D render
|
|
*
|
|
* @param commands render commands from js
|
|
* @param componentId GCanvas component identifier
|
|
*/
|
|
- (void)render:(NSString *)commands componentId:(NSString*)componentId;
|
|
|
|
/**
|
|
* Export JS method for reset GCanvas component while disappear
|
|
* [iOS only]
|
|
*
|
|
* @param componentId GCanvas component identifier
|
|
*/
|
|
- (void)resetComponent:(NSString*)componentId;
|
|
|
|
/**
|
|
* Export JS method for preloading image
|
|
*
|
|
* @param data NSArray, contain 2 item
|
|
* data[0] image source,
|
|
* data[1] fake texture id(auto-increment id)of GCanvasImage in JS
|
|
* @param callback GCanvasModuleCallback callback
|
|
*/
|
|
- (void)preLoadImage:(NSArray *)data callback:(GCanvasModuleCallback)callback;
|
|
|
|
/**
|
|
* Export JS method for binding image to real native texture
|
|
*
|
|
* @param data NSArray, contain 2 item
|
|
* data[0] image source,
|
|
* data[1] fake texture id(auto-increment id)of GCanvasImage in JS
|
|
* @param componentId GCanvas component identifier
|
|
* @param callback GCanvasModuleCallback callback
|
|
*/
|
|
- (void)bindImageTexture:(NSArray *)data componentId:(NSString*)componentId callback:(GCanvasModuleCallback)callback;
|
|
|
|
/**
|
|
* Export JS method set GCanvas plugin contextType
|
|
* @param type see GCVContextType
|
|
*/
|
|
- (void)setContextType:(NSUInteger)type componentId:(NSString*)componentId;
|
|
|
|
/**
|
|
* Export JS method set log level
|
|
* @param level loglevel 0-debug,1-info,2-warn,3-error
|
|
*/
|
|
- (void)setLogLevel:(NSUInteger)level;
|
|
|
|
|
|
|
|
#pragma mark - Export Method of WebGL
|
|
|
|
/**
|
|
* JS call native directly just for WebGL, a synchronize method
|
|
*
|
|
* @param dict input WebGL command
|
|
* dict[@"contextId"] - GCanvas component identifier
|
|
* dict[@"type"] - type
|
|
* dict[@"args"] - WebGL command
|
|
*
|
|
* @return return execute result
|
|
*/
|
|
- (NSDictionary*)extendCallNative:(NSDictionary*)dict;
|
|
|
|
NS_ASSUME_NONNULL_END
|
|
|
|
@end
|