Webgpu renderer
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user