I'm using Pebble SDK 2 and running into graphics problems.
I'm trying to add a full screen graphic with the dimensions 144 x 168, however, when I do-- the bottom gets clipped.
Investigating further- the root layer has the dimensions of 144 x 152 rather than 144 x 168 (Pebble's fullscreen dimensions). I set the window to be full screen, before adding the bitmap and calling window_stack_push
, so the status bar should not be an issue (although, the dimensions of the status bar supposedly fit the space I am missing).
Code is below:
void handle_init(void) {
s_main_window = window_create();
window_set_fullscreen(s_main_window, true);
window_set_window_handlers(s_main_window, (WindowHandlers) {
.load = main_window_load,
.unload = main_window_unload
});
const bool animated = true;
window_set_click_config_provider(s_main_window, click_config_provider);
window_stack_push(s_main_window, animated);
}
static void main_window_load(Window *window) {
// Create GBitmap, then set to created BitmapLayer
s_background_bitmap = gbitmap_create_with_resource(RESOURCE_ID_CHILL_BG5);
s_background_layer = bitmap_layer_create(GRect(0, 0, 144, 168));
bitmap_layer_set_bitmap(s_background_layer, s_background_bitmap);
layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(s_background_layer));
}
Updated Code:
static void breathe_window_load(Window *window) {
Layer *window_layer = window_get_root_layer(window);
// Create GBitmap, then set to created BitmapLayer
s_background_bitmap_3 = gbitmap_create_with_resource(RESOURCE_ID_CHILL_BG6);
s_background_layer_3 = bitmap_layer_create(GRect(0, -16, 144, 168));
bitmap_layer_set_bitmap(s_background_layer_3, s_background_bitmap_3);
layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(s_background_layer_3));
}
static void breathe_window_unload(Window *window) {
gbitmap_destroy(s_background_bitmap_3);
bitmap_layer_destroy(s_background_layer_3);
animation_unschedule_all();
window_destroy(s_window_2);
}
static void up_click_handler(ClickRecognizerRef recognizer, void *context) {
s_window_2 = window_create();
window_set_window_handlers(s_window_2, (WindowHandlers) {
.load = breathe_window_load,
.unload = breathe_window_unload
});
const bool animated = true;
window_stack_push(s_window_2, animated);
next_animation();
}