main.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "u8g2.h"
  2. #include <stdio.h>
  3. u8g2_t u8g2;
  4. const uint16_t my_kerning_table[] =
  5. {
  6. /* first char, second char, gap reduction value */
  7. 0x646, 0x627, 4, /* ن and ا */
  8. 0x627, 0x647, 5, /* ا and ه */
  9. 0x647, 0x62C, 6, /* ه and ج */
  10. 0x645, 0x627, 3, /* م and ا */
  11. 0x627, 0x644, 4, /* ا and ل */
  12. 0x644, 0x633, 2, /* ل and س */
  13. /* this line terminates the table */
  14. 0xffff, 0xffff, 0xffff
  15. };
  16. int main(void)
  17. {
  18. int x, y;
  19. int k;
  20. int i;
  21. u8g2_SetupBuffer_SDL_128x64_4(&u8g2, &u8g2_cb_r0);
  22. u8x8_InitDisplay(u8g2_GetU8x8(&u8g2));
  23. u8x8_SetPowerSave(u8g2_GetU8x8(&u8g2), 0);
  24. //u8g2_SetFont(&u8g2, u8g2_font_helvB18_tr);
  25. x = 50;
  26. y = 30;
  27. for(;;)
  28. {
  29. #ifdef U8G2_WITH_HVLINE_COUNT
  30. u8g2.hv_cnt = 0UL;
  31. #endif /* U8G2_WITH_HVLINE_COUNT */
  32. /*
  33. u8g2_ClearBuffer(&u8g2);
  34. u8g2_SetFontDirection(&u8g2, 0);
  35. u8g2_DrawStr(&u8g2, x, y, "ABC");
  36. u8g2_SetFontDirection(&u8g2, 1);
  37. u8g2_DrawStr(&u8g2, x, y, "abc");
  38. u8g2_SetFontDirection(&u8g2, 2);
  39. u8g2_DrawStr(&u8g2, x, y, "abc");
  40. u8g2_SetFontDirection(&u8g2, 3);
  41. u8g2_DrawStr(&u8g2, x, y, "abc");
  42. u8g2_SendBuffer(&u8g2);
  43. */
  44. //u8g2_SetFont(&u8g2, u8g2_font_cu12_t_arabic);
  45. u8g2_SetFont(&u8g2, u8g2_font_unifont_t_arabic);
  46. u8g2_FirstPage(&u8g2);
  47. i = 0;
  48. do
  49. {
  50. u8g2_SetFontDirection(&u8g2, 0);
  51. u8g2_DrawExtUTF8(&u8g2, x, y, 1, NULL, "سلام جهان");
  52. u8g2_DrawExtUTF8(&u8g2, x, y+20, 1, my_kerning_table, "سلام جهان");
  53. i++;
  54. } while( u8g2_NextPage(&u8g2) );
  55. #ifdef U8G2_WITH_HVLINE_COUNT
  56. printf("hv cnt: %ld\n", u8g2.hv_cnt);
  57. #endif /* U8G2_WITH_HVLINE_COUNT */
  58. do
  59. {
  60. k = u8g_sdl_get_key();
  61. } while( k < 0 );
  62. if ( k == 273 ) y -= 7;
  63. if ( k == 274 ) y += 7;
  64. if ( k == 276 ) x -= 7;
  65. if ( k == 275 ) x += 7;
  66. if ( k == 'e' ) y -= 1;
  67. if ( k == 'x' ) y += 1;
  68. if ( k == 's' ) x -= 1;
  69. if ( k == 'd' ) x += 1;
  70. if ( k == 'q' ) break;
  71. }
  72. //u8x8_Set8x8Font(u8g2_GetU8x8(&u8g2), bdf_font);
  73. //u8x8_Draw8x8String(u8g2_GetU8x8(&u8g2), 0, 0, "Hello World!");
  74. return 0;
  75. }