struct GUIFont* GUIFontCreate(void) { struct GUIFont* font = malloc(sizeof(struct GUIFont)); if (!font) { return 0; } font->tex = vita2d_load_PNG_buffer(_binary_font2x_png_start); font->icons = vita2d_load_PNG_buffer(_binary_icons2x_png_start); return font; }
void initVita2dLib() { vita2d_init(); font = vita2d_load_default_pgf(); // Font size cache int i; for (i = 0; i < 256; i++) { char character[2]; character[0] = i; character[1] = '\0'; font_size_cache[i] = vita2d_pgf_text_width(font, FONT_SIZE, character); } battery_image = vita2d_load_PNG_buffer(&_binary_resources_battery_png_start); battery_bar_red_image = vita2d_load_PNG_buffer(&_binary_resources_battery_bar_red_png_start); battery_bar_green_image = vita2d_load_PNG_buffer(&_binary_resources_battery_bar_green_png_start); }
int main() { SceCtrlData pad; vita2d_pgf *pgf; vita2d_texture *image; float rad = 0.0f; vita2d_init(); vita2d_set_clear_color(RGBA8(0x40, 0x40, 0x40, 0xFF)); pgf = vita2d_load_default_pgf(); /* * Load the statically compiled image.png file. */ image = vita2d_load_PNG_buffer(&_binary_image_png_start); memset(&pad, 0, sizeof(pad)); while (1) { sceCtrlPeekBufferPositive(0, &pad, 1); if (pad.buttons & SCE_CTRL_START) break; vita2d_start_drawing(); vita2d_clear_screen(); vita2d_draw_rectangle(20, 20, 400, 250, RGBA8(255, 0, 0, 255)); vita2d_draw_rectangle(680, 350, 100, 150, RGBA8(0, 0, 255, 255)); vita2d_draw_fill_circle(200, 420, 100, RGBA8(0, 255,0 ,255)); vita2d_draw_texture_rotate(image, 940/2, 544/2, rad); vita2d_draw_line(500, 30, 800, 300, RGBA8(255, 0, 255, 255)); vita2d_pgf_draw_text(pgf, 700, 30, RGBA8(0,255,0,255), 1.0f, "PGF Font sample!"); vita2d_end_drawing(); vita2d_swap_buffers(); rad += 0.1f; } /* * vita2d_fini() waits until the GPU has finished rendering, * then we can free the assets freely. */ vita2d_fini(); vita2d_free_texture(image); vita2d_free_pgf(pgf); sceKernelExitProcess(0); return 0; }
void show_splash() { vita2d_start_drawing(); vita2d_clear_screen(); vita2d_texture *splash = vita2d_create_empty_texture(960, 544); splash = vita2d_load_PNG_buffer(revitalize); vita2d_draw_texture(splash, 0, 0); vita2d_end_drawing(); vita2d_swap_buffers(); sceKernelDelayThread(5000000); // Delay 5 seconds vita2d_free_texture(splash); }
int main() { SceCtrlData pad; vita2d_pgf *pgf; vita2d_texture *image; float rad = 0.0f; vita2d_init(); vita2d_set_clear_color(RGBA8(0x40, 0x40, 0x40, 0xFF)); pgf = vita2d_load_default_pgf(); image = vita2d_load_PNG_buffer(&_binary_image_png_start); memset(&pad, 0, sizeof(pad)); while (1) { sceCtrlPeekBufferPositive(0, &pad, 1); if (pad.buttons & SCE_CTRL_START) break; vita2d_start_drawing(); vita2d_clear_screen(); vita2d_draw_texture_rotate(image, 940/2, 544/2, rad); vita2d_pgf_draw_text(pgf, 50, 50, RGBA8(255,255,255,255), 1.0f, "ミクのおっぱい柔かぁい。柔軟剤使ったのか?"); vita2d_end_drawing(); vita2d_swap_buffers(); rad += 0.1f; } vita2d_fini(); vita2d_free_texture(image); vita2d_free_pgf(pgf); sceKernelExitProcess(0); return 0; }
void loadTheme() { #define COLOR_ENTRY(name) { #name, CONFIG_TYPE_HEXDECIMAL, (void *)&name } ConfigEntry colors_entries[] = { // Shell colors COLOR_ENTRY(BACKGROUND_COLOR), COLOR_ENTRY(TITLE_COLOR), COLOR_ENTRY(PATH_COLOR), COLOR_ENTRY(DATE_TIME_COLOR), // Settings colors COLOR_ENTRY(SETTINGS_MENU_COLOR), COLOR_ENTRY(SETTINGS_MENU_FOCUS_COLOR), COLOR_ENTRY(SETTINGS_MENU_TITLE_COLOR), COLOR_ENTRY(SETTINGS_MENU_ITEM_COLOR), COLOR_ENTRY(SETTINGS_MENU_OPTION_COLOR), // File browser colors COLOR_ENTRY(FOCUS_COLOR), COLOR_ENTRY(FILE_COLOR), COLOR_ENTRY(SFO_COLOR), COLOR_ENTRY(TXT_COLOR), COLOR_ENTRY(FOLDER_COLOR), COLOR_ENTRY(IMAGE_COLOR), COLOR_ENTRY(ARCHIVE_COLOR), COLOR_ENTRY(SCROLL_BAR_COLOR), COLOR_ENTRY(SCROLL_BAR_BG_COLOR), COLOR_ENTRY(MARKED_COLOR), // Context menu colors COLOR_ENTRY(CONTEXT_MENU_TEXT_COLOR), COLOR_ENTRY(CONTEXT_MENU_FOCUS_COLOR), COLOR_ENTRY(CONTEXT_MENU_COLOR), COLOR_ENTRY(CONTEXT_MENU_MORE_COLOR), COLOR_ENTRY(INVISIBLE_COLOR), // Dialog colors COLOR_ENTRY(DIALOG_COLOR), COLOR_ENTRY(DIALOG_BG_COLOR), COLOR_ENTRY(PROGRESS_BAR_COLOR), COLOR_ENTRY(PROGRESS_BAR_BG_COLOR), // Hex editor colors COLOR_ENTRY(HEX_COLOR), COLOR_ENTRY(HEX_OFFSET_COLOR), COLOR_ENTRY(HEX_NIBBLE_COLOR), // Text editor colors COLOR_ENTRY(TEXT_COLOR), COLOR_ENTRY(TEXT_FOCUS_COLOR), COLOR_ENTRY(TEXT_LINE_NUMBER_COLOR), COLOR_ENTRY(TEXT_LINE_NUMBER_COLOR_FOCUS), COLOR_ENTRY(TEXT_HIGHLIGHT_COLOR), // Photo viewer colors COLOR_ENTRY(PHOTO_ZOOM_COLOR), // Audio player colors COLOR_ENTRY(AUDIO_INFO_ASSIGN), COLOR_ENTRY(AUDIO_INFO), COLOR_ENTRY(AUDIO_SPEED), COLOR_ENTRY(AUDIO_TIME_CURRENT), COLOR_ENTRY(AUDIO_TIME_SLASH), COLOR_ENTRY(AUDIO_TIME_TOTAL), COLOR_ENTRY(AUDIO_TIME_BAR), COLOR_ENTRY(AUDIO_TIME_BAR_BG), }; int i; // Load default config file readConfigBuffer(&_binary_resources_colors_txt_start, (int)&_binary_resources_colors_txt_size, colors_entries, sizeof(colors_entries) / sizeof(ConfigEntry)); // Load custom config file if (use_custom_config) { char path[MAX_PATH_LENGTH]; char *theme_name = NULL; ConfigEntry theme_entries[] = { { "THEME_NAME", CONFIG_TYPE_STRING, (void *)&theme_name }, }; // Load theme config readConfig("ux0:VitaShell/theme/theme.txt", theme_entries, sizeof(theme_entries) / sizeof(ConfigEntry)); if (theme_name) { // Load colors config snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/colors.txt", theme_name); readConfig(path, colors_entries, sizeof(colors_entries) / sizeof(ConfigEntry)); // Font snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/font.pgf", theme_name); font = vita2d_load_custom_pgf(path); // Load theme for (i = 0; i < N_THEME_IMAGES; i++) { snprintf(path, MAX_PATH_LENGTH, "ux0:VitaShell/theme/%s/%s", theme_name, theme_images[i].name); if (theme_images[i].texture && *(theme_images[i].texture) == NULL) *(theme_images[i].texture) = vita2d_load_PNG_file(path); } } } // Load default theme for (i = 0; i < N_THEME_IMAGES; i++) { if (theme_images[i].texture && *(theme_images[i].texture) == NULL && theme_images[i].default_buf) *(theme_images[i].texture) = vita2d_load_PNG_buffer(theme_images[i].default_buf); } // Load default pngs if (!dialog_image) { dialog_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT); void *data = vita2d_texture_get_datap(dialog_image); int y; for (y = 0; y < SCREEN_HEIGHT; y++) { int x; for (x = 0; x < SCREEN_WIDTH; x++) { ((uint32_t *)data)[x + SCREEN_WIDTH * y] = DIALOG_BG_COLOR; } } } if (!context_image) { context_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT); void *data = vita2d_texture_get_datap(context_image); int y; for (y = 0; y < SCREEN_HEIGHT; y++) { int x; for (x = 0; x < SCREEN_WIDTH; x++) { ((uint32_t *)data)[x + SCREEN_WIDTH * y] = CONTEXT_MENU_COLOR; } } } if (!context_more_image) { context_more_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT); void *data = vita2d_texture_get_datap(context_more_image); int y; for (y = 0; y < SCREEN_HEIGHT; y++) { int x; for (x = 0; x < SCREEN_WIDTH; x++) { ((uint32_t *)data)[x + SCREEN_WIDTH * y] = CONTEXT_MENU_MORE_COLOR; } } } if (!settings_image) { settings_image = vita2d_create_empty_texture(SCREEN_WIDTH, SCREEN_HEIGHT); void *data = vita2d_texture_get_datap(settings_image); int y; for (y = 0; y < SCREEN_HEIGHT; y++) { int x; for (x = 0; x < SCREEN_WIDTH; x++) { ((uint32_t *)data)[x + SCREEN_WIDTH * y] = SETTINGS_MENU_COLOR; } } } // Load system fonts if (!font) font = loadSystemFonts(); // Font size cache for (i = 0; i < 256; i++) { char character[2]; character[0] = i; character[1] = '\0'; font_size_cache[i] = vita2d_pgf_text_width(font, FONT_SIZE, character); } }