Table of Contents

Namespace WoWLib.Formats.M2.Skin

Classes

M2Batch

An M2 skin render batch (texture unit): submesh + material + the lookup bases the shaders consume.

M2ShadowBatch

An M2 skin shadow batch (Cata+); the client can also generate these from the render batches.

M2SkinProfile

One skin profile (a whole LOD's sections and batches). Abstract over the client version; construct a concrete version with M2SkinProfile.ForVersion / for_version.

M2SkinProfile.Era

The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.

M2SkinProfileCataPlus

One LOD view: local vertex/bone lookups into the model, submeshes and render batches; embedded in the model pre-WotLK, an own .skin file after.

M2SkinProfileTbcToWotlk

One LOD view: local vertex/bone lookups into the model, submeshes and render batches; embedded in the model pre-WotLK, an own .skin file after.

M2SkinProfileVanilla

One LOD view: local vertex/bone lookups into the model, submeshes and render batches; embedded in the model pre-WotLK, an own .skin file after.

M2SkinSection

One renderable geometry section (submesh). Abstract over the client version; construct a concrete version with M2SkinSection.ForVersion / for_version.

M2SkinSection.Era

The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.

M2SkinSectionTbcPlus

A skin submesh (TBC+): adds the sort center and radius.

M2SkinSectionVanilla

A skin submesh, vanilla layout (no sort data yet).

Skin

An external model LOD view (.skin file), abstract over the client version. Construct a concrete version with Skin.for_version(expansion); the per-version Skin* classes are subclasses. See https://wowdev.wiki/M2/.skin.

Skin.Era

The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.

SkinCataPlus

One external LOD view (.skin file, WotLK+): the 'SKIN' magic plus the profile tables (local lookups, submeshes, render batches). See https://wowdev.wiki/M2/.skin.

SkinWotlk

One external LOD view (.skin file, WotLK+): the 'SKIN' magic plus the profile tables (local lookups, submeshes, render batches). See https://wowdev.wiki/M2/.skin.

Structs

M2Batch.Data

A blittable value twin of the NATIVE layout (size 24): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.

M2ShadowBatch.Data

A blittable value twin of the NATIVE layout (size 12): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.

M2SkinSectionTbcPlus.Data

A blittable value twin of the NATIVE layout (size 48): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.

M2SkinSectionVanilla.Data

A blittable value twin of the NATIVE layout (size 32): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.