Subversion Repositories Games.Carmageddon

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. #ifndef BRENDER_H
  3. #define BRENDER_H
  4.  
  5. #include "br_inline_funcs.h"
  6. #include "br_types.h"
  7.  
  8. extern struct br_font* BrFontFixed3x5;
  9. extern struct br_font* BrFontProp4x6;
  10. extern struct br_font* BrFontProp7x9;
  11.  
  12. // BrActor
  13. br_actor* BrActorLoad(char* filename);
  14. br_uint_32 BrActorLoadMany(char* filename, br_actor** actors, br_uint_16 num);
  15. br_uint_32 BrActorSave(char* filename, br_actor* ptr);
  16. br_actor* BrActorAllocate(br_uint_8 type, void* type_data);
  17. br_actor* BrActorAdd(br_actor* parent, br_actor* a);
  18. void BrActorRelink(br_actor* parent, br_actor* a);
  19. br_actor* BrActorRemove(br_actor* a);
  20. void BrActorFree(br_actor* a);
  21. br_uint_32 BrActorEnum(br_actor* parent, br_actor_enum_cbfn* callback, void* arg);
  22. br_bounds* BrActorToBounds(br_bounds* b, br_actor* ap);
  23. br_uint_16 BrActorToActorMatrix34(br_matrix34* m, br_actor* a, br_actor* b);
  24.  
  25. void BrLightEnable(br_actor* l);
  26. void BrLightDisable(br_actor* l);
  27.  
  28. // BrAllocator
  29. br_allocator* BrAllocatorSet(br_allocator* newal);
  30.  
  31. // BrClip
  32. void BrClipPlaneEnable(br_actor* c);
  33. void BrClipPlaneDisable(br_actor* c);
  34.  
  35. // BrDev
  36. void BrDevPaletteSetOld(br_pixelmap* pm);
  37. void BrDevPaletteSetEntryOld(int i, br_colour colour);
  38.  
  39. // BrEnvironment
  40. br_actor* BrEnvironmentSet(br_actor* a);
  41.  
  42. // BrFileSystem
  43. br_filesystem* BrFilesystemSet(br_filesystem* newfs);
  44.  
  45. // BrMap
  46. br_pixelmap* BrMapAdd(br_pixelmap* pixelmap);
  47. br_pixelmap* BrMapRemove(br_pixelmap* pixelmap);
  48. br_pixelmap* BrMapFind(char* pattern);
  49. br_uint_32 BrMapAddMany(br_pixelmap** items, int n);
  50. br_map_find_cbfn* BrMapFindHook(br_map_find_cbfn* hook);
  51. void BrMapUpdate(br_pixelmap* map, br_uint_16 flags);
  52.  
  53. // BrMaterial
  54. br_material* BrMaterialAllocate(char* name);
  55. br_material* BrMaterialLoad(char* filename);
  56. br_uint_32 BrMaterialLoadMany(char* filename, br_material** materials, br_uint_16 num);
  57. br_material* BrMaterialAdd(br_material* material);
  58. br_material* BrMaterialRemove(br_material* material);
  59. void BrMaterialUpdate(br_material* mat, br_uint_16 flags);
  60. br_material* BrMaterialFind(char* pattern);
  61. void BrMaterialFree(br_material* m);
  62. br_uint_32 BrMaterialAddMany(br_material** items, int n);
  63. br_uint_32 BrMaterialEnum(char* pattern, br_material_enum_cbfn* callback, void* arg);
  64. br_material_find_cbfn* BrMaterialFindHook(br_material_find_cbfn* hook);
  65.  
  66. // BrMatrix236
  67. void BrMatrix23Copy(br_matrix23* A, br_matrix23* B);
  68. void BrMatrix23Identity(br_matrix23* mat);
  69. void BrMatrix23Mul(br_matrix23* A, br_matrix23* B, br_matrix23* C);
  70. void BrMatrix23PostScale(br_matrix23* mat, br_scalar sx, br_scalar sy);
  71.  
  72. // BrMatrix34
  73. void BrMatrix34Identity(br_matrix34* mat);
  74. void BrMatrix34Pre(br_matrix34* mat, br_matrix34* A);
  75. void BrMatrix34ApplyV(br_vector3* A, br_vector3* B, br_matrix34* C);
  76. br_scalar BrMatrix34Inverse(br_matrix34* B, br_matrix34* A);
  77. void BrMatrix34LPInverse(br_matrix34* A, br_matrix34* B);
  78. void BrMatrix34ApplyP(br_vector3* A, br_vector3* B, br_matrix34* C);
  79. void BrMatrix34Scale(br_matrix34* mat, br_scalar sx, br_scalar sy, br_scalar sz);
  80. void BrMatrix34PostTranslate(br_matrix34* mat, br_scalar x, br_scalar y, br_scalar z);
  81. void BrMatrix34Mul(br_matrix34* A, br_matrix34* B, br_matrix34* C);
  82. void BrMatrix34Copy(br_matrix34* A, br_matrix34* B);
  83. void BrMatrix34PreRotateY(br_matrix34* mat, br_angle ry);
  84. void BrMatrix34RotateY(br_matrix34* mat, br_angle ry);
  85. void BrMatrix34PostScale(br_matrix34* mat, br_scalar sx, br_scalar sy, br_scalar sz);
  86. void BrMatrix34PreScale(br_matrix34* mat, br_scalar sx, br_scalar sy, br_scalar sz);
  87. void BrMatrix34PreTransform(br_matrix34* mat, br_transform* xform);
  88. void BrMatrix34PostTransform(br_matrix34* mat, br_transform* xform);
  89. void BrMatrix34PreRotateX(br_matrix34* mat, br_angle rx);
  90. void BrMatrix34TApplyV(br_vector3* A, br_vector3* B, br_matrix34* C);
  91. void BrMatrix34LPNormalise(br_matrix34* A, br_matrix34* B);
  92. void BrMatrix34PreRotate(br_matrix34* mat, br_angle r, br_vector3* axis);
  93. void BrMatrix34Rotate(br_matrix34* mat, br_angle r, br_vector3* a);
  94. void BrMatrix34PreTranslate(br_matrix34* mat, br_scalar x, br_scalar y, br_scalar z);
  95. void BrMatrix34Post(br_matrix34* mat, br_matrix34* A);
  96. void BrMatrix34PostShearX(br_matrix34* mat, br_scalar sy, br_scalar sz);
  97. void BrMatrix34PostShearY(br_matrix34* mat, br_scalar sx, br_scalar sz);
  98. void BrMatrix34PostShearZ(br_matrix34* mat, br_scalar sx, br_scalar sy);
  99. void BrMatrix34PreScale(br_matrix34* mat, br_scalar sx, br_scalar sy, br_scalar sz);
  100. void BrMatrix34PreShearX(br_matrix34* mat, br_scalar sy, br_scalar sz);
  101. void BrMatrix34PreRotateY(br_matrix34* mat, br_angle ry);
  102. void BrMatrix34PreRotateZ(br_matrix34* mat, br_angle rz);
  103. void BrMatrix34RollingBall(br_matrix34* mat, int dx, int dy, int radius);
  104.  
  105. // BrMatrix4
  106. void BrMatrix4Copy(br_matrix4* A, br_matrix4* B);
  107. br_scalar BrMatrix4Inverse(br_matrix4* A, br_matrix4* B);
  108. void BrMatrix4TApply(br_vector4* A, br_vector4* B, br_matrix4* C);
  109. void BrMatrix4ApplyP(br_vector4* A, br_vector3* B, br_matrix4* C);
  110. void BrMatrix4Perspective(br_matrix4* mat, br_angle field_of_view, br_scalar aspect, br_scalar hither, br_scalar yon);
  111. void BrMatrix4Scale(br_matrix4* mat, br_scalar sx, br_scalar sy, br_scalar sz);
  112. void BrMatrix4Mul(br_matrix4* A, br_matrix4* B, br_matrix4* C);
  113. void BrMatrix4Copy34(br_matrix4* A, br_matrix34* B);
  114.  
  115. // BrMem
  116. void BrMemFree(void* block);
  117. void* BrMemAllocate(br_size_t size, br_uint_8 type);
  118. void* BrMemCalloc(int nelems, br_size_t size, br_uint_8 type);
  119.  
  120. // BrModel
  121. br_model* BrModelAllocate(char* name, int nvertices, int nfaces);
  122. br_model* BrModelAdd(br_model* model);
  123. br_uint_32 BrModelAddMany(br_model** items, int n);
  124. br_model* BrModelRemove(br_model* model);
  125. br_model* BrModelLoad(char* filename);
  126. void BrModelFree(br_model* model);
  127. void BrModelUpdate(br_model* model, br_uint_16 flags);
  128. br_uint_32 BrModelLoadMany(char* filename, br_model** models, br_uint_16 num);
  129. br_uint_32 BrModelSaveMany(char* filename, br_model** models, br_uint_16 num);
  130. br_model_find_cbfn* BrModelFindHook(br_model_find_cbfn* hook);
  131.  
  132. // BrPixelmap
  133. br_pixelmap* BrPixelmapLoad(char* filename);
  134. br_uint_32 BrPixelmapLoadMany(char* filename, br_pixelmap** pixelmaps, br_uint_16 num);
  135. br_uint_32 BrPixelmapSave(char* filename, br_pixelmap* ptr);
  136. br_uint_32 BrPixelmapSaveMany(char* filename, br_pixelmap** pixelmaps, br_uint_16 num);
  137. void BrPixelmapFree(br_pixelmap* src);
  138. br_pixelmap* BrPixelmapMatch(br_pixelmap* src, br_uint_8 match_type);
  139. br_pixelmap* BrPixelmapAllocateSub(br_pixelmap* src, br_int_32 x, br_int_32 y, br_int_32 w, br_int_32 h);
  140. void BrPixelmapFill(br_pixelmap* dst, br_uint_32 colour);
  141. void BrPixelmapRectangleCopy(br_pixelmap* dst, br_int_32 dx, br_int_32 dy, br_pixelmap* src, br_int_32 sx, br_int_32 sy, br_int_32 w, br_int_32 h);
  142. void BrPixelmapCopy(br_pixelmap* dst, br_pixelmap* src);
  143. void BrPixelmapLine(br_pixelmap* dst, br_int_32 x1, br_int_32 y1, br_int_32 x2, br_int_32 y2, br_uint_32 colour);
  144. void BrPixelmapRectangleFill(br_pixelmap* dst, br_int_32 x, br_int_32 y, br_int_32 w, br_int_32 h, br_uint_32 colour);
  145. void BrPixelmapPixelSet(br_pixelmap* dst, br_int_32 x, br_int_32 y, br_uint_32 colour);
  146. br_pixelmap* BrPixelmapAllocate(br_uint_8 type, br_int_32 w, br_int_32 h, void* pixels, int flags);
  147. void BrPixelmapDoubleBuffer(br_pixelmap* dst, br_pixelmap* src);
  148. void BrPixelmapText(br_pixelmap* dst, br_int_32 x, br_int_32 y, br_uint_32 colour, br_font* font, char* text);
  149. void BrPixelmapTextF(br_pixelmap* dst, br_int_32 x, br_int_32 y, br_uint_32 colour, br_font* font, char* fmt, ...);
  150. br_uint_16 BrPixelmapTextWidth(br_pixelmap* dst, br_font* font, char* text);
  151.  
  152. // BrRes
  153. void* BrResAllocate(void* vparent, br_size_t size, br_uint_8 res_class);
  154. br_resource_class* BrResClassAdd(br_resource_class* rclass);
  155. void* BrResRemove(void* vres);
  156. void BrResFree(void* vres);
  157. br_uint_32 BrResCheck(void* vres, int no_tag);
  158. br_uint_32 BrResSize(void* vres);
  159. char* BrResStrDup(void* vparent, char* str);
  160.  
  161. // BrTable
  162. br_pixelmap* BrTableAdd(br_pixelmap* pixelmap);
  163. br_pixelmap* BrTableFind(char* pattern);
  164. br_pixelmap* BrTableRemove(br_pixelmap* pixelmap);
  165. br_uint_32 BrTableAddMany(br_pixelmap** items, int n);
  166. void BrTableUpdate(br_pixelmap* table, br_uint_16 flags);
  167. br_uint_32 BrTableEnum(char* pattern, br_table_enum_cbfn* callback, void* arg);
  168. br_table_find_cbfn* BrTableFindHook(br_table_find_cbfn* hook);
  169.  
  170. // BrTransform
  171. void BrTransformToMatrix34(br_matrix34* mat, br_transform* xform);
  172.  
  173. // BrV1db
  174. void BrV1dbBeginWrapper_Float(void);
  175.  
  176. // BrVector3
  177. // void BrVector3Cross(br_vector3* v1, br_vector3* v2, br_vector3* v3);
  178. void BrVector3SetFloat(br_vector3* v1, float f1, float f2, float f3);
  179. // void BrVector3Sub(br_vector3* v1, br_vector3* v2, br_vector3* v3);
  180. // void BrVector3Accumulate(br_vector3* v1, br_vector3* v2);
  181. // void BrVector3Normalise(br_vector3* v1, br_vector3* v2);
  182.  
  183. // BrTransform
  184. void BrTransformToTransform(br_transform* dest, br_transform* src);
  185.  
  186. // Logging
  187. void BrFailure(const char* s, ...);
  188. void BrFatal(const char* name, int line, const char* s, ...);
  189.  
  190. // Z-buffer
  191. void BrZbBegin(br_uint_8 colour_type, br_uint_8 depth_type);
  192.  
  193. void BrZbSceneRenderBegin(br_actor* world, br_actor* camera, br_pixelmap* colour_buffer, br_pixelmap* depth_buffer);
  194. void BrZbSceneRenderAdd(br_actor* tree);
  195. void BrZbSceneRenderEnd(void);
  196.  
  197. void BrZbModelRender(br_actor* actor, br_model* model, br_material* material, br_uint_8 style, int on_screen, int use_custom);
  198.  
  199. br_pixelmap* DOSGfxBegin(char* setup_string);
  200.  
  201. // Various
  202. br_uint_32 BrOnScreenCheck(br_bounds3* bounds);
  203.  
  204. int BrWriteModeSet(int mode);
  205. br_uint_32 BrSwap32(br_uint_32 l);
  206. br_diaghandler* BrDiagHandlerSet(br_diaghandler* newdh);
  207.  
  208. #endif
  209.