Code: Select all
void drawImage(const pvr_ptr_t &image, float x, float y, float layer, float width, float height)
{
size_t size = 2;
size_t size2 = 2;
for (size = 2; size < width; size *= 2);
for (size2 = 2; size2 < height; size2 *= 2);
pvr_poly_cxt_t cxt;
pvr_poly_hdr_t hdr;
pvr_vertex_t vert;
//pvr_poly_cxt_txr(&cxt, PVR_LIST_PT_POLY, PVR_TXRFMT_ARGB1555, size, size2, image, PVR_FILTER_NONE);
pvr_poly_cxt_txr(&cxt, PVR_LIST_TR_POLY, PVR_TXRFMT_ARGB4444, size, size2, image, PVR_FILTER_NONE);
pvr_poly_compile(&hdr, &cxt);
pvr_prim(&hdr, sizeof(hdr));
vert.argb = PVR_PACK_COLOR(1.0f, 1.0f, 1.0f, 1.0f);
vert.oargb = 0;
vert.flags = PVR_CMD_VERTEX;
vert.x = x;
vert.y = y;
vert.z = layer;
vert.u = 0.0;
vert.v = 0.0;
pvr_prim(&vert, sizeof(vert));
vert.x = x + width;
vert.y = y;
vert.z = layer;
vert.u = width / size;
vert.v = 0.0;
pvr_prim(&vert, sizeof(vert));
vert.x = x;
vert.y = y + height;
vert.z = layer;
vert.u = 0.0;
vert.v = height / size2;
pvr_prim(&vert, sizeof(vert));
vert.x = x + width;
vert.y = y + height;
vert.z = layer;
vert.u = width / size;
vert.v = height / size2;
vert.flags = PVR_CMD_VERTEX_EOL;
pvr_prim(&vert, sizeof(vert));
}
Code: Select all
void initTitleScreen(pvr_ptr_t &titleScreenImage, pvr_ptr_t &cursorImage)
{
loadImage(&titleScreenImage, IMAGE_PATH_TITLE_SCREEN,
IMAGE_WIDTH_TITLE_SCREEN, IMAGE_HEIGHT_TITLE_SCREEN);
if(!titleScreenImage)
exit(EXIT_FAILURE);
loadImage(&cursorImage, IMAGE_PATH_CURSOR,
IMAGE_WIDTH_CURSOR, IMAGE_HEIGHT_CURSOR);
if(!cursorImage)
exit(EXIT_FAILURE);
dbglog(DBG_DEBUG, "%i\n", pvr_mem_available());
}