aboutsummaryrefslogtreecommitdiffstats
path: root/screen_ui.cpp
diff options
context:
space:
mode:
authorDoug Zongker <dougz@google.com>2014-03-17 12:10:02 -0700
committerDoug Zongker <dougz@google.com>2014-03-17 12:27:08 -0700
commita418aa7dd5e94cbf1ab2a6fa1c63f60e5e087d42 (patch)
tree629541c511f84bd4c42ef3de7ad099001874f05c /screen_ui.cpp
parent026ebe0214d6c1c9b3ddc22c35e9ac37e5f622bc (diff)
downloadbootable_recovery-a418aa7dd5e94cbf1ab2a6fa1c63f60e5e087d42.tar.gz
bootable_recovery-a418aa7dd5e94cbf1ab2a6fa1c63f60e5e087d42.tar.bz2
bootable_recovery-a418aa7dd5e94cbf1ab2a6fa1c63f60e5e087d42.zip
refactor image resource loading code in minui
Reduce the number of copies of libpng boilerplate. Rename res_create_* functions to be more clear. Make explicit the use of the framebuffer pixel format for images, and handle more combinations of input and output (eg, loading a grayscale image for display rather than use as a text alpha channel). Change-Id: I3d41c800a8f4c22b2f0167967ce6ee4d6b2b8846
Diffstat (limited to 'screen_ui.cpp')
-rw-r--r--screen_ui.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/screen_ui.cpp b/screen_ui.cpp
index 589c935..656f724 100644
--- a/screen_ui.cpp
+++ b/screen_ui.cpp
@@ -52,6 +52,7 @@ static double now() {
ScreenRecoveryUI::ScreenRecoveryUI() :
currentIcon(NONE),
installingFrame(0),
+ locale(NULL),
rtl_locale(false),
progressBarType(EMPTY),
progressScopeStart(0),
@@ -306,21 +307,21 @@ void ScreenRecoveryUI::progress_loop() {
}
void ScreenRecoveryUI::LoadBitmap(const char* filename, gr_surface* surface) {
- int result = res_create_surface(filename, surface);
+ int result = res_create_display_surface(filename, surface);
if (result < 0) {
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
}
}
void ScreenRecoveryUI::LoadBitmapArray(const char* filename, int* frames, gr_surface** surface) {
- int result = res_create_multi_surface(filename, frames, surface);
+ int result = res_create_multi_display_surface(filename, frames, surface);
if (result < 0) {
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
}
}
void ScreenRecoveryUI::LoadLocalizedBitmap(const char* filename, gr_surface* surface) {
- int result = res_create_localized_surface(filename, surface);
+ int result = res_create_localized_alpha_surface(filename, locale, surface);
if (result < 0) {
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
}
@@ -360,8 +361,9 @@ void ScreenRecoveryUI::Init()
RecoveryUI::Init();
}
-void ScreenRecoveryUI::SetLocale(const char* locale) {
- if (locale) {
+void ScreenRecoveryUI::SetLocale(const char* new_locale) {
+ if (new_locale) {
+ this->locale = new_locale;
char* lang = strdup(locale);
for (char* p = lang; *p; ++p) {
if (*p == '_') {
@@ -380,6 +382,8 @@ void ScreenRecoveryUI::SetLocale(const char* locale) {
rtl_locale = true;
}
free(lang);
+ } else {
+ new_locale = NULL;
}
}