5#include "flutter/impeller/toolkit/android/proc_table.h"
7#include "flutter/fml/build_config.h"
26 for (
const auto& lib :
libs) {
27 proc.
proc = lib->ResolveFunction<
T*>(proc.
proc_name).value_or(
nullptr);
38 if (!lib_android || !lib_egl) {
43 libraries_.push_back(std::move(lib_android));
44 libraries_.push_back(std::move(lib_egl));
46#define RESOLVE_PROC(proc, api) ResolveAndroidProc(proc, libraries_);
50 if (AChoreographer_postFrameCallback64) {
51 AChoreographer_postFrameCallback.Reset();
54#if FML_ARCH_CPU_32_BITS
57 AChoreographer_postFrameCallback.Reset();
70 return this->ATrace_isEnabled ? this->ATrace_isEnabled() :
false;
static fml::RefPtr< NativeLibrary > Create(const char *path)
const ProcTable & GetProcTable()
ProcTable & GetMutableProcTable()
void ResolveAndroidProc(AndroidProc< T > &proc, const std::vector< fml::RefPtr< fml::NativeLibrary > > &libs)
The table of Android procs that are resolved dynamically.
FOR_EACH_ANDROID_PROC(DEFINE_PROC)
bool IsValid() const
If a valid proc table could be setup. This may fail in case of setup on non-Android platforms.
bool TraceIsEnabled() const
Check if tracing in enabled in the process. This call can be made at any API level.