1
0
Fork 0
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:
Such Meme, Many Skill 2020-04-30 23:40:26 +02:00
parent 931cbc829f
commit 305c372d8c
4 changed files with 73 additions and 40 deletions

View file

@ -165,14 +165,14 @@ void gfx_con_setcol(u32 fgcol, int fillbg, u32 bgcol)
void gfx_con_getpos(u32 *x, u32 *y) void gfx_con_getpos(u32 *x, u32 *y)
{ {
*x = gfx_con.x; *x = YLEFT - gfx_con.y;
*y = gfx_con.y; *y = gfx_con.x;
} }
void gfx_con_setpos(u32 x, u32 y) void gfx_con_setpos(u32 x, u32 y)
{ {
gfx_con.x = x; gfx_con.x = y;
gfx_con.y = y; gfx_con.y = YLEFT - x;
} }
void gfx_putc(char c) void gfx_putc(char c)
@ -196,44 +196,53 @@ void gfx_putc(char c)
if (v & 1) if (v & 1)
{ {
*fb = gfx_con.fgcol; *fb = gfx_con.fgcol;
fb++; fb -= gfx_ctxt.stride;
*fb = gfx_con.fgcol; *fb = gfx_con.fgcol;
} }
else if (gfx_con.fillbg) else if (gfx_con.fillbg)
{ {
*fb = gfx_con.bgcol; *fb = gfx_con.bgcol;
fb++; fb -= gfx_ctxt.stride;
*fb = gfx_con.bgcol; *fb = gfx_con.bgcol;
} }
else else
fb++; fb -= gfx_ctxt.stride;
v >>= 1; 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; v = *cbuf;
} }
cbuf++; cbuf++;
} }
/*
gfx_con.x += 16; gfx_con.x += 16;
if (gfx_con.x >= gfx_ctxt.width - 16) { if (gfx_con.x >= gfx_ctxt.width - 16) {
gfx_con.x = 0; gfx_con.x = 0;
gfx_con.y += 16; 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') else if (c == '\n')
{ {
gfx_con.x = 0; gfx_con.y = YLEFT;
gfx_con.y +=16; gfx_con.x += 16;
if (gfx_con.y > gfx_ctxt.height - 16) if (gfx_con.x > gfx_ctxt.width - 16)
gfx_con.y = 0; gfx_con.x = 0;
} }
else if (c == '\e') else if (c == '\e')
gfx_con.x = 672; gfx_con.y = 607;
else if (c == '\a') else if (c == '\a')
gfx_con.x = 608; gfx_con.y = 671;
else if (c == '\r') else if (c == '\r')
gfx_con.x = 0; gfx_con.y = YLEFT;
break; break;
case 8: case 8:
@ -252,29 +261,31 @@ void gfx_putc(char c)
else if (gfx_con.fillbg) else if (gfx_con.fillbg)
*fb = gfx_con.bgcol; *fb = gfx_con.bgcol;
v >>= 1; v >>= 1;
fb++; fb -= gfx_ctxt.stride;
} }
fb += gfx_ctxt.stride - 8; fb += (gfx_ctxt.stride * 8) + 1;
} }
gfx_con.x += 8;
if (gfx_con.x >= gfx_ctxt.width - 8) { gfx_con.y -= 8;
gfx_con.x = 0; if (gfx_con.y < 8){
gfx_con.y += 8; gfx_con.y = YLEFT;
gfx_con.x += 8;
} }
} }
else if (c == '\n') else if (c == '\n')
{ {
gfx_con.x = 0; gfx_con.y = YLEFT;
gfx_con.y += 8; gfx_con.x += 8;
if (gfx_con.y > gfx_ctxt.height - 8) if (gfx_con.x > gfx_ctxt.width - 8)
gfx_con.y = 0; gfx_con.x = 0;
} }
else if (c == '\e') else if (c == '\e')
gfx_con.x = 672; gfx_con.y = 607;
else if (c == '\a') else if (c == '\a')
gfx_con.x = 608; gfx_con.y = 671;
else if (c == '\r') else if (c == '\r')
gfx_con.x = 0; gfx_con.y = YLEFT;
break; 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){ 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++){ for (int y = y0; y <= y1; y++){
memset(gfx_ctxt.fb + y * gfx_ctxt.stride + x0, shade, (x1 - x0) * 4); 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){ 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 x = x0; x < x1 + 1; x++){
for (int y = y0; y < y1 + 1; y++){ for (int y = y0; y < y1 + 1; y++){
gfx_set_pixel(x, y, color); 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) void gfx_set_rect_rgb(const u8 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y)
{ {
u32 pos = 0; u32 pos = 0;

View file

@ -27,6 +27,8 @@
#define WPRINTF(text) gfx_printf("%k"text"%k\n", 0xFFFFDD00, 0xFFCCCCCC) #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 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_init_ctxt(u32 *fb, u32 width, u32 height, u32 stride);
void gfx_clear_grey(u8 color); void gfx_clear_grey(u8 color);
void gfx_clear_partial_grey(u8 color, u32 pos_x, u32 height); 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_box(int x0, int y0, int x1, int y1, u32 color);
void gfx_boxGrey(int x0, int y0, int x1, int y1, u8 shade); 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. // Global gfx console and context.
gfx_ctxt_t gfx_ctxt; gfx_ctxt_t gfx_ctxt;
gfx_con_t gfx_con; gfx_con_t gfx_con;

View file

@ -19,11 +19,11 @@ void gfx_clearscreen(){
SWAPCOLOR(COLOR_DEFAULT); SWAPCOLOR(COLOR_DEFAULT);
SWAPBGCOLOR(COLOR_WHITE); SWAPBGCOLOR(COLOR_WHITE);
gfx_box(0, 1263, 719, 1279, COLOR_WHITE); gfx_boxGrey(0, 703, 1279, 719, 0xFF);
gfx_con_setpos(0, 1263); gfx_con_setpos(0, 703);
gfx_printf("Move: Vol+/- | Select: Pow | Battery: %3d%%", battery >> 8); 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_con_setpos(0, 0);
gfx_printf("Tegraexplorer v1.5.2\n"); gfx_printf("Tegraexplorer v1.5.2\n");
@ -121,7 +121,7 @@ void gfx_printandclear(char *in, int length){
gfx_printf(" "); gfx_printf(" ");
*/ */
gfx_boxGrey(x, y, 703, y + 16, 0x1B); gfx_boxGrey(x, y, 687, y + 15, 0x1B);
gfx_con_setpos(x, y); gfx_con_setpos(x, y);

View file

@ -61,7 +61,7 @@ void _printentry(menu_entry entry, bool highlighted, bool refresh){
} }
int menu_make(menu_entry *entries, int amount, char *toptext){ 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; u32 scrolltimer, timer;
bool refresh = false; bool refresh = false;
@ -71,7 +71,7 @@ int menu_make(menu_entry *entries, int amount, char *toptext){
if (!(entries[i].property & ISMENU)) if (!(entries[i].property & ISMENU))
calculatedamount++; calculatedamount++;
gfx_con_setpos(512, 0); gfx_con_setpos(1071, 0);
if (calculatedamount){ if (calculatedamount){
SWAPCOLOR(COLOR_DEFAULT); SWAPCOLOR(COLOR_DEFAULT);
SWAPBGCOLOR(COLOR_WHITE); SWAPBGCOLOR(COLOR_WHITE);
@ -113,11 +113,11 @@ int menu_make(menu_entry *entries, int amount, char *toptext){
refresh = true; 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)) if (!(entries[i].property & ISHIDE))
_printentry(entries[i], (i == currentpos), refresh); _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); while (btn_read() & BTN_POWER);