Webgpu renderer

This commit is contained in:
2026-09-24 18:41:52 -03:00
parent a37ffd9127
commit 14aba6b129
7 changed files with 398 additions and 213 deletions
+7 -5
View File
@@ -7,7 +7,7 @@ import { ClientWorld } from "../client_world.ts";
import { generate_chunk } from "../generation.ts";
import { ItemStack } from "../inventory.ts";
import { PlayerComponent } from "../player.ts";
import { gl, Texture } from "../renderer/mod.ts";
import { destroy_vertex_buffer, Texture } from "../renderer/mod.ts";
import { Camera } from "./camera.ts";
export interface BlockData<T = unknown> {
@@ -34,9 +34,9 @@ export interface Chunk {
blocks_data: BlockData[];
generated: boolean;
dirty: boolean;
opaque_vertex_buffer?: WebGLBuffer;
opaque_vertex_buffer?: GPUBuffer;
opaque_vertex_count?: number;
transparent_vertex_buffer?: WebGLBuffer;
transparent_vertex_buffer?: GPUBuffer;
transparent_vertex_count?: number;
}
@@ -296,10 +296,12 @@ export class Dimension extends Component {
delete_chunk_mesh(chunk: Chunk) {
if (chunk.opaque_vertex_buffer) {
gl.deleteBuffer(chunk.opaque_vertex_buffer);
destroy_vertex_buffer(chunk.opaque_vertex_buffer);
chunk.opaque_vertex_buffer = undefined;
}
if (chunk.transparent_vertex_buffer) {
gl.deleteBuffer(chunk.transparent_vertex_buffer);
destroy_vertex_buffer(chunk.transparent_vertex_buffer);
chunk.transparent_vertex_buffer = undefined;
}
}