void Label::draw(float x, float y, unsigned int argb, float scale) { struct polygon_list mypoly; struct packed_colour_vertex_list myvertex; mypoly.cmd = TA_CMD_POLYGON|TA_CMD_POLYGON_TYPE_TRANSPARENT|TA_CMD_POLYGON_SUBLIST| TA_CMD_POLYGON_STRIPLENGTH_2|TA_CMD_POLYGON_PACKED_COLOUR|TA_CMD_POLYGON_TEXTURED; mypoly.mode1 = TA_POLYMODE1_Z_ALWAYS|TA_POLYMODE1_NO_Z_UPDATE; mypoly.mode2 = TA_POLYMODE2_BLEND_SRC_ALPHA|TA_POLYMODE2_BLEND_DST_INVALPHA| TA_POLYMODE2_FOG_DISABLED|TA_POLYMODE2_ENABLE_ALPHA| TA_POLYMODE2_TEXTURE_MODULATE_ALPHA|TA_POLYMODE2_V_SIZE_32|tex_u; mypoly.texture = TA_TEXTUREMODE_ARGB1555|TA_TEXTUREMODE_NON_TWIDDLED| TA_TEXTUREMODE_ADDRESS(texture); mypoly.red = mypoly.green = mypoly.blue = mypoly.alpha = 0; ta_commit_list(&mypoly); myvertex.cmd = TA_CMD_VERTEX; myvertex.ocolour = 0; myvertex.colour = argb; myvertex.z = 0.5; myvertex.u = 0.0; myvertex.v = 0.0; myvertex.x = x; myvertex.y = y; ta_commit_list(&myvertex); myvertex.x = x+u*scale; myvertex.u = 1.0; ta_commit_list(&myvertex); myvertex.x = x; myvertex.y = y+25.0*scale; myvertex.u = 0.0; myvertex.v = 25.0/32.0; ta_commit_list(&myvertex); myvertex.x = x+u*scale; myvertex.u = 1.0; myvertex.cmd |= TA_CMD_VERTEX_EOS; ta_commit_list(&myvertex); }
void draw_trans_quad(float x1, float y1, float x2, float y2, int c0, int c1, int c2, int c3) { struct polygon_list mypoly; struct packed_colour_vertex_list myvertex; mypoly.cmd = TA_CMD_POLYGON|TA_CMD_POLYGON_TYPE_TRANSPARENT|TA_CMD_POLYGON_SUBLIST| TA_CMD_POLYGON_STRIPLENGTH_2|TA_CMD_POLYGON_PACKED_COLOUR| TA_CMD_POLYGON_GOURAUD_SHADING; mypoly.mode1 = TA_POLYMODE1_Z_ALWAYS|TA_POLYMODE1_NO_Z_UPDATE; mypoly.mode2 = TA_POLYMODE2_BLEND_SRC_ALPHA|TA_POLYMODE2_BLEND_DST_INVALPHA| TA_POLYMODE2_FOG_DISABLED|TA_POLYMODE2_ENABLE_ALPHA; mypoly.texture = 0; mypoly.red = mypoly.green = mypoly.blue = mypoly.alpha = 0; ta_commit_list(&mypoly); myvertex.cmd = TA_CMD_VERTEX; myvertex.ocolour = 0; myvertex.z = 0.5; myvertex.u = 0.0; myvertex.v = 0.0; myvertex.colour = c0; myvertex.x = x1; myvertex.y = y1; ta_commit_list(&myvertex); myvertex.colour = c1; myvertex.x = x2; ta_commit_list(&myvertex); myvertex.colour = c2; myvertex.x = x1; myvertex.y = y2; ta_commit_list(&myvertex); myvertex.colour = c3; myvertex.x = x2; myvertex.cmd |= TA_CMD_VERTEX_EOS; ta_commit_list(&myvertex); }
void display_progress(double i, double size) { struct polygon_list mypoly; struct packed_colour_vertex_list myvertex; char str[16]; float sx, sy; const unsigned int bar_w = 320; const unsigned int bar_h = 8; float x, y; tx_resetfont(); scrnmng_update(); draw_transquad(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, UI_TR, UI_TR, UI_TR, UI_TR); x = ui_offx() + 2 * ui_font_width(); y = ui_offy() + (ui_height() - ui_font_height()+bar_h)/2; ui_font_draw(x, y - ui_font_height(), 255, 255, 255, "Loading, do not remove VMU!"); sx = ui_offx() + (ui_width()-bar_w)/2; sy = y; draw_transquad(sx, sy, sx + bar_w, sy + bar_h, MAKECOL32(64, 64, 64, 128), MAKECOL32(64, 64, 64, 128), MAKECOL32(64, 64, 64, 128), MAKECOL32(64, 64, 64, 128)); mypoly.cmd = TA_CMD_POLYGON|TA_CMD_POLYGON_TYPE_TRANSPARENT|TA_CMD_POLYGON_SUBLIST| TA_CMD_POLYGON_STRIPLENGTH_2|TA_CMD_POLYGON_GOURAUD_SHADING; mypoly.mode1 = TA_POLYMODE1_Z_ALWAYS|TA_POLYMODE1_NO_Z_UPDATE; mypoly.mode2 = TA_POLYMODE2_BLEND_SRC_ALPHA|TA_POLYMODE2_BLEND_DST_INVALPHA| TA_POLYMODE2_ENABLE_ALPHA|TA_POLYMODE2_FOG_DISABLED|TA_POLYMODE2_TEXTURE_MODULATE_ALPHA; mypoly.texture = 0; mypoly.alpha = mypoly.red = mypoly.green = mypoly.blue = 0; ta_commit_list(&mypoly); myvertex.cmd = TA_CMD_VERTEX; myvertex.x = sx; myvertex.y = sy; myvertex.z = 0.5; myvertex.colour = 0xff00e0e0; myvertex.ocolour = 0; ta_commit_list(&myvertex); myvertex.x = sx + bar_w * (1.0/size) * i; ta_commit_list(&myvertex); myvertex.x = sx; myvertex.y = sy + bar_h; ta_commit_list(&myvertex); myvertex.cmd |= TA_CMD_VERTEX_EOS; myvertex.x = sx + bar_w * (1.0/size) * i; ta_commit_list(&myvertex); sprintf(str, "%3.0f", (i/size) * 100); x = sx + (bar_w - 3 * ui_font_width()) / 2; y = sy + bar_h + 2; ui_font_draw(x, y, 255, 255, 255, str); x += 3 * ui_font_width(); ui_font_draw(x, y, 255, 255, 255, "%"); ta_commit_frame(); }