00001
00034 #ifndef BX_H___
00035 #define BX_H___
00036
00037 #include "myx.h"
00038
00039
00040
00041
00042
00043
00044
00045
00050 typedef struct bx_image { MyX_Sprite * stuff; } bx_image;
00051
00056 typedef struct bx_color { unsigned long pixel; } bx_color;
00057
00062 typedef struct bx_key { unsigned char bits [32]; } bx_key;
00063
00064 typedef struct bx_window_stuff bx_window_stuff;
00065
00070 typedef struct bx_window { bx_window_stuff * stuff; } bx_window;
00071
00076 typedef struct bx_dir_stuff bx_dir_stuff;
00077 typedef struct bx_dir { bx_dir_stuff * stuff; } bx_dir;
00078
00083 typedef struct bx_mouse {
00084
00085 Window root, child;
00086 int xAbs, yAbs;
00087 int xRel, yRel;
00088 int x , y;
00089 unsigned keyMask;
00090 } bx_mouse;
00091
00092
00093
00094
00095
00096
00097
00104 void bx_init (void);
00105 void bx_loop (void);
00106
00107 INLINE void bx_wait (unsigned long millisecs);
00108
00109 void bx_clean (void);
00110
00115
00116
00117
00118
00119
00126 bx_window bx_create_window (char name [], int x, int y,
00127 unsigned w, unsigned h);
00128
00129 void bx_destroy_window (bx_window window);
00130
00131 INLINE void bx_rename_window (bx_window window, char name []);
00132 INLINE void bx_resize_window (bx_window window, unsigned w, unsigned h);
00133 INLINE void bx_move_window (bx_window window, int x, int y);
00134
00135 INLINE int bx_window_x (bx_window window);
00136 INLINE int bx_window_y (bx_window window);
00137
00138 INLINE unsigned bx_window_width (bx_window window);
00139 INLINE unsigned bx_window_height (bx_window window);
00140
00141 INLINE char * bx_window_name (bx_window window);
00142
00143
00148
00149
00150
00151
00152
00189 INLINE bx_color bx_rgb_to_color (unsigned char r,
00190 unsigned char g,
00191 unsigned char b);
00192
00204 INLINE bx_color bx_mean_color (bx_color c1, bx_color c2);
00205
00222 INLINE bx_color bx_blend_color (bx_color c1, double alpha, bx_color c2);
00223
00228
00229
00230
00231
00232
00247 INLINE bx_color bx_white(void);
00248
00253 INLINE bx_color bx_black(void);
00254
00260 INLINE bx_color bx_gray (void);
00261
00267 INLINE bx_color bx_pale_gray(void);
00268
00274 INLINE bx_color bx_dark_gray(void);
00275
00289 INLINE bx_color bx_red (void);
00290
00294 INLINE bx_color bx_green (void);
00295
00299 INLINE bx_color bx_blue (void);
00300
00305 INLINE bx_color bx_pale_red (void);
00306
00311 INLINE bx_color bx_pale_green(void);
00312
00317 INLINE bx_color bx_pale_blue (void);
00318
00323 INLINE bx_color bx_dark_red (void);
00324
00325
00330 INLINE bx_color bx_dark_green(void);
00331
00332
00337 INLINE bx_color bx_dark_blue (void);
00338
00339
00356 INLINE bx_color bx_yellow (void);
00357
00362 INLINE bx_color bx_cyan (void);
00363
00368 INLINE bx_color bx_magenta (void);
00369
00374 INLINE bx_color bx_pale_yellow (void);
00375
00380 INLINE bx_color bx_pale_cyan (void);
00381
00386 INLINE bx_color bx_pale_magenta (void);
00387
00392 INLINE bx_color bx_dark_yellow (void);
00393
00398 INLINE bx_color bx_dark_cyan (void);
00399
00404 INLINE bx_color bx_dark_magenta (void);
00405
00425 INLINE bx_color bx_pink (void);
00426
00431 INLINE bx_color bx_orange (void);
00432
00437 INLINE bx_color bx_violet (void);
00438
00443 INLINE bx_color bx_azure (void);
00444
00449 INLINE bx_color bx_spring (void);
00450
00455 INLINE bx_color bx_lawn (void);
00456
00461 INLINE bx_color bx_pale_pink (void);
00462
00467 INLINE bx_color bx_pale_orange (void);
00468
00473 INLINE bx_color bx_pale_violet (void);
00474
00479 INLINE bx_color bx_pale_azure (void);
00480
00485 INLINE bx_color bx_pale_spring (void);
00486
00491 INLINE bx_color bx_pale_lawn (void);
00492
00497 INLINE bx_color bx_dark_pink (void);
00498
00503 INLINE bx_color bx_dark_orange (void);
00504
00509 INLINE bx_color bx_dark_violet (void);
00510
00515 INLINE bx_color bx_dark_azure (void);
00516
00521 INLINE bx_color bx_dark_spring (void);
00522
00527 INLINE bx_color bx_dark_lawn (void);
00528
00535
00536
00537
00538
00539
00554 INLINE void bx_set_color (bx_color color);
00555
00566 INLINE void bx_set_rgb (unsigned char r,
00567 unsigned char g,
00568 unsigned char b);
00569
00578 INLINE void bx_set_line_width (unsigned int size);
00579
00584
00585
00586
00587
00588
00594 INLINE int bx_canvas_x (bx_window win);
00595 INLINE int bx_canvas_y (bx_window win);
00596
00597 INLINE unsigned bx_canvas_width (bx_window win);
00598 INLINE unsigned bx_canvas_height (bx_window win);
00599
00600 INLINE void bx_clear_canvas (bx_window win, bx_color color);
00601 INLINE void bx_update_canvas (bx_window win);
00602 INLINE void bx_swap_canvas (bx_window win, unsigned long millisecs);
00603 INLINE void bx_show_canvas (bx_window win, unsigned long millisecs);
00604
00609
00610
00611
00612
00613
00636 INLINE void bx_draw_point(bx_window win, int x, int y);
00637
00654 INLINE void bx_draw_line(bx_window win, int x1, int y1, int x2, int y2);
00655
00675 INLINE void bx_draw_box (bx_window win, int x, int y,
00676 unsigned w, unsigned h, int filled);
00677
00697 INLINE void bx_draw_circle (bx_window win, int x, int y,
00698 unsigned w, unsigned h, int filled);
00699
00733 INLINE void bx_draw_arc (bx_window win, int x, int y,
00734 unsigned w, unsigned h,
00735 double angle, double dangle, int filled);
00736
00737
00744 INLINE void bx_draw_polygon (bx_window win, int n,
00745 int x [], int y [], int filled);
00746
00747 void bx_draw_bezier (bx_window window,
00748 int x0, int y0, int x1, int y1,
00749 int x2, int y2, int x3, int y3);
00750
00751 void bx_draw_curve (bx_window window, int n, int x [], int y []);
00752
00759 INLINE void bx_draw_text (bx_window win, int x, int y, char text []);
00760 INLINE void bx_draw_text_f (bx_window win, int x, int y, char format [], ...);
00761
00762
00763
00764
00765
00766
00774 INLINE bx_image bx_load_image (int opaque, char name []);
00775 INLINE bx_image bx_load_image_f (int opaque, char name [], ...);
00776
00777 INLINE unsigned bx_image_width (bx_image image);
00778 INLINE unsigned bx_image_height (bx_image image);
00779
00780 INLINE void bx_flip_image (bx_image image, int xflip, int yflip);
00781
00782 INLINE void bx_draw_image (bx_window win, bx_image image,
00783 int x, int y);
00784
00785 INLINE void bx_draw_image_fx (bx_window win, bx_image image,
00786 int x, int y, unsigned fx);
00787
00793
00794
00795
00796
00797
00804 bx_key bx_read_key (void);
00805
00806 int bx_keyname_pressed (bx_key key, char keyname []);
00807 int bx_keycode_pressed (bx_key key, unsigned char keycode);
00808
00809 unsigned char bx_keyname_to_keycode (char keyname []);
00810 char * bx_keycode_to_keyname (unsigned char keycode);
00811
00812 char * bx_keynames (bx_key key);
00813 int bx_key_number (bx_key key);
00814
00815 void bx_set_autorepeat (int activate);
00816 int bx_get_autorepeat ();
00817
00822
00823
00824
00825
00826
00833 bx_mouse bx_read_mouse (bx_window win);
00834
00835 INLINE int bx_mouse_x (bx_mouse mouse);
00836 INLINE int bx_mouse_xcanvas (bx_mouse mouse);
00837 INLINE int bx_mouse_xscreen (bx_mouse mouse);
00838 INLINE int bx_mouse_xwindow (bx_mouse mouse);
00839
00840 INLINE int bx_mouse_y (bx_mouse mouse);
00841 INLINE int bx_mouse_ycanvas (bx_mouse mouse);
00842 INLINE int bx_mouse_yscreen (bx_mouse mouse);
00843 INLINE int bx_mouse_ywindow (bx_mouse mouse);
00844
00845 INLINE int bx_mouse_b1 (bx_mouse mouse);
00846 INLINE int bx_mouse_b2 (bx_mouse mouse);
00847 INLINE int bx_mouse_b3 (bx_mouse mouse);
00848 INLINE int bx_mouse_b4 (bx_mouse mouse);
00849 INLINE int bx_mouse_b5 (bx_mouse mouse);
00850
00851
00852 INLINE int bx_mouse_shift (bx_mouse mouse);
00853 INLINE int bx_mouse_ctrl (bx_mouse mouse);
00854 INLINE int bx_mouse_alt (bx_mouse mouse);
00855 INLINE int bx_mouse_altgr (bx_mouse mouse);
00856
00861
00862
00863
00864
00865
00872 typedef void (* bx_mouse_function) (bx_window window, bx_mouse mouse);
00873 typedef void (* bx_key_function ) (bx_window window, unsigned char keycode);
00874
00875 void bx_on_mouse_press (bx_window window, bx_mouse_function function);
00876 void bx_on_mouse_release (bx_window window, bx_mouse_function function);
00877 void bx_on_mouse_move (bx_window window, bx_mouse_function function);
00878
00879 void bx_on_key_press (bx_window window, bx_key_function function);
00880 void bx_on_key_release (bx_window window, bx_key_function function);
00881
00882
00888
00889
00890
00891
00892
00899 bx_dir bx_open_dir (char path []);
00900 bx_dir bx_open_dir_f (char format [], ...);
00901
00902 void bx_close_dir (bx_dir dir);
00903
00904 int bx_dir_length (bx_dir dir);
00905 char * bx_dir_filename (bx_dir dir, int index);
00906
00911
00912
00913
00914
00915
00922 #ifdef BX_AUDIO
00923
00924 typedef struct bx_audio_stuff bx_audio_stuff;
00925 typedef struct bx_audio { bx_audio_stuff * stuff; } bx_audio;
00926
00927 void bx_init_audio (void);
00928
00929 bx_audio bx_load_audio (char * filename);
00930 bx_audio bx_load_audio_f (char format [], ...);
00931
00932 void bx_play_audio (bx_audio, double volume,
00933 unsigned long millisec, int ad_infinitum);
00934
00935 #endif
00936
00941
00942
00943
00944
00945
00946 #endif