diff --git a/gfx/common/gl_common.h b/gfx/common/gl_common.h index 147e6ddd49..e853a8be77 100644 --- a/gfx/common/gl_common.h +++ b/gfx/common/gl_common.h @@ -175,6 +175,16 @@ static INLINE void gl_ff_matrix(const math_matrix_4x4 *mat) } #endif +static INLINE void gl_bind_texture(GLuint id, GLint wrap_mode, GLint mag_filter, + GLint min_filter) +{ + glBindTexture(GL_TEXTURE_2D, id); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap_mode); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap_mode); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter); +} + static INLINE unsigned gl_wrap_type_to_enum(enum gfx_wrap_type type) { switch (type) diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index 5b531f18cd..1880738023 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -595,11 +595,8 @@ static void gl_init_textures(gl_t *gl, const video_info_t *video) for (i = 0; i < gl->textures; i++) { - glBindTexture(GL_TEXTURE_2D, gl->texture[i]); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl->wrap_mode); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl->wrap_mode); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl->tex_mag_filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl->tex_min_filter); + gl_bind_texture(gl->texture[i], gl->wrap_mode, gl->tex_mag_filter, + gl->tex_min_filter); if (gl->renderchain_driver->init_texture_reference) gl->renderchain_driver->init_texture_reference( @@ -687,11 +684,7 @@ void gl_load_texture_data( break; } - glBindTexture(GL_TEXTURE_2D, id); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter); + gl_bind_texture(id, wrap, mag_filter, min_filter); glPixelStorei(GL_UNPACK_ALIGNMENT, alignment); glTexImage2D(GL_TEXTURE_2D, @@ -2089,11 +2082,8 @@ static void gl_update_tex_filter_frame(gl_t *gl) if (!gl->texture[i]) continue; - glBindTexture(GL_TEXTURE_2D, gl->texture[i]); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl->wrap_mode); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl->wrap_mode); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl->tex_mag_filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl->tex_min_filter); + gl_bind_texture(gl->texture[i], gl->wrap_mode, gl->tex_mag_filter, + gl->tex_min_filter); } glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]); diff --git a/gfx/drivers_font/gl_raster_font.c b/gfx/drivers_font/gl_raster_font.c index 7c8878ed4d..cd67468bc8 100644 --- a/gfx/drivers_font/gl_raster_font.c +++ b/gfx/drivers_font/gl_raster_font.c @@ -190,11 +190,8 @@ static void *gl_raster_font_init_font(void *data, video_context_driver_make_current(false); glGenTextures(1, &font->tex); - glBindTexture(GL_TEXTURE_2D, font->tex); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + gl_bind_texture(font->tex, GL_CLAMP_TO_EDGE, GL_LINEAR, GL_LINEAR); font->atlas = font->font_driver->get_atlas(font->font_data); font->tex_width = next_pow2(font->atlas->width); diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index 71d3205f65..3c823d5a1c 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -302,11 +302,8 @@ static void event_process_camera_frame(void *pbuf_ptr) } outputTexture = RCVOpenGLTextureGetName(renderTexture); - glBindTexture(GL_TEXTURE_2D, outputTexture); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + gl_bind_texture(outputTexture, GL_CLAMP_TO_EDGE, GL_LINEAR, GL_LINEAR); CVPixelBufferUnlockBaseAddress(pixelBuffer, 0); [[NSNotificationCenter defaultCenter] postNotificationName:@"NewCameraTextureReady" object:nil];