extra.h
上传用户:qddsws
上传日期:2022-06-22
资源大小:723k
文件大小:3k
源码类别:

操作系统开发

开发平台:

C/C++

  1. #ifndef EXTRA_H
  2. #define EXTRA_H
  3. #include <i386/extern.h>
  4. #include <isa.h>
  5. #include <list.h>
  6. #define SCREEN_WIDTH 800
  7. #define SCREEN_HEIGHT 600
  8. #define SCREEN_BPP 2  // byte per pixel
  9. #define ALPHA_COLOR 0xffdf
  10. #define MAX_PLANES 100
  11. #define MOUSE_PLANE 0
  12. #define LR_SHADE 0 // Left to  Right Shade
  13. #define TD_SHADE 1 // Top to Down Shade
  14. struct mouse_event {
  15. struct list_node_head list;
  16. int but;
  17. int x1rel;
  18. int y1rel;
  19. int x2rel;
  20. int y2rel;
  21. int kbd_event;
  22. int repetitive_event;
  23. //void (*function) (struct Window* win);
  24. void (*function) ();
  25. };
  26. struct Window {
  27. int drag;
  28. unsigned short* selfcopy;
  29. int cursorx;
  30. int cursory;
  31. int finalx;
  32. int initialx;
  33. int created;
  34. char* id;
  35. int x;
  36. int y;
  37. int plane;
  38. int sizex;
  39. int sizey;
  40. int userwrite;
  41. int text_win;
  42. int bkgcolor;
  43. int mousex, mousey;
  44. unsigned short* icon;
  45. int iconx, icony;
  46. struct list_node_head list;
  47. struct mouse_event events;
  48. void (*create_function) (struct Window* win);
  49. void (*repaint_function) (struct Window* win);
  50. };
  51. void print_shade_plane(int x1, int y1, int x2, int y2, int dir, int plane) ;
  52. void init_windows () ;
  53. void draw_erase_function (struct Window* win) ;
  54. void draw_function (struct Window* win) ;
  55. void draw_init_function (struct Window* win) ;
  56. void pong_repetitive_function (struct Window* win ) ;
  57. void pong_key_function ( struct Window* win ) ;
  58. void pong_init_function (struct Window* win) ;
  59. void gnu_init_function (struct Window* win) ;
  60. void notepad_key_function ( struct Window* win ) ;
  61. void notepad_init_function (struct Window* win) ;
  62. void memory_init_function (struct Window* win) ;
  63. void move_self_window( struct Window* win) ;
  64. void copy_region_plane( unsigned short* area, int x1, int y1, int x2, int y2, int plane) ;
  65. void set_self_focus( struct Window* win) ;
  66. void delete_self_window( struct Window* win) ;
  67. void create_window (char* id, int x, int y, int sizex, int sizey, int bkgcolor, int plane, void (*start_function) (struct Window* win) ) ;
  68. void mouse_event (int x, int y, int but) ;
  69. void fade_plane(float factor, int plane_id) ;
  70. void halt_computer() ;
  71. int plane_from_pixel (int x, int y) ;
  72. void init_planes () ;
  73. void delete_plane (int id) ;
  74. void insert_plane ( int id ) ;
  75. void create_plane ( int id ) ;
  76. void print_composed_plane_region (int x1, int y1, int x2, int y2) ;
  77. void print_composed_plane () ;
  78. void print_mouse_plane (int x, int y,int plane) ;
  79. void print_bmp_alpha_plane (int x, int y, unsigned short* data,unsigned short alpha,int plane) ;
  80. void print_bmp_plane (int x, int y, unsigned short* data,unsigned short alpha,int plane) ;
  81. void set_background_plane (unsigned short color, int plane_id) ;
  82. void paint_trans_rectangle_plane (int x1, int y1, int x2, int y2, unsigned short color,int plane) ;
  83. void paint_rectangle_plane (int x1, int y1, int x2, int y2, unsigned short color,int plane) ;
  84. void start_presentacio() ;
  85. void kprint_plane( char * str , int plane) ;
  86. void xyprint_plane ( int x, int y, char* string, int plane) ;
  87. void print_bcd_bmp_plane (int x, int y, int number, int digits,int plane) ;
  88. int pow ( int x, int y) ;
  89. void circle_fast_plane(int x,int y, int radius, unsigned short color,int plane);
  90. void circle_fill_plane(int x,int y, int radius, unsigned short color,int plane);
  91. void circle_fill_plane_alpha(int x,int y, int radius, unsigned short color,int plane, float factor);
  92. #endif