efb4ed86cf
Also: mv experimental/skottie_ios tools/skottie_ios_app Motivation: make using SkMetalViewBridge that much easier for clients. Change-Id: I985930ae0751d218e89c48c57b69d85ad7a1e703 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259279 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
50 lines
1.4 KiB
Objective-C
50 lines
1.4 KiB
Objective-C
// Copyright 2019 Google LLC.
|
|
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
|
|
#ifndef SkottieMtkView_DEFINED
|
|
#define SkottieMtkView_DEFINED
|
|
|
|
#import <MetalKit/MetalKit.h>
|
|
#import <UIKit/UIKit.h>
|
|
|
|
class GrContext;
|
|
|
|
@interface SkottieMtkView : MTKView
|
|
|
|
// Must be set to a Metal-backed GrContext in order to draw.
|
|
// e.g.: use SkMetalDeviceToGrContext().
|
|
@property (assign) GrContext* grContext; // non-owning pointer.
|
|
|
|
// Must be set to a valid MTLCommandQueue. Will be used to present.
|
|
@property (assign) id<MTLCommandQueue> queue; // non-owning pointer.
|
|
|
|
// When set, pauses at end of loop.
|
|
- (void)setStopAtEnd:(BOOL)stop;
|
|
|
|
// Override of the MTKView interface. Uses Skia+Skottie+Metal to draw.
|
|
- (void)drawRect:(CGRect)rect;
|
|
|
|
// Load an animation from a Lottie JSON file. Returns Yes on success.
|
|
- (BOOL)loadAnimation:(NSData*)d;
|
|
|
|
// Jump to the specified location in the animation.
|
|
- (void)seek:(float)seconds;
|
|
|
|
// Toggle paused mode. Return paused state.
|
|
- (BOOL)togglePaused;
|
|
|
|
// Return the current paused state.
|
|
- (BOOL)isPaused;
|
|
|
|
// Return the default size of the Lottie animation.
|
|
- (CGSize)size;
|
|
|
|
// Return the length of the animation loop.
|
|
- (float)animationDurationSeconds;
|
|
|
|
// Return the current position in the animation in seconds (between zero and
|
|
// animationDurationSeconds).
|
|
- (float)currentTime;
|
|
@end
|
|
|
|
#endif // SkottieMtkView_DEFINED
|