mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 19:19:52 +02:00
feat: read stream
This commit is contained in:
1 parent
016fe1c3d3
commit
93e405c370
11 files changed
+36
-36
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import { times } from 'lodash';
|
||||
import { BufferStream } from './buffer';
|
||||
import { ReadStream } from './buffer';
|
||||
|
||||
enum ValueType {
|
||||
Null,
|
||||
@@ -29,7 +29,7 @@ type Value =
|
||||
| Value[]
|
||||
| { [key: string]: Value };
|
||||
|
||||
export class BkonStream extends BufferStream {
|
||||
export class BkonReadStream extends ReadStream {
|
||||
bkon() {
|
||||
this.magic();
|
||||
const header = this.header();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export class BufferStream {
|
||||
export class ReadStream {
|
||||
public index = 0;
|
||||
constructor(public buffer: Buffer) {}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { times } from 'lodash';
|
||||
import { Vector3Tuple, Vector4Tuple } from 'three';
|
||||
import { WindowsStream } from './windows';
|
||||
import { WindowsReadStream } from './windows';
|
||||
|
||||
enum DxgiFormat {
|
||||
UNKNOWN = 0,
|
||||
@@ -171,7 +171,7 @@ enum DdsCaps2 {
|
||||
VOLUME = 0x200000,
|
||||
}
|
||||
|
||||
export class DdsStream extends WindowsStream {
|
||||
export class DdsReadStream extends WindowsReadStream {
|
||||
async dds() {
|
||||
this.magicNumber();
|
||||
const header = this.header();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { clamp, isEqual, times } from 'lodash';
|
||||
import { BufferStream } from './buffer';
|
||||
import { ReadStream } from './buffer';
|
||||
|
||||
export enum PvrFlags {
|
||||
NoFlag = 0,
|
||||
@@ -91,7 +91,7 @@ enum ResolvedBitRatePixelFormat {
|
||||
R5G6B5A0,
|
||||
}
|
||||
|
||||
export class PvrStream extends BufferStream {
|
||||
export class PvrReadStream extends ReadStream {
|
||||
pvr() {
|
||||
const header = this.header();
|
||||
this.metadata();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Vector3Tuple, Vector4Tuple } from 'three';
|
||||
import { ScpgStream } from './scpg';
|
||||
import { ScpgReadStream } from './scpg';
|
||||
|
||||
export interface SC2 {
|
||||
'#dataNodes': DataNode[];
|
||||
@@ -288,7 +288,7 @@ interface SceneComponents {
|
||||
count: number;
|
||||
}
|
||||
|
||||
export class Sc2Stream extends ScpgStream {
|
||||
export class Sc2ReadStream extends ScpgReadStream {
|
||||
header() {
|
||||
return {
|
||||
name: this.ascii(4),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ScpgStream, VertexAttribute } from './scpg';
|
||||
import { ScpgReadStream, VertexAttribute } from './scpg';
|
||||
|
||||
interface PolygonGroupRaw {
|
||||
'##name': 'PolygonGroup';
|
||||
@@ -50,7 +50,7 @@ export const vertexAttributeVectorSizes = {
|
||||
[VertexAttribute.JOINTWEIGHT]: 4,
|
||||
} as const;
|
||||
|
||||
export class ScgStream extends ScpgStream {
|
||||
export class ScgReadStream extends ScpgReadStream {
|
||||
header() {
|
||||
return {
|
||||
name: this.ascii(4),
|
||||
@@ -71,7 +71,7 @@ export class ScgStream extends ScpgStream {
|
||||
}
|
||||
|
||||
polygonGroupsRaw.forEach((polygonGroupRaw) => {
|
||||
const indicesStream = new ScpgStream(polygonGroupRaw.indices);
|
||||
const indicesStream = new ScpgReadStream(polygonGroupRaw.indices);
|
||||
const indices: number[] = [];
|
||||
|
||||
for (let index = 0; index < polygonGroupRaw.indexCount; index++) {
|
||||
@@ -82,9 +82,9 @@ export class ScgStream extends ScpgStream {
|
||||
);
|
||||
}
|
||||
|
||||
const verticesStream = new ScpgStream(polygonGroupRaw.vertices);
|
||||
const verticesStream = new ScpgReadStream(polygonGroupRaw.vertices);
|
||||
const vertices: BlitzkriegVertex[] = [];
|
||||
const { format, stride } = ScgStream.parseVertexFormat(
|
||||
const { format, stride } = ScgReadStream.parseVertexFormat(
|
||||
polygonGroupRaw.vertexFormat,
|
||||
);
|
||||
const strideBasedSize = stride * polygonGroupRaw.vertexCount;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { times } from 'lodash';
|
||||
import { BufferStream } from './buffer';
|
||||
import { ReadStream } from './buffer';
|
||||
|
||||
enum KAType {
|
||||
NONE = 0,
|
||||
@@ -55,7 +55,7 @@ export enum VertexAttribute {
|
||||
CUBETEXCOORD3 = 19,
|
||||
}
|
||||
|
||||
export class ScpgStream extends BufferStream {
|
||||
export class ScpgReadStream extends ReadStream {
|
||||
vectorN(size: number) {
|
||||
return times(size, () => this.float32());
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { BufferStream } from './buffer';
|
||||
import { ReadStream } from './buffer';
|
||||
|
||||
export class WindowsStream extends BufferStream {
|
||||
export class WindowsReadStream extends ReadStream {
|
||||
dword() {
|
||||
return this.uint32();
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user