|
@@ -29,40 +29,8 @@
|
|
|
#include "ui/console.h"
|
|
|
#include "ui/shader.h"
|
|
|
|
|
|
-#include "shader/texture-blit-vert.h"
|
|
|
-#include "shader/texture-blit-frag.h"
|
|
|
-
|
|
|
-struct ConsoleGLState {
|
|
|
- GLint texture_blit_prog;
|
|
|
- GLint texture_blit_vao;
|
|
|
-};
|
|
|
-
|
|
|
/* ---------------------------------------------------------------------- */
|
|
|
|
|
|
-ConsoleGLState *console_gl_init_context(void)
|
|
|
-{
|
|
|
- ConsoleGLState *gls = g_new0(ConsoleGLState, 1);
|
|
|
-
|
|
|
- gls->texture_blit_prog = qemu_gl_create_compile_link_program
|
|
|
- (texture_blit_vert_src, texture_blit_frag_src);
|
|
|
- if (!gls->texture_blit_prog) {
|
|
|
- exit(1);
|
|
|
- }
|
|
|
-
|
|
|
- gls->texture_blit_vao =
|
|
|
- qemu_gl_init_texture_blit(gls->texture_blit_prog);
|
|
|
-
|
|
|
- return gls;
|
|
|
-}
|
|
|
-
|
|
|
-void console_gl_fini_context(ConsoleGLState *gls)
|
|
|
-{
|
|
|
- if (!gls) {
|
|
|
- return;
|
|
|
- }
|
|
|
- g_free(gls);
|
|
|
-}
|
|
|
-
|
|
|
bool console_gl_check_format(DisplayChangeListener *dcl,
|
|
|
pixman_format_code_t format)
|
|
|
{
|
|
@@ -76,7 +44,7 @@ bool console_gl_check_format(DisplayChangeListener *dcl,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void surface_gl_create_texture(ConsoleGLState *gls,
|
|
|
+void surface_gl_create_texture(QemuGLShader *gls,
|
|
|
DisplaySurface *surface)
|
|
|
{
|
|
|
assert(gls);
|
|
@@ -116,7 +84,7 @@ void surface_gl_create_texture(ConsoleGLState *gls,
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
|
|
}
|
|
|
|
|
|
-void surface_gl_update_texture(ConsoleGLState *gls,
|
|
|
+void surface_gl_update_texture(QemuGLShader *gls,
|
|
|
DisplaySurface *surface,
|
|
|
int x, int y, int w, int h)
|
|
|
{
|
|
@@ -133,7 +101,7 @@ void surface_gl_update_texture(ConsoleGLState *gls,
|
|
|
+ surface_bytes_per_pixel(surface) * x);
|
|
|
}
|
|
|
|
|
|
-void surface_gl_render_texture(ConsoleGLState *gls,
|
|
|
+void surface_gl_render_texture(QemuGLShader *gls,
|
|
|
DisplaySurface *surface)
|
|
|
{
|
|
|
assert(gls);
|
|
@@ -141,11 +109,10 @@ void surface_gl_render_texture(ConsoleGLState *gls,
|
|
|
glClearColor(0.1f, 0.1f, 0.1f, 0.0f);
|
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
|
|
|
|
- qemu_gl_run_texture_blit(gls->texture_blit_prog,
|
|
|
- gls->texture_blit_vao);
|
|
|
+ qemu_gl_run_texture_blit(gls);
|
|
|
}
|
|
|
|
|
|
-void surface_gl_destroy_texture(ConsoleGLState *gls,
|
|
|
+void surface_gl_destroy_texture(QemuGLShader *gls,
|
|
|
DisplaySurface *surface)
|
|
|
{
|
|
|
if (!surface || !surface->texture) {
|
|
@@ -155,7 +122,7 @@ void surface_gl_destroy_texture(ConsoleGLState *gls,
|
|
|
surface->texture = 0;
|
|
|
}
|
|
|
|
|
|
-void surface_gl_setup_viewport(ConsoleGLState *gls,
|
|
|
+void surface_gl_setup_viewport(QemuGLShader *gls,
|
|
|
DisplaySurface *surface,
|
|
|
int ww, int wh)
|
|
|
{
|