mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-25 09:17:12 +01:00
Fixed bug 2816 - [patch] Android: Expose screen refresh rate
Jonas Kulla Display::getRefreshRate() is available on all API levels.
This commit is contained in:
parent
f15d13d6ef
commit
a26a4e9ee2
@ -392,7 +392,7 @@ public class SDLActivity extends Activity {
|
|||||||
public static native void nativeQuit();
|
public static native void nativeQuit();
|
||||||
public static native void nativePause();
|
public static native void nativePause();
|
||||||
public static native void nativeResume();
|
public static native void nativeResume();
|
||||||
public static native void onNativeResize(int x, int y, int format);
|
public static native void onNativeResize(int x, int y, int format, float rate);
|
||||||
public static native int onNativePadDown(int device_id, int keycode);
|
public static native int onNativePadDown(int device_id, int keycode);
|
||||||
public static native int onNativePadUp(int device_id, int keycode);
|
public static native int onNativePadUp(int device_id, int keycode);
|
||||||
public static native void onNativeJoy(int device_id, int axis,
|
public static native void onNativeJoy(int device_id, int axis,
|
||||||
@ -1041,7 +1041,7 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
|
|||||||
|
|
||||||
mWidth = width;
|
mWidth = width;
|
||||||
mHeight = height;
|
mHeight = height;
|
||||||
SDLActivity.onNativeResize(width, height, sdlFormat);
|
SDLActivity.onNativeResize(width, height, sdlFormat, mDisplay.getRefreshRate());
|
||||||
Log.v("SDL", "Window size:" + width + "x"+height);
|
Log.v("SDL", "Window size:" + width + "x"+height);
|
||||||
|
|
||||||
// Set mIsSurfaceReady to 'true' *before* making a call to handleResume
|
// Set mIsSurfaceReady to 'true' *before* making a call to handleResume
|
||||||
|
@ -143,9 +143,9 @@ JNIEXPORT void JNICALL SDL_Android_Init(JNIEnv* mEnv, jclass cls)
|
|||||||
/* Resize */
|
/* Resize */
|
||||||
JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize(
|
JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize(
|
||||||
JNIEnv* env, jclass jcls,
|
JNIEnv* env, jclass jcls,
|
||||||
jint width, jint height, jint format)
|
jint width, jint height, jint format, jfloat rate)
|
||||||
{
|
{
|
||||||
Android_SetScreenResolution(width, height, format);
|
Android_SetScreenResolution(width, height, format, rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Paddown */
|
/* Paddown */
|
||||||
|
@ -64,6 +64,8 @@ extern int Android_GLES_LoadLibrary(_THIS, const char *path);
|
|||||||
int Android_ScreenWidth = 0;
|
int Android_ScreenWidth = 0;
|
||||||
int Android_ScreenHeight = 0;
|
int Android_ScreenHeight = 0;
|
||||||
Uint32 Android_ScreenFormat = SDL_PIXELFORMAT_UNKNOWN;
|
Uint32 Android_ScreenFormat = SDL_PIXELFORMAT_UNKNOWN;
|
||||||
|
int Android_ScreenRate = 0;
|
||||||
|
|
||||||
SDL_sem *Android_PauseSem = NULL, *Android_ResumeSem = NULL;
|
SDL_sem *Android_PauseSem = NULL, *Android_ResumeSem = NULL;
|
||||||
|
|
||||||
/* Currently only one window */
|
/* Currently only one window */
|
||||||
@ -166,7 +168,7 @@ Android_VideoInit(_THIS)
|
|||||||
mode.format = Android_ScreenFormat;
|
mode.format = Android_ScreenFormat;
|
||||||
mode.w = Android_ScreenWidth;
|
mode.w = Android_ScreenWidth;
|
||||||
mode.h = Android_ScreenHeight;
|
mode.h = Android_ScreenHeight;
|
||||||
mode.refresh_rate = 0;
|
mode.refresh_rate = Android_ScreenRate;
|
||||||
mode.driverdata = NULL;
|
mode.driverdata = NULL;
|
||||||
if (SDL_AddBasicVideoDisplay(&mode) < 0) {
|
if (SDL_AddBasicVideoDisplay(&mode) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -189,11 +191,12 @@ Android_VideoQuit(_THIS)
|
|||||||
|
|
||||||
/* This function gets called before VideoInit() */
|
/* This function gets called before VideoInit() */
|
||||||
void
|
void
|
||||||
Android_SetScreenResolution(int width, int height, Uint32 format)
|
Android_SetScreenResolution(int width, int height, Uint32 format, float rate)
|
||||||
{
|
{
|
||||||
Android_ScreenWidth = width;
|
Android_ScreenWidth = width;
|
||||||
Android_ScreenHeight = height;
|
Android_ScreenHeight = height;
|
||||||
Android_ScreenFormat = format;
|
Android_ScreenFormat = format;
|
||||||
|
Android_ScreenRate = rate;
|
||||||
|
|
||||||
if (Android_Window) {
|
if (Android_Window) {
|
||||||
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESIZED, width, height);
|
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESIZED, width, height);
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "../SDL_sysvideo.h"
|
#include "../SDL_sysvideo.h"
|
||||||
|
|
||||||
/* Called by the JNI layer when the screen changes size or format */
|
/* Called by the JNI layer when the screen changes size or format */
|
||||||
extern void Android_SetScreenResolution(int width, int height, Uint32 format);
|
extern void Android_SetScreenResolution(int width, int height, Uint32 format, float rate);
|
||||||
|
|
||||||
/* Private display data */
|
/* Private display data */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user