renderer-mvp/refactor-tech #50
|
@ -2,8 +2,6 @@ const Queue = @import("./Queue.zig");
|
||||||
|
|
||||||
const coral = @import("coral");
|
const coral = @import("coral");
|
||||||
|
|
||||||
const draw_2d = @import("./shaders/draw_2d.glsl.zig");
|
|
||||||
|
|
||||||
const ext = @import("../ext.zig");
|
const ext = @import("../ext.zig");
|
||||||
|
|
||||||
const gfx = @import("../gfx.zig");
|
const gfx = @import("../gfx.zig");
|
||||||
|
@ -49,6 +47,8 @@ const Render = struct {
|
||||||
};
|
};
|
||||||
|
|
||||||
const instances_per_buffer = 512;
|
const instances_per_buffer = 512;
|
||||||
|
|
||||||
|
const shader = @import("./shaders/instance_2d.glsl.zig");
|
||||||
};
|
};
|
||||||
|
|
||||||
const Resource = union (enum) {
|
const Resource = union (enum) {
|
||||||
|
@ -101,42 +101,42 @@ const Render = struct {
|
||||||
.attrs = get: {
|
.attrs = get: {
|
||||||
var attrs = [_]sokol.gfx.VertexAttrState{.{}} ** 16;
|
var attrs = [_]sokol.gfx.VertexAttrState{.{}} ** 16;
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_mesh_xy] = .{
|
attrs[Instance2D.shader.ATTR_vs_mesh_xy] = .{
|
||||||
.format = .FLOAT2,
|
.format = .FLOAT2,
|
||||||
.buffer_index = Instance2D.buffer_indices.mesh,
|
.buffer_index = Instance2D.buffer_indices.mesh,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_mesh_uv] = .{
|
attrs[Instance2D.shader.ATTR_vs_mesh_uv] = .{
|
||||||
.format = .FLOAT2,
|
.format = .FLOAT2,
|
||||||
.buffer_index = Instance2D.buffer_indices.mesh,
|
.buffer_index = Instance2D.buffer_indices.mesh,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_xbasis] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_xbasis] = .{
|
||||||
.format = .FLOAT2,
|
.format = .FLOAT2,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_ybasis] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_ybasis] = .{
|
||||||
.format = .FLOAT2,
|
.format = .FLOAT2,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_origin] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_origin] = .{
|
||||||
.format = .FLOAT2,
|
.format = .FLOAT2,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_tint] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_tint] = .{
|
||||||
.format = .UBYTE4N,
|
.format = .UBYTE4N,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_depth] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_depth] = .{
|
||||||
.format = .FLOAT,
|
.format = .FLOAT,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
|
||||||
attrs[draw_2d.ATTR_vs_instance_rect] = .{
|
attrs[Instance2D.shader.ATTR_vs_instance_rect] = .{
|
||||||
.format = .FLOAT4,
|
.format = .FLOAT4,
|
||||||
.buffer_index = Instance2D.buffer_indices.instance,
|
.buffer_index = Instance2D.buffer_indices.instance,
|
||||||
};
|
};
|
||||||
|
@ -153,7 +153,7 @@ const Render = struct {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
.shader = sokol.gfx.makeShader(draw_2d.draw2dShaderDesc(sokol.gfx.queryBackend())),
|
.shader = sokol.gfx.makeShader(Instance2D.shader.draw2dShaderDesc(sokol.gfx.queryBackend())),
|
||||||
.index_type = .UINT16,
|
.index_type = .UINT16,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ const Render = struct {
|
||||||
|
|
||||||
sokol.gfx.applyPipeline(self.instance_2d_pipeline);
|
sokol.gfx.applyPipeline(self.instance_2d_pipeline);
|
||||||
|
|
||||||
sokol.gfx.applyUniforms(.VS, draw_2d.SLOT_Screen, sokol.gfx.asRange(&draw_2d.Screen{
|
sokol.gfx.applyUniforms(.VS, Instance2D.shader.SLOT_Screen, sokol.gfx.asRange(&Instance2D.shader.Screen{
|
||||||
.screen_size = .{@floatFromInt(frame.width), @floatFromInt(frame.height)},
|
.screen_size = .{@floatFromInt(frame.width), @floatFromInt(frame.height)},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue