mirror of
https://github.com/suchmememanyskill/TegraExplorer.git
synced 2024-11-22 20:06:43 +00:00
Horizontal TE, proper edition
yes i can't git, shut
This commit is contained in:
parent
931cbc829f
commit
305c372d8c
4 changed files with 73 additions and 40 deletions
|
@ -165,14 +165,14 @@ void gfx_con_setcol(u32 fgcol, int fillbg, u32 bgcol)
|
|||
|
||||
void gfx_con_getpos(u32 *x, u32 *y)
|
||||
{
|
||||
*x = gfx_con.x;
|
||||
*y = gfx_con.y;
|
||||
*x = YLEFT - gfx_con.y;
|
||||
*y = gfx_con.x;
|
||||
}
|
||||
|
||||
void gfx_con_setpos(u32 x, u32 y)
|
||||
{
|
||||
gfx_con.x = x;
|
||||
gfx_con.y = y;
|
||||
gfx_con.x = y;
|
||||
gfx_con.y = YLEFT - x;
|
||||
}
|
||||
|
||||
void gfx_putc(char c)
|
||||
|
@ -196,44 +196,53 @@ void gfx_putc(char c)
|
|||
if (v & 1)
|
||||
{
|
||||
*fb = gfx_con.fgcol;
|
||||
fb++;
|
||||
fb -= gfx_ctxt.stride;
|
||||
*fb = gfx_con.fgcol;
|
||||
}
|
||||
else if (gfx_con.fillbg)
|
||||
{
|
||||
*fb = gfx_con.bgcol;
|
||||
fb++;
|
||||
fb -= gfx_ctxt.stride;
|
||||
*fb = gfx_con.bgcol;
|
||||
}
|
||||
else
|
||||
fb++;
|
||||
fb -= gfx_ctxt.stride;
|
||||
v >>= 1;
|
||||
fb++;
|
||||
fb -= gfx_ctxt.stride;
|
||||
}
|
||||
fb += gfx_ctxt.stride - 16;
|
||||
//fb += gfx_ctxt.stride - 16;
|
||||
//fb = fbtop + 2;
|
||||
fb += (gfx_ctxt.stride * 16) + 1;
|
||||
v = *cbuf;
|
||||
}
|
||||
cbuf++;
|
||||
}
|
||||
/*
|
||||
gfx_con.x += 16;
|
||||
if (gfx_con.x >= gfx_ctxt.width - 16) {
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y += 16;
|
||||
}
|
||||
*/
|
||||
gfx_con.y -= 16;
|
||||
if (gfx_con.y < 16){
|
||||
gfx_con.y = YLEFT;
|
||||
gfx_con.x += 16;
|
||||
}
|
||||
}
|
||||
else if (c == '\n')
|
||||
{
|
||||
gfx_con.y = YLEFT;
|
||||
gfx_con.x += 16;
|
||||
if (gfx_con.x > gfx_ctxt.width - 16)
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y +=16;
|
||||
if (gfx_con.y > gfx_ctxt.height - 16)
|
||||
gfx_con.y = 0;
|
||||
}
|
||||
else if (c == '\e')
|
||||
gfx_con.x = 672;
|
||||
gfx_con.y = 607;
|
||||
else if (c == '\a')
|
||||
gfx_con.x = 608;
|
||||
gfx_con.y = 671;
|
||||
else if (c == '\r')
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y = YLEFT;
|
||||
|
||||
break;
|
||||
case 8:
|
||||
|
@ -252,29 +261,31 @@ void gfx_putc(char c)
|
|||
else if (gfx_con.fillbg)
|
||||
*fb = gfx_con.bgcol;
|
||||
v >>= 1;
|
||||
fb++;
|
||||
fb -= gfx_ctxt.stride;
|
||||
}
|
||||
fb += gfx_ctxt.stride - 8;
|
||||
fb += (gfx_ctxt.stride * 8) + 1;
|
||||
}
|
||||
|
||||
gfx_con.y -= 8;
|
||||
if (gfx_con.y < 8){
|
||||
gfx_con.y = YLEFT;
|
||||
gfx_con.x += 8;
|
||||
if (gfx_con.x >= gfx_ctxt.width - 8) {
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y += 8;
|
||||
}
|
||||
|
||||
}
|
||||
else if (c == '\n')
|
||||
{
|
||||
gfx_con.y = YLEFT;
|
||||
gfx_con.x += 8;
|
||||
if (gfx_con.x > gfx_ctxt.width - 8)
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y += 8;
|
||||
if (gfx_con.y > gfx_ctxt.height - 8)
|
||||
gfx_con.y = 0;
|
||||
}
|
||||
else if (c == '\e')
|
||||
gfx_con.x = 672;
|
||||
gfx_con.y = 607;
|
||||
else if (c == '\a')
|
||||
gfx_con.x = 608;
|
||||
gfx_con.y = 671;
|
||||
else if (c == '\r')
|
||||
gfx_con.x = 0;
|
||||
gfx_con.y = YLEFT;
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -520,19 +531,33 @@ void gfx_set_rect_grey(const u8 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos
|
|||
}
|
||||
|
||||
void gfx_boxGrey(int x0, int y0, int x1, int y1, u8 shade){
|
||||
for (int y = (YLEFT - x0); y >= (YLEFT - x1); y--){
|
||||
memset(gfx_ctxt.fb + y * gfx_ctxt.stride + y0, shade, (y1 - y0 + 1) * 4);
|
||||
}
|
||||
}
|
||||
/*
|
||||
void gfx_boxGrey_old(int x0, int y0, int x1, int y1, u8 shade){
|
||||
for (int y = y0; y <= y1; y++){
|
||||
memset(gfx_ctxt.fb + y * gfx_ctxt.stride + x0, shade, (x1 - x0) * 4);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
void gfx_box(int x0, int y0, int x1, int y1, u32 color){
|
||||
for (int y = (YLEFT - x0); y >= (YLEFT - x1); y--){
|
||||
for (int x = y0; x <= y1; x++){
|
||||
gfx_set_pixel(x, y, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
void gfx_box_old(int x0, int y0, int x1, int y1, u32 color){
|
||||
for (int x = x0; x < x1 + 1; x++){
|
||||
for (int y = y0; y < y1 + 1; y++){
|
||||
gfx_set_pixel(x, y, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
void gfx_set_rect_rgb(const u8 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y)
|
||||
{
|
||||
u32 pos = 0;
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#define WPRINTF(text) gfx_printf("%k"text"%k\n", 0xFFFFDD00, 0xFFCCCCCC)
|
||||
#define WPRINTFARGS(text, args...) gfx_printf("%k"text"%k\n", 0xFFFFDD00, args, 0xFFCCCCCC)
|
||||
|
||||
#define YLEFT 1279
|
||||
|
||||
void gfx_init_ctxt(u32 *fb, u32 width, u32 height, u32 stride);
|
||||
void gfx_clear_grey(u8 color);
|
||||
void gfx_clear_partial_grey(u8 color, u32 pos_x, u32 height);
|
||||
|
@ -52,6 +54,12 @@ void gfx_render_bmp_argb(const u32 *buf, u32 size_x, u32 size_y, u32 pos_x, u32
|
|||
void gfx_box(int x0, int y0, int x1, int y1, u32 color);
|
||||
void gfx_boxGrey(int x0, int y0, int x1, int y1, u8 shade);
|
||||
|
||||
/*
|
||||
#define GFX_SETPOSCORRECTED(x, y) gfx_con_setpos(y - YLEFT, x)
|
||||
#define GFX_BOXCORRECTED(x0, y0, x1, y1, color) gfx_box_old((y0 - YLEFT), x0, (y1 - YLEFT), x1, color)
|
||||
#define GFX_BOXGREYCORRECTED(x0, y0, x1, y1, shade) gfx_boxGrey((y0 - YLEFT), x0, (y1 - YLEFT), x1, shade)
|
||||
*/
|
||||
|
||||
// Global gfx console and context.
|
||||
gfx_ctxt_t gfx_ctxt;
|
||||
gfx_con_t gfx_con;
|
||||
|
|
|
@ -19,11 +19,11 @@ void gfx_clearscreen(){
|
|||
SWAPCOLOR(COLOR_DEFAULT);
|
||||
SWAPBGCOLOR(COLOR_WHITE);
|
||||
|
||||
gfx_box(0, 1263, 719, 1279, COLOR_WHITE);
|
||||
gfx_con_setpos(0, 1263);
|
||||
gfx_boxGrey(0, 703, 1279, 719, 0xFF);
|
||||
gfx_con_setpos(0, 703);
|
||||
gfx_printf("Move: Vol+/- | Select: Pow | Battery: %3d%%", battery >> 8);
|
||||
|
||||
gfx_box(0, 0, 719, 15, COLOR_WHITE);
|
||||
gfx_boxGrey(0, 0, 1279, 15, 0xFF);
|
||||
gfx_con_setpos(0, 0);
|
||||
gfx_printf("Tegraexplorer v1.5.2\n");
|
||||
|
||||
|
@ -121,7 +121,7 @@ void gfx_printandclear(char *in, int length){
|
|||
gfx_printf(" ");
|
||||
*/
|
||||
|
||||
gfx_boxGrey(x, y, 703, y + 16, 0x1B);
|
||||
gfx_boxGrey(x, y, 687, y + 15, 0x1B);
|
||||
|
||||
gfx_con_setpos(x, y);
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ void _printentry(menu_entry entry, bool highlighted, bool refresh){
|
|||
}
|
||||
|
||||
int menu_make(menu_entry *entries, int amount, char *toptext){
|
||||
int currentpos = 0, res = 0, offset = 0, delay = 300, minscreen = 0, maxscreen = 59, calculatedamount = 0;
|
||||
int currentpos = 0, res = 0, offset = 0, delay = 300, minscreen = 0, maxscreen = 29, calculatedamount = 0;
|
||||
u32 scrolltimer, timer;
|
||||
bool refresh = false;
|
||||
|
||||
|
@ -71,7 +71,7 @@ int menu_make(menu_entry *entries, int amount, char *toptext){
|
|||
if (!(entries[i].property & ISMENU))
|
||||
calculatedamount++;
|
||||
|
||||
gfx_con_setpos(512, 0);
|
||||
gfx_con_setpos(1071, 0);
|
||||
if (calculatedamount){
|
||||
SWAPCOLOR(COLOR_DEFAULT);
|
||||
SWAPBGCOLOR(COLOR_WHITE);
|
||||
|
@ -113,11 +113,11 @@ int menu_make(menu_entry *entries, int amount, char *toptext){
|
|||
refresh = true;
|
||||
}
|
||||
|
||||
for (int i = 0 + offset; i < amount && i < 60 + offset; i++)
|
||||
for (int i = 0 + offset; i < amount && i < 30 + offset; i++)
|
||||
if (!(entries[i].property & ISHIDE))
|
||||
_printentry(entries[i], (i == currentpos), refresh);
|
||||
|
||||
gfx_printf("\n%k%K %s %s\n\nTime taken for screen draw: %dms", COLOR_BLUE, COLOR_DEFAULT, (offset + 60 < amount) ? "v" : " ", (offset > 0) ? "^" : " ", get_tmr_ms() - timer);
|
||||
gfx_printf("\n%k%K %s %s\n\nTime taken for screen draw: %dms ", COLOR_BLUE, COLOR_DEFAULT, (offset + 30 < amount) ? "v" : " ", (offset > 0) ? "^" : " ", get_tmr_ms() - timer);
|
||||
|
||||
while (btn_read() & BTN_POWER);
|
||||
|
||||
|
|
Loading…
Reference in a new issue