/* * Copyright 2018 The Android Open Source Project * * Licensed 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. */ #include "swappy/swappy.h" #include "Swappy.h" #include "Settings.h" #include <chrono> using namespace swappy; extern "C" { void Swappy_init(JNIEnv *env, jobject jactivity) { Swappy::init(env, jactivity); } void Swappy_destroy() { Swappy::destroyInstance(); } void Swappy_onChoreographer(int64_t frameTimeNanos) { Swappy::onChoreographer(frameTimeNanos); } bool Swappy_swap(EGLDisplay display, EGLSurface surface) { return Swappy::swap(display, surface); } void Swappy_setRefreshPeriod(uint64_t period_ns) { Settings::getInstance()->setRefreshPeriod(std::chrono::nanoseconds(period_ns)); } void Swappy_setUseAffinity(bool tf) { Settings::getInstance()->setUseAffinity(tf); } void Swappy_setSwapIntervalNS(uint64_t swap_ns) { Settings::getInstance()->setSwapIntervalNS(swap_ns); } uint64_t Swappy_getRefreshPeriodNanos() { return Settings::getInstance()->getRefreshPeriod().count(); } bool Swappy_getUseAffinity() { return Settings::getInstance()->getUseAffinity(); } uint64_t Swappy_getSwapIntervalNS() { return Swappy::getSwapIntervalNS(); } void Swappy_injectTracer(const SwappyTracer *t) { Swappy::addTracer(t); } void Swappy_setAutoSwapInterval(bool enabled) { Swappy::setAutoSwapInterval(enabled); } void Swappy_setAutoPipelineMode(bool enabled) { Swappy::setAutoPipelineMode(enabled); } void Swappy_enableStats(bool enabled) { Swappy::enableStats(enabled); } void Swappy_recordFrameStart(EGLDisplay display, EGLSurface surface) { Swappy::recordFrameStart(display, surface); } void Swappy_getStats(Swappy_Stats *stats) { Swappy::getStats(stats); } bool Swappy_isEnabled() { return Swappy::isEnabled(); } } // extern "C" {