mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
Use RGB565 in VC context.
This commit is contained in:
parent
3bcbc605d7
commit
2145d1c4e2
@ -445,12 +445,12 @@ static bool gfx_ctx_write_egl_image(const void *frame, unsigned width, unsigned
|
|||||||
|
|
||||||
if (!eglBuffer[index] || !g_egl_vgimage[index])
|
if (!eglBuffer[index] || !g_egl_vgimage[index])
|
||||||
{
|
{
|
||||||
g_egl_vgimage[index] = vgCreateImage(VG_sXRGB_8888, g_egl_res, g_egl_res, g_smooth ? VG_IMAGE_QUALITY_BETTER : VG_IMAGE_QUALITY_NONANTIALIASED);
|
g_egl_vgimage[index] = vgCreateImage(rgb32 ? VG_sXRGB_8888 : VG_sRGB_565, g_egl_res, g_egl_res, VG_IMAGE_QUALITY_NONANTIALIASED);
|
||||||
eglBuffer[index] = peglCreateImageKHR(g_egl_dpy, g_eglimage_ctx, EGL_VG_PARENT_IMAGE_KHR, (EGLClientBuffer)g_egl_vgimage[index], NULL);
|
eglBuffer[index] = peglCreateImageKHR(g_egl_dpy, g_eglimage_ctx, EGL_VG_PARENT_IMAGE_KHR, (EGLClientBuffer)g_egl_vgimage[index], NULL);
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
vgImageSubData(g_egl_vgimage[index], frame, pitch, (rgb32 ? VG_sXRGB_8888 : VG_sARGB_1555), 0, 0, width, height);
|
vgImageSubData(g_egl_vgimage[index], frame, pitch, (rgb32 ? VG_sXRGB_8888 : VG_sRGB_565), 0, 0, width, height);
|
||||||
*image_handle = eglBuffer[index];
|
*image_handle = eglBuffer[index];
|
||||||
|
|
||||||
gfx_ctx_bind_api(g_api);
|
gfx_ctx_bind_api(g_api);
|
||||||
|
23
gfx/gl.c
23
gfx/gl.c
@ -995,8 +995,14 @@ static inline void gl_copy_frame(gl_t *gl, const void *frame, unsigned width, un
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gl_init_textures(gl_t *gl)
|
static void gl_init_textures(gl_t *gl, const video_info_t *video)
|
||||||
{
|
{
|
||||||
|
#if defined(HAVE_EGL) && defined(HAVE_OPENGLES2)
|
||||||
|
gl->egl_images = load_eglimage_proc(gl) && gl->ctx_driver->init_egl_image_buffer(video);
|
||||||
|
#else
|
||||||
|
(void)video;
|
||||||
|
#endif
|
||||||
|
|
||||||
glGenTextures(TEXTURES, gl->texture);
|
glGenTextures(TEXTURES, gl->texture);
|
||||||
for (unsigned i = 0; i < TEXTURES; i++)
|
for (unsigned i = 0; i < TEXTURES; i++)
|
||||||
{
|
{
|
||||||
@ -1007,9 +1013,12 @@ static void gl_init_textures(gl_t *gl)
|
|||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl->tex_filter);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl->tex_filter);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl->tex_filter);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl->tex_filter);
|
||||||
|
|
||||||
glTexImage2D(GL_TEXTURE_2D,
|
if (!gl->egl_images)
|
||||||
0, gl->internal_fmt, gl->tex_w, gl->tex_h, 0, gl->texture_type,
|
{
|
||||||
gl->texture_fmt, gl->empty_buf ? gl->empty_buf : NULL);
|
glTexImage2D(GL_TEXTURE_2D,
|
||||||
|
0, gl->internal_fmt, gl->tex_w, gl->tex_h, 0, gl->texture_type,
|
||||||
|
gl->texture_fmt, gl->empty_buf ? gl->empty_buf : NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
|
glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
|
||||||
}
|
}
|
||||||
@ -1381,7 +1390,7 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gl_init_textures(gl);
|
gl_init_textures(gl, video);
|
||||||
|
|
||||||
for (unsigned i = 0; i < TEXTURES; i++)
|
for (unsigned i = 0; i < TEXTURES; i++)
|
||||||
{
|
{
|
||||||
@ -1409,10 +1418,6 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_EGL
|
|
||||||
gl->egl_images = load_eglimage_proc(gl) && gl->ctx_driver->init_egl_image_buffer(video);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return gl;
|
return gl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ struct gl_coords
|
|||||||
|
|
||||||
#define MAX_SHADERS 16
|
#define MAX_SHADERS 16
|
||||||
|
|
||||||
#if defined(HAVE_GLSL) || defined(HAVE_CG)
|
#if (defined(HAVE_GLSL) || defined(HAVE_CG))
|
||||||
#define TEXTURES 8
|
#define TEXTURES 8
|
||||||
#else
|
#else
|
||||||
#define TEXTURES 1
|
#define TEXTURES 1
|
||||||
@ -238,9 +238,7 @@ typedef struct gl
|
|||||||
GLuint menu_texture_id;
|
GLuint menu_texture_id;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_EGL
|
|
||||||
bool egl_images;
|
bool egl_images;
|
||||||
#endif
|
|
||||||
} gl_t;
|
} gl_t;
|
||||||
|
|
||||||
// Windows ... <_<
|
// Windows ... <_<
|
||||||
|
Loading…
x
Reference in New Issue
Block a user