de2c13dedd
Refactor the implementation to decouple frame generators (FrameGenerator: cpu, gpu, picture) from frame consumers (FrameSink: png, skp, mp4, null). Add a GPU frame generator using async readbacks. Unlike other generators, which execute on a thread pool, selecting the GPU generator forces single-thread execution. Also add a couple of backend-specific build targets (skottie_tool_cpu, skottie_tool_gpu) to facilitate binary size experiments. Change-Id: Id59e230b3861afe5bf9b7ecfc710d672f38eeaaf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/551237 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@google.com>
197 lines
4.1 KiB
Plaintext
197 lines
4.1 KiB
Plaintext
# Copyright 2018 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("../../gn/skia.gni")
|
|
|
|
if (skia_enable_skottie) {
|
|
config("public_config") {
|
|
defines = [ "SK_ENABLE_SKOTTIE" ]
|
|
include_dirs = [ "include" ]
|
|
}
|
|
|
|
skia_component("skottie") {
|
|
check_includes = false
|
|
import("skottie.gni")
|
|
public_configs = [ ":public_config" ]
|
|
public = skia_skottie_public
|
|
sources = skia_skottie_sources
|
|
configs = [ "../../:skia_private" ]
|
|
deps = [
|
|
"../..:skia",
|
|
"../skresources",
|
|
"../sksg",
|
|
"../skshaper",
|
|
"../skunicode",
|
|
]
|
|
}
|
|
|
|
if (defined(is_skia_standalone)) {
|
|
config("utils_config") {
|
|
include_dirs = [ "utils" ]
|
|
}
|
|
skia_source_set("utils") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
public_configs = [ ":utils_config" ]
|
|
configs = [ "../../:skia_private" ]
|
|
|
|
sources = [ "utils/SkottieUtils.cpp" ]
|
|
deps = [
|
|
":skottie",
|
|
"../..:skia",
|
|
]
|
|
}
|
|
|
|
if (skia_enable_tools) {
|
|
skia_source_set("tests") {
|
|
testonly = true
|
|
|
|
configs = [
|
|
"../..:skia_private",
|
|
"../..:tests_config",
|
|
]
|
|
sources = [
|
|
"src/SkottieTest.cpp",
|
|
"tests/AudioLayer.cpp",
|
|
"tests/Expression.cpp",
|
|
"tests/Image.cpp",
|
|
"tests/Keyframe.cpp",
|
|
"tests/Text.cpp",
|
|
]
|
|
|
|
deps = [
|
|
":skottie",
|
|
"../..:skia",
|
|
"../..:test",
|
|
"../skshaper",
|
|
]
|
|
}
|
|
|
|
skia_source_set("fuzz") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
configs = [ "../..:skia_private" ]
|
|
include_dirs = [
|
|
"../../tools",
|
|
"../../tools/flags",
|
|
"../../tools/fonts",
|
|
]
|
|
sources = [
|
|
"../../tools/Resources.cpp",
|
|
"../../tools/fonts/TestFontMgr.cpp",
|
|
"../../tools/fonts/TestSVGTypeface.cpp",
|
|
"../../tools/fonts/TestTypeface.cpp",
|
|
"fuzz/FuzzSkottieJSON.cpp",
|
|
]
|
|
|
|
deps = [
|
|
"../..:skia",
|
|
"../svg",
|
|
]
|
|
|
|
public_deps = [ ":skottie" ]
|
|
}
|
|
|
|
skia_source_set("tool") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
configs = [ "../..:skia_private" ]
|
|
sources = [ "src/SkottieTool.cpp" ]
|
|
|
|
deps = [
|
|
"../..:flags",
|
|
"../..:gpu_tool_utils",
|
|
"../..:skia",
|
|
"../../experimental/ffmpeg:video_encoder",
|
|
]
|
|
|
|
public_deps = [
|
|
":skottie",
|
|
":utils",
|
|
]
|
|
}
|
|
|
|
# A couple of backend specific targets, to facilitate binary size experiments.
|
|
skia_source_set("tool_cpu") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
configs = [ "../..:skia_private" ]
|
|
sources = [ "src/SkottieTool.cpp" ]
|
|
defines = [ "CPU_ONLY" ]
|
|
|
|
deps = [
|
|
"../..:flags",
|
|
"../..:gpu_tool_utils",
|
|
"../..:skia",
|
|
"../../experimental/ffmpeg:video_encoder",
|
|
]
|
|
|
|
public_deps = [
|
|
":skottie",
|
|
":utils",
|
|
]
|
|
}
|
|
|
|
skia_source_set("tool_gpu") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
configs = [ "../..:skia_private" ]
|
|
sources = [ "src/SkottieTool.cpp" ]
|
|
defines = [ "GPU_ONLY" ]
|
|
|
|
deps = [
|
|
"../..:flags",
|
|
"../..:gpu_tool_utils",
|
|
"../..:skia",
|
|
"../../experimental/ffmpeg:video_encoder",
|
|
]
|
|
|
|
public_deps = [
|
|
":skottie",
|
|
":utils",
|
|
]
|
|
}
|
|
|
|
skia_source_set("gm") {
|
|
check_includes = false
|
|
testonly = true
|
|
|
|
# would be nice to have a gm_config
|
|
include_dirs = [ "../../gm" ]
|
|
|
|
configs = [ "../..:skia_private" ]
|
|
sources = [
|
|
"gm/ExternalProperties.cpp",
|
|
"gm/SkottieGM.cpp",
|
|
]
|
|
|
|
deps = [
|
|
":skottie",
|
|
":utils",
|
|
"../..:gpu_tool_utils",
|
|
"../..:skia",
|
|
"../..:tool_utils",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
group("skottie") {
|
|
}
|
|
group("fuzz") {
|
|
}
|
|
group("gm") {
|
|
}
|
|
group("tests") {
|
|
}
|
|
group("utils") {
|
|
}
|
|
}
|