RayTracing.h
上传用户:lhwx1029
上传日期:2013-03-07
资源大小:1173k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <string.h>                         /* memset memcpy */
  3. #define main _main                          /* to accomodate windows */
  4. //extern "C";
  5. #define HW_set_char(dst,lng,val)  memset(dst,val,lng)
  6. #define HW_copy_char(src,dst,lng) memcpy(dst,src,lng)
  7. void HW_set_int(int *dst,long lng,int val);
  8. #define HW_copy_int(src,dst,lng)  memcpy(dst,src,lng*sizeof(int))
  9. typedef char HW_8_bit;                      /* compiler/mashine independent */
  10. #define HW_set_8_bit(dst,lng,val) HW_set_char(dst,lng,val)
  11. #define HW_copy_8_bit(src,dst,lng) HW_copy_char(src,dst,lng)
  12. typedef short HW_16_bit;
  13. void HW_set_16_bit(HW_16_bit *dst,long lng,HW_16_bit val);
  14. #define HW_copy_16_bit(src,dst,lng) memcpy(dst,src,lng*sizeof(HW_16_bit))
  15. typedef int HW_32_bit;
  16. #define HW_set_32_bit(dst,lng,val) HW_set_int(dst,lng,val)
  17. #define HW_copy_32_bit(src,dst,lng) HW_copy_int(src,dst,lng)
  18. #if defined(_16BPP_)
  19. typedef HW_16_bit HW_pixel;
  20. #define HW_set_pixel(dst,lng,val) HW_set_16_bit(dst,lng,val)
  21. #define HW_copy_pixel(src,dst,lng) HW_copy_16_bit(src,dst,lng)
  22. #endif
  23. #if defined(_32BPP_)
  24. typedef HW_32_bit HW_pixel;
  25. #define HW_set_pixel(dst,lng,val) HW_set_32_bit(dst,lng,val)
  26. #define HW_copy_pixel(src,dst,lng) HW_copy_32_bit(src,dst,lng)
  27. #endif
  28. #define HW_SCREEN_X_SIZE 600
  29. #define HW_SCREEN_Y_SIZE 600                /* number of pixels total */
  30. #if defined(_MONO_)
  31.  #define HW_SCREEN_LINE_SIZE HW_SCREEN_X_SIZE
  32. #endif
  33. #define HW_SCREEN_X_MAX    (HW_SCREEN_X_SIZE-1)
  34. #define HW_SCREEN_Y_MAX    (HW_SCREEN_Y_SIZE-1)
  35. #define HW_SCREEN_X_CENTRE (HW_SCREEN_X_SIZE/2)
  36. #define HW_SCREEN_Y_CENTRE (HW_SCREEN_Y_SIZE/2)
  37. #define HW_KEY_ARROW_LEFT  VK_LEFT
  38. #define HW_KEY_ARROW_RIGHT VK_RIGHT
  39. #define HW_KEY_ARROW_UP    VK_UP
  40. #define HW_KEY_ARROW_DOWN  VK_DOWN
  41. #define HW_KEY_PLUS        VK_ADD
  42. #define HW_KEY_MINUS       VK_SUBTRACT
  43. #define HW_KEY_ENTER       VK_RETURN
  44. #define HW_KEY_SPACE       VK_SPACE
  45. #define HW_KEY_TAB         VK_TAB           /* all i can think of */
  46. int main(int n, char **o);
  47. void HW_error(char *s,...);
  48. void HW_close_event_loop(void);
  49. void HW_init_event_loop(void (*application_main)(void),
  50.                         void (*application_key_handler)(int key_code)
  51.                        );