Files
Cesarus85--mjolnir-vr/source/bitmaps/bitmap_group.h
T
Jonas VolmanandClaude Opus 5 94f7bbb80c Restore bitmap_data/bitmap_group owner types and bitmap helper prototypes; reopen five bitmap_extract parks exact
bitmap_group.h: signed depth/mipmap_count and union point2d registration_point (HCEA types, January movsx reads and whole-point copies), respelled in its four consumers. bitmaps_mipmap.h declares bitmap_get_max_mipmap_count (fixes an implicit declaration); bitmap_group_internal.h declares bitmap_group_add_bitmap (bitmap_group.h placement regressed decals by declaration count). bitmap_compress_to_mipmap takes the transparent-colour reference pointer January passes. Header renames and their consumers are one measured packet. Unparks _extract_add_bitmap, _extract_build_debug_plate, _extract_mipmaps_to_bitmap, _extract_pixels_from_mipmap, _extract_pixels_to_mipmap (+4,544 padded); re-baselines parked _bitmap_group_add_bitmap (same 992/59). Adversarially verified; 45 bitmap_group.h consumers rebuilt, 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:37:53 -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 bitmap_data;
};
/* ---------- 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