diff options
author | Dees Troy <dees_troy@teamw.in> | 2012-12-11 16:56:29 +0100 |
---|---|---|
committer | Gerrit Code Review <gerrit@5.9.244.119> | 2012-12-11 16:56:29 +0100 |
commit | 8983ccd55fdcb1bb565da395280e659054b8c798 (patch) | |
tree | 14b43597a596d4585096d4b7b2a4c80ba6415296 | |
parent | Merge "fix SP variable names" into jb-wip (diff) | |
parent | graphics: add support for "single buffering" (diff) | |
download | android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar.gz android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar.bz2 android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar.lz android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar.xz android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.tar.zst android_bootable_recovery-8983ccd55fdcb1bb565da395280e659054b8c798.zip |
Diffstat (limited to '')
-rw-r--r-- | minuitwrp/graphics.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c index b30a92ef0..357639201 100644 --- a/minuitwrp/graphics.c +++ b/minuitwrp/graphics.c @@ -66,6 +66,7 @@ static GGLSurface gr_font_texture; static GGLSurface gr_framebuffer[2]; static GGLSurface gr_mem_surface; static unsigned gr_active_fb = 0; +static unsigned double_buffering = 0; static int gr_fb_fd = -1; static int gr_vt_fd = -1; @@ -199,6 +200,12 @@ static int get_framebuffer(GGLSurface *fb) fb++; + /* check if we can use double buffering */ + if (vi.yres * fi.line_length * 2 > fi.smem_len) + return fd; + + double_buffering = 1; + fb->version = sizeof(*fb); fb->width = vi.xres; fb->height = vi.yres; @@ -230,7 +237,7 @@ static void get_memory_surface(GGLSurface* ms) { static void set_active_framebuffer(unsigned n) { - if (n > 1) return; + if (n > 1 || !double_buffering) return; vi.yres_virtual = vi.yres * 2; vi.yoffset = n * vi.yres; // vi.bits_per_pixel = PIXEL_SIZE * 8; @@ -244,7 +251,8 @@ void gr_flip(void) GGLContext *gl = gr_context; /* swap front and back buffers */ - gr_active_fb = (gr_active_fb + 1) & 1; + if (double_buffering) + gr_active_fb = (gr_active_fb + 1) & 1; #ifdef BOARD_HAS_FLIPPED_SCREEN /* flip buffer 180 degrees for devices with physicaly inverted screens */ |