static int lu8g_generic_drawStr( lua_State *L, uint8_t rot ) { lu8g_userdata_t *lud; if ((lud = get_lud( L )) == NULL) return 0; u8g_uint_t args[2]; lu8g_get_int_args( L, 2, 2, args ); const char *s = luaL_checkstring( L, (1+2) + 1 ); if (s == NULL) return 0; switch (rot) { case 1: lua_pushinteger( L, u8g_DrawStr90( LU8G, args[0], args[1], s ) ); break; case 2: lua_pushinteger( L, u8g_DrawStr180( LU8G, args[0], args[1], s ) ); break; case 3: lua_pushinteger( L, u8g_DrawStr270( LU8G, args[0], args[1], s ) ); break; default: lua_pushinteger( L, u8g_DrawStr( LU8G, args[0], args[1], s ) ); break; } return 1; }
int main(void) { u8g_uint_t w,h; u8g_t u8g; u8g_Init(&u8g, &u8g_dev_sdl_1bit); u8g_SetCursorFont(&u8g, u8g_font_cursor); u8g_SetCursorStyle(&u8g, 34); u8g_SetCursorColor(&u8g, 1, 0); u8g_EnableCursor(&u8g); for(;;) { u8g_FirstPage(&u8g); do { u8g_SetColorIndex(&u8g, 1); u8g_SetFont(&u8g, u8g_font_10x20); //u8g_SetFont(&u8g, u8g_font_fur17); w = u8g_GetFontBBXWidth(&u8g); h = u8g_GetFontBBXHeight(&u8g); //u8g_DrawStr(&u8g, 0, 2*h, 0, "ABCgdef"); u8g_DrawStrDir(&u8g, 0, 5, 0, "g"); u8g_DrawStrDir(&u8g, 10, 7, 0, "g"); u8g_DrawStrDir(&u8g, 20, 9, 0, "g"); u8g_DrawStrDir(&u8g, 20, 9, 0, "ga"); //u8g_DrawStr(&u8g, 40, 9, 0, "g"); u8g_DrawStr(&u8g, 70+3, 25, "gabc"); u8g_DrawStr90(&u8g, 70, 25+3, "gabc"); u8g_DrawStr180(&u8g, 70-3, 25, "gabc"); u8g_DrawStr270(&u8g, 70, 25-3, "gabc"); //u8g_DrawFrame(&u8g, 2, 2, 9, 3); //u8g_DrawFrame(&u8g, 0, 0, 13, 7); //u8g_DrawHLine( &u8g, 0, 16, 50 ); u8g_SetColorIndex(&u8g, 1); u8g_DrawHLine( &u8g, 0, 3, 127 ); u8g_SetColorIndex(&u8g, 0); u8g_DrawHLine( &u8g, 0, 4, 127 ); }while( u8g_NextPage(&u8g) ); while( uiStep(&u8g) == 0 ) ; printf("%d %d\n", cursor_x, cursor_y); u8g_SetCursorPos(&u8g, cursor_x, cursor_y); } return 0; }
u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) { switch(dir) { case 0: return u8g_DrawStr(u8g, x, y, s); case 1: return u8g_DrawStr90(u8g, x, y, s); case 2: return u8g_DrawStr180(u8g, x, y, s); case 3: return u8g_DrawStr270(u8g, x, y, s); } return 0; }
int xmain(void) { u8g_uint_t w,h; u8g_t u8g; u8g_Init(&u8g, &u8g_dev_sdl_1bit); u8g_FirstPage(&u8g); u8g_SetCursorFont(&u8g, u8g_font_cursor); do { u8g_SetColorIndex(&u8g, 1); u8g_SetFont(&u8g, u8g_font_9x18); //u8g_SetFont(&u8g, u8g_font_fur17); w = u8g_GetFontBBXWidth(&u8g); h = u8g_GetFontBBXHeight(&u8g); //u8g_DrawStr(&u8g, 0, 2*h, 0, "ABCgdef"); u8g_DrawStrDir(&u8g, 0, 5, 0, "g"); u8g_DrawStrDir(&u8g, 10, 7, 0, "g"); u8g_DrawStrDir(&u8g, 20, 9, 0, "g"); u8g_DrawStrDir(&u8g, 20, 9, 0, "ga"); //u8g_DrawStr(&u8g, 40, 9, 0, "g"); u8g_DrawStr(&u8g, 70+3, 25, "gabc"); u8g_DrawStr90(&u8g, 70, 25+3, "gabc"); u8g_DrawStr180(&u8g, 70-3, 25, "gabc"); u8g_DrawStr270(&u8g, 70, 25-3, "gabc"); //u8g_DrawFrame(&u8g, 2, 2, 9, 3); //u8g_DrawFrame(&u8g, 0, 0, 13, 7); //u8g_DrawHLine( &u8g, 0, 16, 50 ); u8g_SetColorIndex(&u8g, 1); u8g_DrawHLine( &u8g, 0, 3, 127 ); u8g_SetColorIndex(&u8g, 0); u8g_DrawHLine( &u8g, 0, 4, 127 ); }while( u8g_NextPage(&u8g) ); while( u8g_sdl_get_key() < 0 ) ; return 0; }
void u8g_string(uint8_t a) { u8g_DrawStr(&u8g, 30+a,31, " 0"); u8g_DrawStr90(&u8g, 30,31+a, " 90"); u8g_DrawStr180(&u8g, 30-a,31, " 180"); u8g_DrawStr270(&u8g, 30,31-a, " 270"); }