diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index e5927c9f1f..75bbc757f5 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -17,9 +17,11 @@ #include "../../config.h" #endif +#ifdef HAVE_X11 #ifdef HAVE_XCB #include #endif +#endif #include #include @@ -1485,6 +1487,7 @@ bool vulkan_surface_create(gfx_ctx_vulkan_data_t *vk, #endif break; case VULKAN_WSI_XCB: +#ifdef HAVE_X11 #ifdef HAVE_XCB { VkXcbSurfaceCreateInfoKHR surf_info; @@ -1501,6 +1504,7 @@ bool vulkan_surface_create(gfx_ctx_vulkan_data_t *vk, != VK_SUCCESS) return false; } +#endif #endif break; case VULKAN_WSI_MIR: diff --git a/gfx/drivers_context/mali_fbdev_ctx.c b/gfx/drivers_context/mali_fbdev_ctx.c index 55fb7ff3c6..35082a0e67 100644 --- a/gfx/drivers_context/mali_fbdev_ctx.c +++ b/gfx/drivers_context/mali_fbdev_ctx.c @@ -278,7 +278,7 @@ static gfx_ctx_proc_t gfx_ctx_mali_fbdev_get_proc_address(const char *symbol) { #ifdef HAVE_EGL return egl_get_proc_address(symbol); -#else +#endif } static void gfx_ctx_mali_fbdev_bind_hw_render(void *data, bool enable) diff --git a/libretro-common/glsm/glsm.c b/libretro-common/glsm/glsm.c index 570f79fd3d..7e36c4c8c7 100644 --- a/libretro-common/glsm/glsm.c +++ b/libretro-common/glsm/glsm.c @@ -31,6 +31,10 @@ struct gl_cached_state GLuint ids[MAX_TEXTURE]; } bind_textures; +#ifndef HAVE_OPENGLES + GLenum colorlogicop; +#endif + struct { bool enabled[MAX_ATTRIB]; @@ -516,6 +520,17 @@ void rglGetProgramiv(GLuint shader, GLenum pname, GLint *params) glGetProgramiv(shader, pname, params); } +void rglUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat *value) +{ + glUniformMatrix4fv(location, count, transpose, value); +} + +void rglDetachShader(GLuint program, GLuint shader) +{ + glDetachShader(program, shader); +} + void rglGetShaderiv(GLuint shader, GLenum pname, GLint *params) { glGetShaderiv(shader, pname, params); @@ -526,6 +541,11 @@ void rglAttachShader(GLuint program, GLuint shader) glAttachShader(program, shader); } +GLint rglGetAttribLocation(GLuint program, const GLchar *name) +{ + return glGetAttribLocation(program, name); +} + void rglShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length) { @@ -561,7 +581,7 @@ void rglGetProgramInfoLog(GLuint shader, GLsizei maxLength, GLboolean rglIsProgram(GLuint program) { - glIsProgram(program); + return glIsProgram(program); } void rglEnableVertexAttribArray(GLuint index) @@ -707,6 +727,10 @@ static void glsm_state_setup(void) gl_state.cap_translate[SGL_SCISSOR_TEST] = GL_SCISSOR_TEST; gl_state.cap_translate[SGL_STENCIL_TEST] = GL_STENCIL_TEST; +#ifndef HAVE_OPENGLES + gl_state.cap_translate[SGL_COLOR_LOGIC_OP] = GL_COLOR_LOGIC_OP; +#endif + for (i = 0; i < MAX_ATTRIB; i++) gl_state.vertex_attrib_pointer.enabled[i] = 0; @@ -732,6 +756,10 @@ static void glsm_state_setup(void) gl_state.depthfunc.func = GL_LESS; +#ifndef HAVE_OPENGLES + gl_state.colorlogicop = GL_COPY; +#endif + #ifdef CORE glGenVertexArrays(1, &gl_state.vao); #endif @@ -812,8 +840,6 @@ static void glsm_state_bind(void) { if (gl_state.cap_state[i]) glEnable(gl_state.cap_translate[i]); - else - glDisable(gl_state.cap_translate[i]); } if (gl_state.frontface.used) @@ -851,7 +877,10 @@ static void glsm_state_unbind(void) glBindVertexArray(0); #endif for (i = 0; i < SGL_CAP_MAX; i ++) - glDisable(gl_state.cap_translate[i]); + { + if (gl_state.cap_state[i]) + glDisable(gl_state.cap_translate[i]); + } glBlendFunc(GL_ONE, GL_ZERO); diff --git a/libretro-common/include/glsm/glsm.h b/libretro-common/include/glsm/glsm.h index b99d315e5b..940433cd98 100644 --- a/libretro-common/include/glsm/glsm.h +++ b/libretro-common/include/glsm/glsm.h @@ -100,6 +100,9 @@ enum SGL_DITHER, SGL_SAMPLE_ALPHA_TO_COVERAGE, SGL_SAMPLE_COVERAGE, +#ifndef HAVE_OPENGLES + SGL_COLOR_LOGIC_OP, +#endif SGL_CAP_MAX }; diff --git a/libretro-common/include/glsm/glsmsym.h b/libretro-common/include/glsm/glsmsym.h index ea62c8939a..eac9b36276 100644 --- a/libretro-common/include/glsm/glsmsym.h +++ b/libretro-common/include/glsm/glsmsym.h @@ -61,6 +61,7 @@ extern "C" { #define glGetProgramiv rglGetProgramiv #define glGetShaderiv rglGetShaderiv #define glAttachShader rglAttachShader +#define glDetachShader rglDetachShader #define glShaderSource rglShaderSource #define glCompileShader rglCompileShader #define glCreateProgram rglCreateProgram @@ -109,6 +110,8 @@ extern "C" { #define glPolygonOffset rglPolygonOffset #define glPixelStorei rglPixelStorei #define glReadBuffer rglReadBuffer +#define glUniformMatrix4fv rglUniformMatrix4fv +#define glGetAttribLocation rglGetAttribLocation void rglReadBuffer(GLenum mode); void rglPixelStorei(GLenum pname, GLint param); @@ -207,7 +210,10 @@ void rglBlitFramebuffer( GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - +void rglDetachShader(GLuint program, GLuint shader); +void rglUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat *value); +GLint rglGetAttribLocation(GLuint program, const GLchar *name); #ifdef __cplusplus } diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 7a99d9265e..568558e4b6 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3210,6 +3210,14 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings(menu, info, menu_hash_to_str(MENU_LABEL_QUIT_RETROARCH), PARSE_ACTION, false); +#endif +#if defined(HAVE_LAKKA) + menu_displaylist_parse_settings(menu, info, + menu_hash_to_str(MENU_LABEL_SHUTDOWN), + PARSE_ACTION, false); + menu_displaylist_parse_settings(menu, info, + menu_hash_to_str(MENU_LABEL_REBOOT), + PARSE_ACTION, false); #endif info->need_push = true; break;