diff --git a/VERSION b/VERSION index b001d23..3a660ff 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.12 +2.3.13 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b35a22a..491135f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**2.3.13** +* Fix Texture Bug + **2.3.12** * Media Layer Proxy Optimizations * Bug Fixes diff --git a/images/start.png b/images/start.png index 2f56bad..49d1484 100644 Binary files a/images/start.png and b/images/start.png differ diff --git a/launcher/src/bootstrap.c b/launcher/src/bootstrap.c index fb8bea1..506fa35 100644 --- a/launcher/src/bootstrap.c +++ b/launcher/src/bootstrap.c @@ -150,6 +150,9 @@ static void exit_handler(__attribute__((unused)) int signal_id) { // Pre-Bootstrap void pre_bootstrap(int argc, char *argv[]) { + // Disable stdout Buffering + setvbuf(stdout, NULL, _IONBF, 0); + // Print Version for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--version") == 0 || strcmp(argv[i], "-v") == 0) { diff --git a/media-layer/proxy/src/GLESv1_CM.c b/media-layer/proxy/src/GLESv1_CM.c index ed51303..d0a9513 100644 --- a/media-layer/proxy/src/GLESv1_CM.c +++ b/media-layer/proxy/src/GLESv1_CM.c @@ -235,13 +235,12 @@ __attribute__((destructor)) static void _free_glBufferData_data() { } } #endif -CALL(18, glBufferData, void, (GLenum target, GLsizeiptr size, const void *data, GLenum usage)) { +CALL(18, glBufferData, void, (__attribute__((unused)) GLenum target, GLsizeiptr size, const void *data, GLenum usage)) { #if defined(MEDIA_LAYER_PROXY_SERVER) // Lock Proxy start_proxy_call(); // Arguments - write_int((uint32_t) target); write_int((uint32_t) size); write_int((uint32_t) usage); write_int(bound_buffer); @@ -255,7 +254,6 @@ CALL(18, glBufferData, void, (GLenum target, GLsizeiptr size, const void *data, // Release Proxy end_proxy_call(); #else - GLenum target = (GLenum) read_int(); GLsizeiptr size = (GLsizeiptr) read_int(); GLenum usage = (GLenum) read_int(); GLuint bound_buffer = (GLuint) read_int(); @@ -283,7 +281,7 @@ CALL(18, glBufferData, void, (GLenum target, GLsizeiptr size, const void *data, } // Run glBindBuffer(GL_ARRAY_BUFFER, bound_buffer); - glBufferData(target, size, data, usage); + glBufferData(GL_ARRAY_BUFFER, size, data, usage); #endif } @@ -367,13 +365,12 @@ CALL(23, glScissor, void, (GLint x, GLint y, GLsizei width, GLsizei height)) { #endif } -CALL(24, glTexParameteri, void, (GLenum target, GLenum pname, GLint param)) { +CALL(24, glTexParameteri, void, (__attribute__((unused)) GLenum target, GLenum pname, GLint param)) { #if defined(MEDIA_LAYER_PROXY_SERVER) // Lock Proxy start_proxy_call(); // Arguments - write_int((uint32_t) target); write_int((uint32_t) pname); write_int((uint32_t) param); write_int(bound_texture); @@ -381,13 +378,12 @@ CALL(24, glTexParameteri, void, (GLenum target, GLenum pname, GLint param)) { // Release Proxy end_proxy_call(); #else - GLenum target = (GLenum) read_int(); GLenum pname = (GLenum) read_int(); GLint param = (GLint) read_int(); GLuint bound_texture = (GLuint) read_int(); // Run glBindTexture(GL_TEXTURE_2D, bound_texture); - glTexParameteri(target, pname, param); + glTexParameteri(GL_TEXTURE_2D, pname, param); #endif } @@ -425,7 +421,7 @@ static int get_texture_size(GLsizei width, GLsizei height, GLenum format, GLenum return line_size * height; // This Should Have The Same Behavior On 32-Bit And 64-Bit Systems } -CALL(25, glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) { +CALL(25, glTexImage2D, void, (__attribute__((unused)) GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) { #if defined(MEDIA_LAYER_PROXY_SERVER) // Get Texture Size unsigned char is_null = pixels == NULL; @@ -438,7 +434,6 @@ CALL(25, glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, start_proxy_call(); // Arguments - write_int((uint32_t) target); write_int((uint32_t) level); write_int((uint32_t) internalformat); write_int((uint32_t) width); @@ -455,7 +450,6 @@ CALL(25, glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, // Release Proxy end_proxy_call(); #else - GLenum target = (GLenum) read_int(); GLint level = (GLint) read_int(); GLint internalformat = (GLint) read_int(); GLsizei width = (GLsizei) read_int(); @@ -474,7 +468,7 @@ CALL(25, glTexImage2D, void, (GLenum target, GLint level, GLint internalformat, } // Run glBindTexture(GL_TEXTURE_2D, bound_texture); - glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); + glTexImage2D(GL_TEXTURE_2D, level, internalformat, width, height, border, format, type, pixels); // Free if (!is_null) { free(pixels); @@ -775,7 +769,7 @@ CALL(43, glColorMask, void, (GLboolean red, GLboolean green, GLboolean blue, GLb #endif } -CALL(44, glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) { +CALL(44, glTexSubImage2D, void, (__attribute__((unused)) GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) { #if defined(MEDIA_LAYER_PROXY_SERVER) // Get Texture Size unsigned char is_null = pixels == NULL; @@ -788,7 +782,6 @@ CALL(44, glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLin start_proxy_call(); // Arguments - write_int((uint32_t) target); write_int((uint32_t) level); write_int((uint32_t) xoffset); write_int((uint32_t) yoffset); @@ -805,7 +798,6 @@ CALL(44, glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLin // Release Proxy end_proxy_call(); #else - GLenum target = (GLenum) read_int(); GLint level = (GLint) read_int(); GLint xoffset = (GLint) read_int(); GLint yoffset = (GLint) read_int(); @@ -824,7 +816,7 @@ CALL(44, glTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLin } // Run glBindTexture(GL_TEXTURE_2D, bound_texture); - glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); + glTexSubImage2D(GL_TEXTURE_2D, level, xoffset, yoffset, width, height, format, type, pixels); // Free if (!is_null) { free(pixels); @@ -1153,6 +1145,12 @@ static int get_glGetIntegerv_params_size(GLenum pname) { } CALL(61, glGetIntegerv, void, (GLenum pname, GLint *params)) { #if defined(MEDIA_LAYER_PROXY_SERVER) + // Stop Redudnant Proxy Call + if (pname == GL_TEXTURE_BINDING_2D) { + params[0] = bound_texture; + return; + } + // Lock Proxy start_proxy_call();