SDL: video/openvr: minor clean-up:

From 93471cf78d310684a7e0e69c1ec3538f105b96ec Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Fri, 25 Oct 2024 23:20:24 +0300
Subject: [PATCH] video/openvr: minor clean-up:

- make all of function pointers static
- make EGLint context_attribs[] static
- comment out unused function pointer ov_wglGetCurrentContext
- remove unused SDL_DisplayMode openvr_dm_default
- move SDL_VideoDisplay openvr_vd_default to OPENVR_VideoInit()
  context and eliminate its C99 initializers
- replace atoi() calls with SDL_atoi()
- replace atof() calls with SDL_atof()
---
 src/video/openvr/SDL_openvrvideo.c | 122 ++++++++++++-----------------
 1 file changed, 51 insertions(+), 71 deletions(-)

diff --git a/src/video/openvr/SDL_openvrvideo.c b/src/video/openvr/SDL_openvrvideo.c
index d17ecb12834ea..eafd71ac6d40d 100644
--- a/src/video/openvr/SDL_openvrvideo.c
+++ b/src/video/openvr/SDL_openvrvideo.c
@@ -69,72 +69,43 @@ struct SDL_CursorData
 };
 
 // GL Extensions for functions we will be using.
-void (APIENTRY *ov_glGenFramebuffers)(GLsizei n, GLuint *framebuffers);
-void (APIENTRY *ov_glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
-void (APIENTRY *ov_glBindFramebuffer)(GLenum target, GLuint framebuffer);
-void (APIENTRY *ov_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
-void (APIENTRY *ov_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-void (APIENTRY *ov_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-void (APIENTRY *ov_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GLenum (APIENTRY *ov_glCheckNamedFramebufferStatus)(GLuint framebuffer, GLenum target);
-GLenum (APIENTRY *ov_glGetError)();
-void (APIENTRY *ov_glFlush)();
-void (APIENTRY *ov_glFinish)();
-void (APIENTRY *ov_glGenTextures)(GLsizei n, GLuint *textures);
-void (APIENTRY *ov_glDeleteTextures)(GLsizei n, GLuint *textures);
-void (APIENTRY *ov_glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
-void (APIENTRY *ov_glTexParameteri)(GLenum target, GLenum pname, GLenum param);
-void (APIENTRY *ov_glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *data);
-void (APIENTRY *ov_glBindTexture)(GLenum target, GLuint texture);
-void (APIENTRY *ov_glDrawBuffers)(GLsizei n, const GLenum *bufs);
-void (APIENTRY *ov_glGetIntegerv)(GLenum pname, GLint * data);
-const GLubyte *(APIENTRY *ov_glGetStringi)(GLenum name, GLuint index);
-void (APIENTRY *ov_glClear)(GLbitfield mask);
-void (APIENTRY *ov_glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-void (APIENTRY *ov_glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-void (APIENTRY *ov_glDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char *message);
+static void (APIENTRY *ov_glGenFramebuffers)(GLsizei n, GLuint *framebuffers);
+static void (APIENTRY *ov_glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
+static void (APIENTRY *ov_glBindFramebuffer)(GLenum target, GLuint framebuffer);
+static void (APIENTRY *ov_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
+static void (APIENTRY *ov_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+static void (APIENTRY *ov_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+static void (APIENTRY *ov_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+static GLenum (APIENTRY *ov_glCheckNamedFramebufferStatus)(GLuint framebuffer, GLenum target);
+static GLenum (APIENTRY *ov_glGetError)();
+static void (APIENTRY *ov_glFlush)();
+static void (APIENTRY *ov_glFinish)();
+static void (APIENTRY *ov_glGenTextures)(GLsizei n, GLuint *textures);
+static void (APIENTRY *ov_glDeleteTextures)(GLsizei n, GLuint *textures);
+static void (APIENTRY *ov_glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+static void (APIENTRY *ov_glTexParameteri)(GLenum target, GLenum pname, GLenum param);
+static void (APIENTRY *ov_glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *data);
+static void (APIENTRY *ov_glBindTexture)(GLenum target, GLuint texture);
+static void (APIENTRY *ov_glDrawBuffers)(GLsizei n, const GLenum *bufs);
+static void (APIENTRY *ov_glGetIntegerv)(GLenum pname, GLint * data);
+static const GLubyte *(APIENTRY *ov_glGetStringi)(GLenum name, GLuint index);
+static void (APIENTRY *ov_glClear)(GLbitfield mask);
+static void (APIENTRY *ov_glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+static void (APIENTRY *ov_glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+static void (APIENTRY *ov_glDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char *message);
 
 #ifdef SDL_VIDEO_DRIVER_WINDOWS
-PROC(*ov_wglGetProcAddress)(LPCSTR);
-HGLRC(*ov_wglCreateContext)(HDC);
-BOOL(*ov_wglDeleteContext)(HGLRC);
-BOOL(*ov_wglMakeCurrent)(HDC, HGLRC);
-HGLRC(*ov_wglGetCurrentContext)();
+static PROC (*ov_wglGetProcAddress)(LPCSTR);
+static HGLRC (*ov_wglCreateContext)(HDC);
+static BOOL (*ov_wglDeleteContext)(HGLRC);
+static BOOL (*ov_wglMakeCurrent)(HDC, HGLRC);
+//static HGLRC (*ov_wglGetCurrentContext)(void);
 #endif
 
 
 #define OPENVR_DEFAULT_WIDTH 1920
 #define OPENVR_DEFAULT_HEIGHT 1080
 
-SDL_DisplayMode openvr_dm_default = {
-    .format = SDL_PIXELFORMAT_RGBA32,
-    .w = OPENVR_DEFAULT_WIDTH,
-    .h = OPENVR_DEFAULT_HEIGHT,
-    .refresh_rate = 120,
-    .internal = 0
-};
-
-SDL_VideoDisplay openvr_vd_default = {
-    .name = 0,
-    .max_fullscreen_modes = 0,
-    .num_fullscreen_modes = 0,
-    .fullscreen_modes = 0,
-    .desktop_mode = {
-        .format = SDL_PIXELFORMAT_RGBA32,
-        .w = OPENVR_DEFAULT_WIDTH,
-        .h = OPENVR_DEFAULT_HEIGHT,
-        .refresh_rate = 120,
-        .internal = 0
-    },
-    .current_mode = 0,
-    .natural_orientation = SDL_ORIENTATION_LANDSCAPE,
-    .current_orientation = SDL_ORIENTATION_LANDSCAPE,
-    .fullscreen_window = 0,
-    .device = 0,
-    .content_scale = 1.0f,
-    .internal = 0
-};
-
 #define OPENVR_SetupProc(proc) { proc = (void*)SDL_GL_GetProcAddress((#proc)+3); if (!proc) { failed_extension = (#proc)+3; } }
 
 static bool OPENVR_InitExtensions(SDL_VideoDevice *_this)
@@ -215,22 +186,31 @@ static bool OPENVR_VideoInit(SDL_VideoDevice *_this)
     const char * hintWidth = SDL_GetHint("SDL_DEFAULT_WIDTH");
     const char * hintHeight = SDL_GetHint("SDL_DEFAULT_HEIGHT");
     const char * hintFPS = SDL_GetHint("SDL_DEFAULT_FPS");
-    int width = hintWidth?atoi(hintWidth):0;
-    int height = hintHeight?atoi(hintHeight):0;
+    int width = hintWidth ? SDL_atoi(hintWidth) : 0;
+    int height = hintHeight ? SDL_atoi(hintHeight) : 0;
+    int fps = hintFPS ? SDL_atoi(hintFPS) : 0;
+
+    SDL_VideoDisplay display;
+    SDL_zero(display);
+    display.desktop_mode.format = SDL_PIXELFORMAT_RGBA32;
+    display.desktop_mode.w = OPENVR_DEFAULT_WIDTH;
+    display.desktop_mode.h = OPENVR_DEFAULT_HEIGHT;
+    display.natural_orientation = SDL_ORIENTATION_LANDSCAPE;
+    display.current_orientation = SDL_ORIENTATION_LANDSCAPE;
+    display.content_scale = 1.0f;
     if (height > 0 && width > 0) {
-        openvr_vd_default.desktop_mode.w = width;
-        openvr_vd_default.desktop_mode.h = height;
+        display.desktop_mode.w = width;
+        display.desktop_mode.h = height;
     }
-    int fps = hintFPS?atoi(hintFPS):0;
     if (fps) {
-        openvr_vd_default.desktop_mode.refresh_rate = fps;
+        display.desktop_mode.refresh_rate = fps;
     } else {
-        openvr_vd_default.desktop_mode.refresh_rate = data->oSystem->GetFloatTrackedDeviceProperty(k_unTrackedDeviceIndex_Hmd, ETrackedDeviceProperty_Prop_DisplayFrequency_Float, 0);
+        display.desktop_mode.refresh_rate = data->oSystem->GetFloatTrackedDeviceProperty(k_unTrackedDeviceIndex_Hmd, ETrackedDeviceProperty_Prop_DisplayFrequency_Float, 0);
     }
 
-    openvr_vd_default.internal = (SDL_DisplayData *)data;
-    openvr_vd_default.name = (char*)"OpenVRDisplay";
-    SDL_AddVideoDisplay(&openvr_vd_default, false);
+    display.internal = (SDL_DisplayData *)data;
+    display.name = (char*)"OpenVRDisplay";
+    SDL_AddVideoDisplay(&display, false);
 
     return true;
 }
@@ -619,13 +599,13 @@ static bool OPENVR_InitializeOverlay(SDL_VideoDevice *_this,SDL_Window *window)
     }
     {
         const char * hint = SDL_GetHint("SDL_OPENVR_OVERLAY_PANEL_WIDTH");
-        float fWidth = (float)(hint?atof(hint):1.0f);
+        float fWidth = hint ? (float)SDL_atof(hint) : 1.0f;
         videodata->oOverlay->SetOverlayWidthInMeters(videodata->overlayID, fWidth);
     }
     {
         const char * hint = SDL_GetHint("SDL_OPENVR_CURSOR_WIDTH");
         // Default is what SteamVR Does
-        float fCursorWidth = (float)(hint?atof(hint):0.06f);
+        float fCursorWidth = hint ? (float)SDL_atof(hint) : 0.06f;
         videodata->oOverlay->SetOverlayWidthInMeters(videodata->cursorID, fCursorWidth * 0.5f);
     }
     {
@@ -974,7 +954,7 @@ static bool OPENVR_GL_DestroyContext(SDL_VideoDevice *_this, SDL_GLContext conte
 
 #else
 
-EGLint context_attribs[] = {
+static EGLint context_attribs[] = {
     EGL_CONTEXT_CLIENT_VERSION, 2,
     EGL_NONE
 };