浏览代码

Merge branch 'master' of https://github.com/jp9000/obs-studio

jp9000 11 年之前
父节点
当前提交
aac09ca31a
共有 3 个文件被更改,包括 10 次插入16 次删除
  1. 3 2
      libobs-opengl/gl-subsystem.c
  2. 1 0
      libobs-opengl/gl-windows.c
  3. 6 14
      libobs-opengl/gl-x11.c

+ 3 - 2
libobs-opengl/gl-subsystem.c

@@ -72,9 +72,10 @@ static void GLEW_TEMP_API gl_debug_proc(
 static void gl_enable_debug()
 {
 	 /* Perhaps we should create GLEW contexts? */
-
-	if (GLEW_ARB_debug_output)
+	if (GLEW_VERSION_4_3)
 		glDebugMessageCallback(gl_debug_proc, NULL);
+	if (GLEW_ARB_debug_output)
+		glDebugMessageCallbackARB(gl_debug_proc, NULL);
 	else {
 		blog(LOG_DEBUG, "Failed to set GL debug callback as it is "
 		                "not supported.");

+ 1 - 0
libobs-opengl/gl-windows.c

@@ -237,6 +237,7 @@ static inline void required_extension_error(const char *extension)
 
 static bool gl_init_extensions(device_t device)
 {
+	glewExperimental = true;
 	GLenum errorcode = glewInit();
 	if (errorcode != GLEW_OK) {
 		blog(LOG_ERROR, "glewInit failed, %u", errorcode);

+ 6 - 14
libobs-opengl/gl-x11.c

@@ -26,19 +26,7 @@ static const GLenum ctx_attribs[] = {
 	None, 
 };
 
-static const char* __GLX_error_table[] = {
-	"Success",
-	"Bad Screen",
-	"Bad Attribute",
-	"No Extension",
-	"Bad Visual",
-	"Bad Content",
-	"Bad Value",
-	"Bad Enumeration"
-};
-
-#define GET_GLX_ERROR(x) \
-	__GLX_error_table[x]
+#define ERROR_TEXT_LEN 1024
 
 struct gl_windowinfo {
 	uint32_t id;
@@ -52,7 +40,11 @@ struct gl_platform {
 
 static int GLXErrorHandler(Display *disp, XErrorEvent *error)
 {
-	blog(LOG_ERROR, "GLX error: %s\n", GET_GLX_ERROR(error->error_code));
+	char error_buf[ERROR_TEXT_LEN];
+	
+	XGetErrorText(disp, error->error_code, error_buf, ERROR_TEXT_LEN);
+	blog(LOG_ERROR, "GLX error: %s\n", error_buf);
+	
 	return 0;
 }