mirror of https://github.com/libsdl-org/SDL.git
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()
This commit is contained in:
parent
8bf1a84200
commit
93471cf78d
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue