Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2. Copyright (C) 1996-1997 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20. //
  21. // asm_draw.h
  22. //
  23. // Include file for asm drawing routines.
  24. //
  25.  
  26. //
  27. // !!! note that this file must match the corresponding C structures at all
  28. // times !!!
  29. //
  30.  
  31. // !!! if this is changed, it must be changed in r_local.h too !!!
  32. #define NEAR_CLIP       0.01
  33.  
  34. // !!! if this is changed, it must be changed in r_local.h too !!!
  35. #define CYCLE   128
  36.  
  37. // espan_t structure
  38. // !!! if this is changed, it must be changed in r_shared.h too !!!
  39. #define espan_t_u       0
  40. #define espan_t_v           4
  41. #define espan_t_count   8
  42. #define espan_t_pnext   12
  43. #define espan_t_size    16
  44.  
  45. // sspan_t structure
  46. // !!! if this is changed, it must be changed in d_local.h too !!!
  47. #define sspan_t_u       0
  48. #define sspan_t_v           4
  49. #define sspan_t_count   8
  50. #define sspan_t_size    12
  51.  
  52. // spanpackage_t structure
  53. // !!! if this is changed, it must be changed in d_polyset.c too !!!
  54. #define spanpackage_t_pdest                             0
  55. #define spanpackage_t_pz                                4
  56. #define spanpackage_t_count                             8
  57. #define spanpackage_t_ptex                              12
  58. #define spanpackage_t_sfrac                             16
  59. #define spanpackage_t_tfrac                             20
  60. #define spanpackage_t_light                             24
  61. #define spanpackage_t_zi                                28
  62. #define spanpackage_t_size                              32
  63.  
  64. // edge_t structure
  65. // !!! if this is changed, it must be changed in r_shared.h too !!!
  66. #define et_u                    0
  67. #define et_u_step               4
  68. #define et_prev                 8
  69. #define et_next                 12
  70. #define et_surfs                16
  71. #define et_nextremove   20
  72. #define et_nearzi               24
  73. #define et_owner                28
  74. #define et_size                 32
  75.  
  76. // surf_t structure
  77. // !!! if this is changed, it must be changed in r_shared.h too !!!
  78. #define SURF_T_SHIFT    6
  79. #define st_next                 0
  80. #define st_prev                 4
  81. #define st_spans                8
  82. #define st_key                  12
  83. #define st_last_u               16
  84. #define st_spanstate    20
  85. #define st_flags                24
  86. #define st_data                 28
  87. #define st_entity               32
  88. #define st_nearzi               36
  89. #define st_insubmodel   40
  90. #define st_d_ziorigin   44
  91. #define st_d_zistepu    48
  92. #define st_d_zistepv    52
  93. #define st_pad                  56
  94. #define st_size                 64
  95.  
  96. // clipplane_t structure
  97. // !!! if this is changed, it must be changed in r_local.h too !!!
  98. #define cp_normal               0
  99. #define cp_dist                 12
  100. #define cp_next                 16
  101. #define cp_leftedge             20
  102. #define cp_rightedge    21
  103. #define cp_reserved             22
  104. #define cp_size                 24
  105.  
  106. // medge_t structure
  107. // !!! if this is changed, it must be changed in model.h too !!!
  108. #define me_v                            0
  109. #define me_cachededgeoffset     4
  110. #define me_size                         8
  111.  
  112. // mvertex_t structure
  113. // !!! if this is changed, it must be changed in model.h too !!!
  114. #define mv_position             0
  115. #define mv_size                 12
  116.  
  117. // refdef_t structure
  118. // !!! if this is changed, it must be changed in render.h too !!!
  119. #define rd_vrect                                        0
  120. #define rd_aliasvrect                           20
  121. #define rd_vrectright                           40
  122. #define rd_vrectbottom                          44
  123. #define rd_aliasvrectright                      48
  124. #define rd_aliasvrectbottom                     52
  125. #define rd_vrectrightedge                       56
  126. #define rd_fvrectx                                      60
  127. #define rd_fvrecty                                      64
  128. #define rd_fvrectx_adj                          68
  129. #define rd_fvrecty_adj                          72
  130. #define rd_vrect_x_adj_shift20          76
  131. #define rd_vrectright_adj_shift20       80
  132. #define rd_fvrectright_adj                      84
  133. #define rd_fvrectbottom_adj                     88
  134. #define rd_fvrectright                          92
  135. #define rd_fvrectbottom                         96
  136. #define rd_horizontalFieldOfView        100
  137. #define rd_xOrigin                                      104
  138. #define rd_yOrigin                                      108
  139. #define rd_vieworg                                      112
  140. #define rd_viewangles                           124
  141. #define rd_ambientlight                         136
  142. #define rd_size                                         140
  143.  
  144. // mtriangle_t structure
  145. // !!! if this is changed, it must be changed in model.h too !!!
  146. #define mtri_facesfront         0
  147. #define mtri_vertindex          4
  148. #define mtri_size                       16      // !!! if this changes, array indexing in !!!
  149.                                                                 // !!! d_polysa.s must be changed to match !!!
  150. #define mtri_shift                      4
  151.  
  152.