main.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "u8x8.h"
  2. u8x8_t u8x8;
  3. void show(uint8_t *buf)
  4. {
  5. uint8_t i, j;
  6. for( i = 0; i < 8; i++ )
  7. {
  8. printf("%02x ", buf[i]);
  9. for( j = 0; j < 8; j++ )
  10. {
  11. if ( buf[i] & (1<<(7-j)) )
  12. printf("*");
  13. else
  14. printf(".");
  15. }
  16. printf("\n");
  17. }
  18. }
  19. /*
  20. static uint8_t *rotate270(uint8_t *buf)
  21. {
  22. static uint8_t rbuf[8];
  23. uint8_t i, h;
  24. uint8_t *p;
  25. for( i = 0; i < 8; i++)
  26. rbuf[i] = 0;
  27. for( i = 0; i < 8; i++ )
  28. {
  29. h = buf[i];
  30. p = rbuf;
  31. *p<<=1; *p |= (h&1); h >>= 1; p++;
  32. *p<<=1; *p |= (h&1); h >>= 1; p++;
  33. *p<<=1; *p |= (h&1); h >>= 1; p++;
  34. *p<<=1; *p |= (h&1); h >>= 1; p++;
  35. *p<<=1; *p |= (h&1); h >>= 1; p++;
  36. *p<<=1; *p |= (h&1); h >>= 1; p++;
  37. *p<<=1; *p |= (h&1); h >>= 1; p++;
  38. *p<<=1; *p |= (h&1); h >>= 1; p++;
  39. }
  40. return rbuf;
  41. }
  42. */
  43. static uint8_t *rotate90(uint8_t *buf)
  44. {
  45. static uint8_t rbuf[8];
  46. uint8_t i, h;
  47. uint8_t *p;
  48. uint8_t j;
  49. for( i = 0; i < 8; i++)
  50. rbuf[i] = 0;
  51. for( i = 0; i < 8; i++ )
  52. {
  53. h = buf[i];
  54. p = rbuf;
  55. *p>>=1; *p |= (h&128); h <<= 1; p++;
  56. *p>>=1; *p |= (h&128); h <<= 1; p++;
  57. *p>>=1; *p |= (h&128); h <<= 1; p++;
  58. *p>>=1; *p |= (h&128); h <<= 1; p++;
  59. *p>>=1; *p |= (h&128); h <<= 1; p++;
  60. *p>>=1; *p |= (h&128); h <<= 1; p++;
  61. *p>>=1; *p |= (h&128); h <<= 1; p++;
  62. *p>>=1; *p |= (h&128); h <<= 1; p++;
  63. }
  64. return rbuf;
  65. }
  66. void u8x8_draw_glyph_90(u8x8_t *u8x8, uint8_t x, uint8_t y, uint8_t encoding)
  67. {
  68. static uint8_t buf[8];
  69. u8x8_get_glyph_data(u8x8, encoding, buf, 0);
  70. u8x8_DrawTile(u8x8, x, y, 1, rotate90(buf));
  71. }
  72. void u8x8_draw_string_90(u8x8_t *u8x8, uint8_t x, uint8_t y, const char *s)
  73. {
  74. while(*s != '\0')
  75. u8x8_draw_glyph_90(u8x8, x, y++, *s++);
  76. }
  77. int main(void)
  78. {
  79. u8x8_Setup_SDL_128x64(&u8x8);
  80. u8x8_InitDisplay(&u8x8);
  81. u8x8_SetFont(&u8x8, u8x8_font_victoriabold8_r);
  82. u8x8_DrawString(&u8x8, 1, 1, "Abcd");
  83. u8x8_draw_string_90(&u8x8, 1,2, "Abcd");
  84. //u8x8_draw_glyph_90(&u8x8, 1, 4, 'B');
  85. while( u8g_sdl_get_key() < 0 )
  86. ;
  87. return 0;
  88. }