reader_mmi_dev.c.svn-base
上传用户:holyzs
上传日期:2022-06-29
资源大小:2335k
文件大小:2k
源码类别:

编辑器/阅读器

开发平台:

C/C++

  1. #include <reader_core.h>
  2. #include <windows.h>
  3. #include <assert.h>
  4. color_t reader_text_color;
  5. color_t reader_bg_color;
  6. #ifdef USE_DOUBLE_FRAME_BUFFER
  7. color_t vram_double[2][READER_SCREEN_HEIGHT][READER_SCREEN_HEIGHT]; //use the big square to fit for both looking
  8. #endif
  9. void reader_setpixel(screen_t screen, int x, int y, color_t color) {
  10.   assert(x >= 0 && x < READER_SCREEN_WIDTH && y >= 0 && y < READER_SCREEN_HEIGHT);
  11. #ifdef USE_DOUBLE_FRAME_BUFFER
  12. #ifdef NDS_LOOK_FEEL
  13.   {
  14.   int y1 = READER_SCREEN_HEIGHT - 1 - y;
  15.   assert(x >= 0 && x < READER_SCREEN_WIDTH && y1 >= 0 && y1 < READER_SCREEN_HEIGHT);
  16.   vram_double[screen][x][y1] = color;
  17.   }
  18. #else
  19.   vram_double[screen][y][x] = color;
  20. #endif
  21. #else
  22.   sim_setpixel(screen, x, y, color);
  23. #endif
  24. }
  25. void fill_screen(screen_t screen, color_t color) {
  26. #ifdef USE_DOUBLE_FRAME_BUFFER
  27.   int i;
  28.   for (i = 0; i < READER_SCREEN_HEIGHT*READER_SCREEN_HEIGHT; i++) {
  29.     *((color_t *)vram_double[screen]+i) = color;
  30.   }
  31. #else
  32.   int x, y;
  33.   for (x = 0; x < READER_SCREEN_WIDTH; x ++) {
  34.     for (y = 0; y < READER_SCREEN_HEIGHT; y ++) {
  35.       reader_setpixel(screen, x, y, color);
  36.     }
  37.   }
  38. #endif
  39. }
  40. void fill_screen_bitmap(screen_t screen, color_t *bmpbuf) {
  41.   int x, y;
  42.   int i = 0;
  43. #ifdef USE_DOUBLE_FRAME_BUFFER
  44. #ifndef NDS_LOOK_FEEL
  45.   for (x = 0; x < READER_SCREEN_WIDTH; x ++) {
  46.     for (y = READER_SCREEN_HEIGHT-1; y > -1; y --) {    
  47.       vram_double[screen][y][x] = bmpbuf[i++];
  48.     }
  49.   }
  50. #endif
  51. #endif
  52. }
  53. #ifdef USE_DOUBLE_FRAME_BUFFER
  54. void trigger_screen_update(screen_t screen) {
  55.   int x, y;
  56. #ifdef NDS_LOOK_FEEL
  57.   for (y = 0; y < READER_SCREEN_WIDTH; y ++) {
  58.     for (x = 0; x < READER_SCREEN_HEIGHT; x += 2) {
  59.       sim_setpixel2(screen, x, y, vram_double[screen][y][x], vram_double[screen][y][x+1]);
  60.     }
  61.   }
  62. #else
  63.   for (y = 0; y < READER_SCREEN_HEIGHT; y ++) {
  64.     for (x = 0; x < READER_SCREEN_WIDTH; x += 2) {
  65.       sim_setpixel2(screen, x, y, vram_double[screen][y][x], vram_double[screen][y][x+1]);
  66.     }
  67.   }
  68. #endif
  69. }
  70. #endif