mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-24 00:00:33 +02:00
627 lines
19 KiB
C
627 lines
19 KiB
C
/*
|
|
RASTERIZER.H
|
|
|
|
header included in hcex build.
|
|
*/
|
|
|
|
#ifndef __RASTERIZER_H
|
|
#define __RASTERIZER_H
|
|
#pragma once
|
|
|
|
/* ---------- headers */
|
|
|
|
#include "real_math.h"
|
|
#include "render_cameras.h"
|
|
|
|
/* ---------- constants */
|
|
|
|
enum
|
|
{
|
|
MAXIMUM_WINDOWS = 4,
|
|
MAXIMUM_LENS_FLARES_PER_FRAME = 1024,
|
|
MAXIMUM_LIGHTS_PER_WINDOW = 128,
|
|
};
|
|
|
|
enum
|
|
{
|
|
RASTERIZER_MEMORY_POOL_SIZE = 0x18000,
|
|
RASTERIZER_MAXIMUM_TRIANGLES_PER_TRIANGLE_BUFFER = 24576,
|
|
RASTERIZER_MAXIMUM_DEBUG_PRIMITIVES = 131072,
|
|
RASTERIZER_MAXIMUM_DEBUG_VERTICES = 393216,
|
|
RASTERIZER_MAXIMUM_TRANSPARENT_GEOMETRY_GROUPS = 384,
|
|
RASTERIZER_MAXIMUM_TRANSPARENT_GEOMETRY_GROUPS2 = 32,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_TRIANGLES = 32768,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_TRIANGLE_BUFFERS = 1024,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_UNLIT_VERTICES = 8192,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_LIT_VERTICES = 2,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_SCREEN_VERTICES = 16384,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_MODEL_VERTICES = 2048,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_MODEL_PROCESSED_VERTICES = 8192,
|
|
RASTERIZER_MAXIMUM_DYNAMIC_VERTEX_BUFFERS = 1024,
|
|
RASTERIZER_MAXIMUM_DETAIL_OBJECTS_PER_FRAME = 4096,
|
|
RASTERIZER_NODES_PER_MODEL_VERTEX = 2,
|
|
RASTERIZER_MAXIMUM_NODES_PER_MODEL = 44,
|
|
RASTERIZER_MAXIMUM_NEARBY_OPAQUE_MODEL_GEOMETRY_GROUPS_THAT_MIGHT_OBSCURE_THE_ENVIRONMENT_FOG_SCREEN_EFFECT = 1
|
|
};
|
|
|
|
enum
|
|
{
|
|
_rasterizer_profile_clear = 0,
|
|
_rasterizer_profile_model_sky,
|
|
_rasterizer_profile_models,
|
|
_rasterizer_profile_environment_lightmaps,
|
|
_rasterizer_profile_environment_shadows,
|
|
_rasterizer_profile_environment_diffuse_lights,
|
|
_rasterizer_profile_environment_decals_light,
|
|
_rasterizer_profile_environment_decals_alpha_tested,
|
|
_rasterizer_profile_environment_textures,
|
|
_rasterizer_profile_environment_decals_primary,
|
|
_rasterizer_profile_environment_decals_secondary,
|
|
_rasterizer_profile_environment_specular_lights,
|
|
_rasterizer_profile_environment_specular_lightmaps,
|
|
_rasterizer_profile_environment_reflection_lightmap_masks,
|
|
_rasterizer_profile_environment_reflection_mirrors,
|
|
_rasterizer_profile_environment_reflections,
|
|
_rasterizer_profile_environment_transparents,
|
|
_rasterizer_profile_environment_fog,
|
|
_rasterizer_profile_environment_fog_screen,
|
|
_rasterizer_profile_water,
|
|
_rasterizer_profile_environment_decals_water,
|
|
_rasterizer_profile_detail_objects,
|
|
_rasterizer_profile_queued_transparents,
|
|
_rasterizer_profile_lens_flare_occlusion_submit,
|
|
_rasterizer_profile_lens_flare_occlusion_query,
|
|
_rasterizer_profile_lens_flares,
|
|
_rasterizer_profile_screen_effect,
|
|
_rasterizer_profile_hud,
|
|
_rasterizer_profile_screen_flash,
|
|
NUMBER_OF_RASTERIZER_PROFILES,
|
|
};
|
|
|
|
enum rasterizer_lock_operation
|
|
{
|
|
_rasterizer_lock_unlocked = 0,
|
|
_rasterizer_lock_cinematics = 8,
|
|
};
|
|
|
|
|
|
/* ---------- macros */
|
|
|
|
/* ---------- structures */
|
|
|
|
struct rasterizer_model_begin_parameters;
|
|
struct detail_object_global_runtime_data;
|
|
struct detail_object_render_data;
|
|
struct bitmap_data;
|
|
struct render_animation;
|
|
struct shader;
|
|
struct vertex_buffer;
|
|
struct rasterizer_dynamic_screen_geometry_parameters;
|
|
struct rasterizer_model_geometry_part;
|
|
struct rasterizer_model_skinning;
|
|
|
|
typedef void (*rasterizer_widget_render_proc)(
|
|
long object_index,
|
|
long widget_index);
|
|
|
|
struct rasterizer_frame_begin_parameters
|
|
{
|
|
real game_time_sec;
|
|
real dt;
|
|
};
|
|
|
|
struct dynamic_screen_vertex
|
|
{
|
|
real_point2d position;
|
|
real_point2d texture_coordinates;
|
|
pixel32 color;
|
|
};
|
|
|
|
typedef char verify_dynamic_screen_vertex_size[
|
|
sizeof(struct dynamic_screen_vertex) == 0x14 ? 1 : -1];
|
|
|
|
struct rasterizer_dynamic_screen_geometry_parameters
|
|
{
|
|
void *meter_parameters;
|
|
real_vector2d const *offset;
|
|
boolean map_anchor_screen[3];
|
|
byte pad0B;
|
|
struct bitmap_data *map[3];
|
|
boolean map_wrapped[3];
|
|
byte pad1B;
|
|
real_point2d const *map_offset[3];
|
|
real_vector2d map_scale[3];
|
|
real_vector2d map_texture_scale[3];
|
|
real_rgb_color const *map_tint[3];
|
|
real_argb_color plasma_fade;
|
|
boolean doing_plasma_effect;
|
|
byte pad75[3];
|
|
real const *map_fade[3];
|
|
short map0_to_1_blend_function;
|
|
short map1_to_2_blend_function;
|
|
short framebuffer_blend_function;
|
|
boolean point_sampled;
|
|
byte pad8B;
|
|
};
|
|
|
|
typedef char verify_rasterizer_dynamic_screen_geometry_parameters_size[
|
|
sizeof(struct rasterizer_dynamic_screen_geometry_parameters) == 0x8C ? 1 : -1];
|
|
|
|
struct rasterizer_globals_definition
|
|
{
|
|
boolean initialized;
|
|
byte reserved01;
|
|
short current_lock_operation;
|
|
byte reserved04[0x24];
|
|
/* updated asynchronously by the rasterizer and vertical-blank callback */
|
|
volatile unsigned long frame_index;
|
|
volatile unsigned long vertical_blank_index;
|
|
byte reserved30[0xD];
|
|
boolean framerate_throttle;
|
|
byte reserved3E[6];
|
|
real near_clip_distance;
|
|
real far_clip_distance;
|
|
real first_person_weapon_near_clip_distance;
|
|
real first_person_weapon_far_clip_distance;
|
|
byte reserved54[0x14];
|
|
};
|
|
|
|
typedef char verify_rasterizer_globals_size[
|
|
sizeof(struct rasterizer_globals_definition) == 0x68 ? 1 : -1];
|
|
typedef char verify_rasterizer_globals_initialized_offset[
|
|
offsetof(struct rasterizer_globals_definition, initialized) == 0x00 ? 1 : -1];
|
|
typedef char verify_rasterizer_globals_lock_operation_offset[
|
|
offsetof(struct rasterizer_globals_definition, current_lock_operation) == 0x02 ? 1 : -1];
|
|
typedef char verify_rasterizer_globals_framerate_throttle_offset[
|
|
offsetof(struct rasterizer_globals_definition, framerate_throttle) == 0x3D ? 1 : -1];
|
|
typedef char verify_rasterizer_globals_near_clip_distance_offset[
|
|
offsetof(struct rasterizer_globals_definition, near_clip_distance) == 0x44 ? 1 : -1];
|
|
|
|
struct rasterizer_window_begin_parameters
|
|
{
|
|
short rasterizer_target;
|
|
short window_index;
|
|
boolean has_mirror;
|
|
boolean suppress_clear;
|
|
struct render_camera camera;
|
|
struct render_frustum frustum;
|
|
struct render_fog fog;
|
|
struct render_screen_flash screen_flash;
|
|
struct render_screen_effect screen_effect;
|
|
};
|
|
|
|
/* ---------- prototypes/RASTERIZER.C */
|
|
|
|
void rasterizer_reset_state(
|
|
void);
|
|
void rasterizer_widget_end(
|
|
void);
|
|
|
|
boolean rasterizer_initialize(void);
|
|
|
|
void rasterizer_frame_begin(const struct rasterizer_frame_begin_parameters *parameters);
|
|
boolean rasterizer_windows_begin(void);
|
|
void rasterizer_window_begin(
|
|
struct rasterizer_window_begin_parameters const *parameters);
|
|
void rasterizer_window_end(
|
|
void);
|
|
void rasterizer_windows_end(void);
|
|
void rasterizer_frame_end(void);
|
|
|
|
void rasterizer_present(struct bitmap_data *screenshot_bitmap, const point2d *screenshot_index);
|
|
void rasterizer_dispose(void);
|
|
void rasterizer_window_get_fog(
|
|
struct render_fog *fog);
|
|
void rasterizer_window_set_fog(
|
|
struct render_fog const *fog);
|
|
void rasterizer_set_vblank_callback(
|
|
void (*callback)(unsigned long));
|
|
long rasterizer_dynamic_triangles_new(
|
|
long triangle_count);
|
|
short *rasterizer_dynamic_triangles_lock(
|
|
long triangle_buffer_index);
|
|
void rasterizer_dynamic_triangles_unlock(
|
|
long triangle_buffer_index);
|
|
void rasterizer_dynamic_triangles_delete(
|
|
long triangle_buffer_index);
|
|
long rasterizer_dynamic_vertices_new(
|
|
short type,
|
|
long vertex_count);
|
|
short rasterizer_dynamic_vertices_get_type(
|
|
long dynamic_vertex_buffer_index);
|
|
void *rasterizer_dynamic_vertices_lock(
|
|
long dynamic_vertex_buffer_index);
|
|
void rasterizer_dynamic_vertices_unlock(
|
|
long dynamic_vertex_buffer_index);
|
|
void rasterizer_dynamic_vertices_delete(
|
|
long dynamic_vertex_buffer_index);
|
|
void rasterizer_debug_immediate_line(
|
|
real_point3d const *p0,
|
|
real_point3d const *p1,
|
|
real_rgb_color const *color0,
|
|
real_rgb_color const *color1);
|
|
void rasterizer_debug_immediate_point(
|
|
real_point3d const *point,
|
|
real radius,
|
|
real_rgb_color const *color);
|
|
void rasterizer_debug_immediate_vector(
|
|
real_point3d const *point,
|
|
real_vector3d const *vector,
|
|
real scale,
|
|
real_rgb_color const *color);
|
|
void rasterizer_debug_model_vertices(
|
|
long object_index,
|
|
struct rasterizer_model_skinning const *skinning,
|
|
struct rasterizer_model_geometry_part const *part);
|
|
void rasterizer_debug_immediate_triangle(
|
|
real_point3d const *p0,
|
|
real_point3d const *p1,
|
|
real_point3d const *p2,
|
|
real_rgb_color const *color0,
|
|
real_rgb_color const *color1,
|
|
real_rgb_color const *color2);
|
|
void rasterizer_debug_immediate_line_screenspace(
|
|
point2d const *p0,
|
|
point2d const *p1,
|
|
real_rgb_color const *color0,
|
|
real_rgb_color const *color1);
|
|
void rasterizer_debug_immediate_linestrip_screenspace(
|
|
point2d const *points,
|
|
short point_count,
|
|
real_rgb_color const *color);
|
|
void *rasterizer_decal_vertices_lock(
|
|
short cache_index,
|
|
unsigned long cache_size);
|
|
void rasterizer_decal_vertices_unlock(
|
|
void);
|
|
long rasterizer_decal_vertices_new(
|
|
long size);
|
|
void rasterizer_decal_vertices_delete(
|
|
long decal_vertex_buffer_index);
|
|
|
|
void rasterizer_decals_initialize(
|
|
void);
|
|
void rasterizer_decals_initialize_for_new_map(
|
|
void);
|
|
void rasterizer_decals_dispose_from_old_map(
|
|
void);
|
|
void rasterizer_decals_dispose(
|
|
void);
|
|
void rasterizer_decals_begin(
|
|
short type);
|
|
void rasterizer_decals_end(
|
|
void);
|
|
void rasterizer_decals_draw(
|
|
short cluster_index);
|
|
void rasterizer_decals_update_function_pointers(void);
|
|
void rasterizer_detail_objects_begin(
|
|
void);
|
|
void rasterizer_detail_objects_rebuild_vertices(
|
|
struct detail_object_global_runtime_data *runtime_data);
|
|
void rasterizer_detail_objects_draw(
|
|
struct detail_object_render_data *render_data);
|
|
void rasterizer_detail_objects_end(
|
|
void);
|
|
void rasterizer_screen_effect(
|
|
struct render_screen_effect const *effect);
|
|
|
|
void rasterizer_debug_immediate_begin(
|
|
void);
|
|
void rasterizer_debug_immediate_end(
|
|
void);
|
|
void rasterizer_debug_immediate_begin_screenspace(
|
|
void);
|
|
void rasterizer_debug_immediate_end_screenspace(
|
|
void);
|
|
|
|
void rasterizer_hud_begin(
|
|
void);
|
|
void rasterizer_hud_end(
|
|
void);
|
|
void rasterizer_hud_motion_sensor_blip_begin(
|
|
void);
|
|
void rasterizer_hud_motion_sensor_blip_draw(
|
|
real_point2d const *position,
|
|
real intensity,
|
|
real size,
|
|
real_rgb_color const *color,
|
|
boolean large_blip);
|
|
void rasterizer_hud_motion_sensor_blip_end(
|
|
real_point2d const *center,
|
|
real scale);
|
|
void rasterizer_model_begin(
|
|
struct rasterizer_model_begin_parameters const *parameters,
|
|
boolean is_dynamic);
|
|
void rasterizer_model_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
void const *geometry,
|
|
long geometry_index,
|
|
long model_data,
|
|
real_rgb_color const *change_colors,
|
|
long model_effect);
|
|
void rasterizer_model_transparent_geometry_submit(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
void const *geometry,
|
|
long geometry_index,
|
|
long model_data,
|
|
real_rgb_color const *change_colors,
|
|
long model_effect,
|
|
void const *lighting,
|
|
void const *effect);
|
|
void rasterizer_model_end(
|
|
void);
|
|
void rasterizer_models_end(
|
|
void);
|
|
void rasterizer_models_begin(
|
|
boolean skip_obscurer_test);
|
|
void rasterizer_environment_lightmap_begin(
|
|
struct bitmap_data const *lightmap_bitmap);
|
|
void rasterizer_environment_lightmap_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_lightmap_end(
|
|
void);
|
|
void rasterizer_environment_lightmaps_end(
|
|
void);
|
|
void rasterizer_environment_diffuse_light_end(
|
|
void);
|
|
void rasterizer_environment_diffuse_lights_end(
|
|
void);
|
|
void rasterizer_environment_diffuse_light_begin(
|
|
long light_index);
|
|
void rasterizer_environment_diffuse_light_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_shadows_begin(
|
|
void);
|
|
void rasterizer_environment_shadow_begin(
|
|
long object_index,
|
|
real_matrix4x3 const *shadow_matrix,
|
|
real_point3d const *object_position,
|
|
real object_bounding_radius,
|
|
real_rgb_color const *shadow_color);
|
|
void rasterizer_environment_shadow_model_begin(
|
|
struct rasterizer_model_begin_parameters const *parameters);
|
|
void rasterizer_environment_shadow_model_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
void const *geometry,
|
|
real_rgb_color const *change_colors);
|
|
void rasterizer_environment_shadow_model_end(
|
|
void);
|
|
void rasterizer_environment_shadow_end(
|
|
void);
|
|
void rasterizer_environment_shadow_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_shadows_end(
|
|
void);
|
|
void rasterizer_environment_diffuse_textures_end(
|
|
void);
|
|
void rasterizer_environment_diffuse_texture_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_specular_light_begin(
|
|
long light_index);
|
|
void rasterizer_environment_specular_light_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_specular_light_end(
|
|
void);
|
|
void rasterizer_environment_specular_lights_end(
|
|
void);
|
|
void rasterizer_environment_specular_lightmap_end(
|
|
void);
|
|
void rasterizer_environment_specular_lightmaps_end(
|
|
void);
|
|
void rasterizer_environment_specular_lightmap_begin(
|
|
struct bitmap_data const *lightmap_bitmap);
|
|
void rasterizer_environment_specular_lightmap_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_reflection_lightmap_mask_end(
|
|
void);
|
|
void rasterizer_environment_reflection_lightmap_mask_begin(
|
|
struct bitmap_data const *lightmap_bitmap);
|
|
void rasterizer_environment_reflection_lightmap_mask_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_reflection_lightmap_masks_end(
|
|
void);
|
|
void rasterizer_environment_reflection_mirrors_begin(
|
|
void);
|
|
void rasterizer_environment_reflection_mirror_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_reflection_mirrors_end(
|
|
void);
|
|
void rasterizer_environment_reflections_begin(
|
|
void);
|
|
void rasterizer_environment_reflection_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_reflections_end(
|
|
void);
|
|
void rasterizer_environment_transparent_geometry_begin(
|
|
void);
|
|
void rasterizer_environment_transparent_geometry_submit(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
struct bitmap_data const *bitmap,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_transparent_geometry_end(
|
|
void);
|
|
void rasterizer_dynamic_screen_geometry_draw(
|
|
long primitive_type,
|
|
long vertex_type,
|
|
long dynamic_vertex_buffer_index,
|
|
long vertex_count);
|
|
void rasterizer_dynamic_screen_geometry_add_multitexture_params_to_base(
|
|
struct rasterizer_dynamic_screen_geometry_parameters *base,
|
|
struct rasterizer_dynamic_screen_geometry_parameters const *multitex_params);
|
|
void rasterizer_dynamic_unlit_geometry_draw(
|
|
struct shader const *shader,
|
|
struct bitmap_data const *bitmap,
|
|
struct render_animation const *animation,
|
|
long dynamic_triangle_buffer_index,
|
|
long dynamic_vertex_buffer_index,
|
|
long vertex_count,
|
|
real_point3d const *centroid,
|
|
unsigned long geometry_flags);
|
|
void rasterizer_dynamic_lit_geometry_draw(
|
|
void const *vertices,
|
|
void const *parameters);
|
|
void rasterizer_psuedo_dynamic_screen_quad_draw(
|
|
struct rasterizer_dynamic_screen_geometry_parameters *parameters,
|
|
struct dynamic_screen_vertex *vertices);
|
|
void rasterizer_widget_submit(
|
|
long object_index,
|
|
long widget_index,
|
|
real_point3d const *centroid,
|
|
rasterizer_widget_render_proc render_proc);
|
|
void *rasterizer_widget_begin(
|
|
long handle);
|
|
void rasterizer_profile_enable(
|
|
boolean enable);
|
|
void rasterizer_screen_flash(
|
|
void);
|
|
void rasterizer_environment_fog_screen_begin(
|
|
boolean render_fog);
|
|
void rasterizer_environment_fog_screen_wind_get_vector(
|
|
short wind_index,
|
|
real animation_time,
|
|
real_vector3d *wind_vector);
|
|
void rasterizer_environment_fog_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_environment_fog_screen_draw(
|
|
struct shader const *shader,
|
|
short bitmap_index,
|
|
long dynamic_triangle_buffer_index,
|
|
long first_triangle_index,
|
|
long triangle_count,
|
|
struct vertex_buffer const *vertex_buffer);
|
|
void rasterizer_widget_set_texture(
|
|
long handle);
|
|
void rasterizer_widget_set_tint_factor(
|
|
long handle);
|
|
long rasterizer_widget_set_zbuffer_enable(
|
|
long handle,
|
|
long enable);
|
|
short rasterizer_widget_draw_sprite2d(
|
|
long dynamic_vertex_buffer_index);
|
|
long rasterizer_widget_draw_sprite3d(
|
|
long zbuffer_result);
|
|
void rasterizer_widget_submit_occlusion_test(
|
|
long handle);
|
|
long rasterizer_widget_get_occlusion_test_result(
|
|
long handle);
|
|
|
|
/* ---------- prototypes/RASTERIZER_TEXT.C */
|
|
|
|
void rasterizer_draw_string(union rectangle2d const *bounds, union rectangle2d const *clip, union point2d *cursor_reference, short height_adjust, char const *string);
|
|
|
|
/* ---------- prototypes/RASTERIZER_MEMORY_POOL.C */
|
|
|
|
boolean rasterizer_memory_pool_initialize(void);
|
|
void rasterizer_memory_pool_begin(void);
|
|
void *rasterizer_memory_alloc(const void *src, unsigned long size);
|
|
const void *rasterizer_memory_alloc_const(const void *src, unsigned long size);
|
|
void rasterizer_memory_pool_end(void);
|
|
void rasterizer_memory_pool_dispose(void);
|
|
|
|
/* ---------- prototypes/RASTERIZER_LIGHTS.C */
|
|
|
|
void rasterizer_lights_reset_for_new_map(void);
|
|
void rasterizer_lights_begin(
|
|
void);
|
|
void rasterizer_lights_end(
|
|
void);
|
|
|
|
/* ---------- prototypes/RASTERIZER_FRAME_STATISTICS.C */
|
|
|
|
void rasterizer_frame_statistics_begin(
|
|
void);
|
|
void rasterizer_frame_statistics_end(
|
|
void);
|
|
|
|
/* ---------- prototypes/RASTERIZER_TRANSPARENT_GEOMETRY.C */
|
|
|
|
void rasterizer_transparent_geometry_begin(
|
|
void);
|
|
void rasterizer_transparent_geometry_end(
|
|
void);
|
|
|
|
/* ---------- prototypes/RASTERIZER_DEBUG.C */
|
|
|
|
void rasterizer_debug_begin(
|
|
void);
|
|
void rasterizer_debug_end(
|
|
void);
|
|
|
|
/* ---------- prototypes/RASTERIZER_TEXT.C */
|
|
|
|
void rasterizer_text_set_shadow_color(
|
|
pixel32 shadow_color);
|
|
void rasterizer_text_cache_flush(
|
|
void);
|
|
void rasterizer_text_cache_dispose(
|
|
void);
|
|
|
|
/* ---------- globals */
|
|
|
|
extern real_argb_color *global_rasterizer_model_ambient_reflection_tint;
|
|
extern struct rasterizer_globals_definition rasterizer_globals;
|
|
|
|
/* comm. not sure where this should be */
|
|
struct rasterizer_frame_begin_parameters global_frame_parameters;
|
|
|
|
/* ---------- public code */
|
|
|
|
#endif // __RASTERIZER_H
|