Files
Cesarus85--ringfall-mjolnir-vr/source/render/render_sprite.h
T

77 lines
1.5 KiB
C

/*
RENDER_SPRITE.H
header included in hcex build.
*/
#ifndef __RENDER_SPRITE_H
#define __RENDER_SPRITE_H
#pragma once
/* ---------- headers */
#include "math/real_math.h"
#include "shaders/shader_definitions.h"
/* ---------- constants */
enum build_sprites_flags
{
_build_sprites_screen_space_bit = 0,
_build_sprites_first_person_bit,
NUMBER_OF_BUILD_SPRITES_FLAGS,
};
enum build_sprite_flags
{
_build_sprite_viewer_space_bit = 0,
_build_sprite_u_mirror_bit,
_build_sprite_v_mirror_bit,
NUMBER_OF_BUILD_SPRITE_FLAGS,
};
/* ---------- structures */
struct build_sprite_data
{
long bitmap_group_index;
short maximum_sprite_count;
short screen_space;
struct shader_effect_definition const *shader;
short sprite_count;
word pad0E;
unsigned long flags;
real_point3d centroid;
short group_count;
word pad22;
byte unknown024[0x80];
};
typedef char build_sprite_data_size_assert[
sizeof(struct build_sprite_data) == 0xA4 ? 1 : -1];
/* ---------- prototypes/RENDER_SPRITE.C */
void build_sprites_begin(
struct build_sprite_data *data,
short maximum_sprite_count,
long bitmap_group_index,
struct shader_effect_definition const *shader,
unsigned long flags);
void build_sprite(
struct build_sprite_data *data,
short mode,
short sequence_index,
short sprite_index,
real_point3d const *untransformed_origin,
real_vector3d const *untransformed_direction,
real rotation,
real scale,
real_argb_color const *color,
real fade,
unsigned long flags);
void build_sprites_end(
struct build_sprite_data *data);
#endif // __RENDER_SPRITE_H