skia2/modules/skottie/BUILD.gn
Florin Malita de2c13dedd [skottie_tool] GPU backend support
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>
2022-06-22 20:17:13 +00:00

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") {
}
}