Pārlūkot izejas kodu

Add ANativeWindow_setFrameRate support

Panagiotis Christopoulos Charitos 2 gadi atpakaļ
vecāks
revīzija
7ed3acb368

+ 1 - 0
AnKi/Core/App.cpp

@@ -251,6 +251,7 @@ Error App::initInternal(AllocAlignedCallback allocCb, void* allocCbUserData)
 	nwinit.m_stencilBits = 0;
 	nwinit.m_fullscreenDesktopRez = m_config->getWindowFullscreen() > 0;
 	nwinit.m_exclusiveFullscreen = m_config->getWindowFullscreen() == 2;
+	nwinit.m_targetFps = m_config->getCoreTargetFps();
 	ANKI_CHECK(NativeWindow::newInstance(nwinit, m_window));
 
 	//

+ 1 - 1
AnKi/Core/CMakeLists.txt

@@ -44,7 +44,7 @@ if(SDL)
 
 	set(extra_libs ${extra_libs} SDL2-static)
 elseif(ANDROID)
-	set(extra_libs log android AnKiAndroidNativeGlue AnKiHwcPipe)
+	set(extra_libs log android nativewindow AnKiAndroidNativeGlue AnKiHwcPipe)
 elseif(WINDOWS)
 	set(extra_libs version Imm32 Winmm DbgHelp)
 endif()

+ 1 - 0
AnKi/Core/NativeWindow.h

@@ -25,6 +25,7 @@ public:
 	U32 m_depthBits = 0;
 	U32 m_stencilBits = 0;
 	U32 m_samplesCount = 0;
+	U32 m_targetFps = 0;
 	static constexpr Bool m_doubleBuffer = true;
 	/// Create a fullscreen window with the desktop's resolution
 	Bool m_fullscreenDesktopRez = false;

+ 5 - 0
AnKi/Core/NativeWindowAndroid.cpp

@@ -94,6 +94,11 @@ Error NativeWindowAndroid::init([[maybe_unused]] const NativeWindowInitInfo& ini
 
 	m_nativeWindow = g_androidApp->window;
 
+	if(init.m_targetFps)
+	{
+		ANativeWindow_setFrameRate(m_nativeWindow, init.m_targetFps, ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT);
+	}
+
 	// Set some stuff
 	m_width = ANativeWindow_getWidth(g_androidApp->window);
 	m_height = ANativeWindow_getHeight(g_androidApp->window);