Mercurial > repos > blastem
comparison nuklear_ui/blastem_nuklear.c @ 1658:fa9ae059e4d3
Added support for GLES in addition to desktop GL
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 30 Dec 2018 21:10:44 -0800 |
parents | 5a662692c215 |
children | c6cc2dae262f |
comparison
equal
deleted
inserted
replaced
1657:774096402918 | 1658:fa9ae059e4d3 |
---|---|
1787 } | 1787 } |
1788 } | 1788 } |
1789 | 1789 |
1790 void blastem_nuklear_render(void) | 1790 void blastem_nuklear_render(void) |
1791 { | 1791 { |
1792 nk_input_end(context); | 1792 if (current_view != view_play) { |
1793 current_view(context); | 1793 nk_input_end(context); |
1794 nk_sdl_render(NK_ANTI_ALIASING_ON, 512 * 1024, 128 * 1024); | 1794 current_view(context); |
1795 nk_input_begin(context); | 1795 nk_sdl_render(NK_ANTI_ALIASING_ON, 512 * 1024, 128 * 1024); |
1796 nk_input_begin(context); | |
1797 } | |
1796 } | 1798 } |
1797 | 1799 |
1798 void ui_idle_loop(void) | 1800 void ui_idle_loop(void) |
1799 { | 1801 { |
1800 const uint32_t MIN_UI_DELAY = 15; | 1802 const uint32_t MIN_UI_DELAY = 15; |
1847 glBindTexture(GL_TEXTURE_2D, tex); | 1849 glBindTexture(GL_TEXTURE_2D, tex); |
1848 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 1850 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
1849 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | 1851 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
1850 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 1852 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
1851 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | 1853 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
1854 #ifdef USE_GLES | |
1855 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buf); | |
1856 #else | |
1852 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, buf); | 1857 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, buf); |
1858 #endif | |
1853 return nk_image_id((int)tex); | 1859 return nk_image_id((int)tex); |
1854 } | 1860 } |
1855 | 1861 |
1856 static void texture_init(void) | 1862 static void texture_init(void) |
1857 { | 1863 { |
1927 ui_image_storage = (ui_image_storage + 1) * 2; | 1933 ui_image_storage = (ui_image_storage + 1) * 2; |
1928 ui_images = realloc(ui_images, ui_image_storage * sizeof(*ui_images)); | 1934 ui_images = realloc(ui_images, ui_image_storage * sizeof(*ui_images)); |
1929 } | 1935 } |
1930 ui_image *this_image = ui_images[num_ui_images-1] = calloc(1, sizeof(ui_image)); | 1936 ui_image *this_image = ui_images[num_ui_images-1] = calloc(1, sizeof(ui_image)); |
1931 this_image->image_data = load_png(buf, buf_size, &this_image->width, &this_image->height); | 1937 this_image->image_data = load_png(buf, buf_size, &this_image->width, &this_image->height); |
1938 #ifdef USE_GLES | |
1939 uint32_t *cur = this_image->image_data; | |
1940 for (int i = 0; i < this_image->width*this_image->height; i++, cur++) | |
1941 { | |
1942 uint32_t pixel = *cur; | |
1943 *cur = (pixel & 0xFF00FF00) | (pixel << 16 & 0xFF0000) | (pixel >> 16 & 0xFF); | |
1944 } | |
1945 #endif | |
1932 free(buf); | 1946 free(buf); |
1933 if (!this_image->image_data) { | 1947 if (!this_image->image_data) { |
1934 num_ui_images--; | 1948 num_ui_images--; |
1935 free(this_image); | 1949 free(this_image); |
1936 return NULL; | 1950 return NULL; |