Files
Cesarus85--mjolnir-vr/source/bitmaps/bitmap_group.h
T
Jonas Volman 4f4c85021d Reconcile Lane C with canonical house-rule audit
Integrate verified source and data progress; exclude unproven COMMON ownership, held UB/asm forms, and address-named data credit. Stable sweep: 23 exact functions gained, zero lost.
2026-09-22 23:12:40 -07:00

109 lines
2.0 KiB
C

/*
BITMAP_GROUP.H
header included in hcex build.
*/
#ifndef __BITMAP_GROUP_H
#define __BITMAP_GROUP_H
#pragma once
/* ---------- headers */
#include "math/real_math.h"
#include "tag_files/tag_groups.h"
/* ---------- constants */
enum
{
BITMAP_GROUP_TAG = 'bitm',
};
/* ---------- macros */
#define bitmap_group_get(index) ((struct bitmap_group *)tag_get(BITMAP_GROUP_TAG, (index)))
/* ---------- structures */
struct bitmap_data
{
unsigned long signature;
short width;
short height;
short depth;
short type;
short format;
unsigned short flags;
union point2d registration_point;
short mipmap_count;
unsigned short pixel_data;
unsigned long pixels_offset;
unsigned long pixel_data_size;
unsigned long bitmap_tag_index;
void *bitmap_data_pointer;
void *hardware_format;
void *base_address;
};
struct bitmap_group_sprite
{
short bitmap_index;
short bitmap_pad;
long unused;
real_rectangle2d bounds;
real_point2d registration_point;
};
struct bitmap_group_sequence
{
char name[32];
short first_bitmap_index;
short bitmap_count;
long unused[4];
struct tag_block sprites;
};
typedef char bitmap_group_sprite_size_assert[
sizeof(struct bitmap_group_sprite) == 0x20 ? 1 : -1];
typedef char bitmap_group_sequence_size_assert[
sizeof(struct bitmap_group_sequence) == 0x40 ? 1 : -1];
struct bitmap_group
{
short type;
short format;
short usage;
unsigned short flags;
real detail_fade;
real sharpen_amount;
real bump_height;
short sprite_budget_size;
unsigned short sprite_budget_count;
short import_width;
short import_height;
struct tag_data import_bitmap;
struct tag_data pixel_data;
real smoothing_filter_size;
real alpha_bias;
short mipmap_count;
short sprite_usage;
short sprite_spacing;
unsigned short unused;
struct tag_block sequences;
struct tag_block bitmaps;
};
/* ---------- prototypes/BITMAP_GROUP.C */
struct bitmap_data *bitmap_group_get_bitmap_from_sequence(
long bitmap_group_index,
short sequence_index,
short frame_index);
/* ---------- globals */
/* ---------- public code */
#endif // __BITMAP_GROUP_H