Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ fn linkLibraries(b: *std.Build, exe: *std.Build.Step.Compile, useLocalDeps: bool
exe.root_module.addObjectFile(subPath.path(b, libName(b, "SPIRV-Tools", t)));
exe.root_module.addObjectFile(subPath.path(b, libName(b, "SPIRV-Tools-opt", t)));

const translate_c = b.addTranslateC(.{
.root_source_file = b.path("src/c.h"),
.target = target,
.optimize = optimize,
});
translate_c.addIncludePath(headersDeps.path("include"));

exe.root_module.addImport("c", translate_c.createModule());

if (t.os.tag == .macos) {
const moltenVkLibInstall = b.addInstallFile(subPath.path(b, "libMoltenVK.dylib"), "bin/Cubyz.app/Contents/Frameworks/libMoltenVK.dylib");
const moltenVkJsonInstall = b.addInstallFile(subPath.path(b, "MoltenVK_icd.json"), "bin/Cubyz.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json");
Expand Down
3 changes: 2 additions & 1 deletion src/block_entity.zig
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const Chunk = main.chunk.Chunk;
const ChunkPosition = main.chunk.ChunkPosition;
const getIndex = main.chunk.getIndex;
const graphics = main.graphics;
const c = graphics.c;
const server = main.server;
const User = server.User;
const mesh_storage = main.renderer.mesh_storage;
Expand All @@ -18,6 +17,8 @@ const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec3i = vec.Vec3i;

const c = @import("c");

const UpdateEvent = union(enum) {
remove: void,
update: *BinaryReader,
Expand Down
11 changes: 6 additions & 5 deletions src/blocks.zig
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ const sbb = main.server.terrain.structure_building_blocks;
const blueprint = main.blueprint;
const Assets = main.assets.Assets;

const c = @import("c");

pub const maxBlockCount: usize = 65536; // 16 bit limit

pub const BlockDrop = struct {
Expand Down Expand Up @@ -837,10 +839,10 @@ pub const meshes = struct { // MARK: meshes

pub fn preProcessAnimationData(time: u32) void {
animationComputePipeline.bind();
graphics.c.glUniform1ui(animationUniforms.time, time);
graphics.c.glUniform1ui(animationUniforms.size, @intCast(animationData.len));
graphics.c.glDispatchCompute(@intCast(@divFloor(animationData.len + 63, 64)), 1, 1); // TODO: Replace with @divCeil once available
graphics.c.glMemoryBarrier(graphics.c.GL_SHADER_STORAGE_BARRIER_BIT);
c.glUniform1ui(animationUniforms.time, time);
c.glUniform1ui(animationUniforms.size, @intCast(animationData.len));
c.glDispatchCompute(@intCast(@divFloor(animationData.len + 63, 64)), 1, 1); // TODO: Replace with @divCeil once available
c.glMemoryBarrier(c.GL_SHADER_STORAGE_BARRIER_BIT);
}

fn finishTextureLoading() void {
Expand All @@ -864,7 +866,6 @@ pub const meshes = struct { // MARK: meshes
}

pub fn generateTextureArray() void {
const c = graphics.c;
blockTextureArray.generate(blockTextures.items, true, true);
c.glTexParameterf(c.GL_TEXTURE_2D_ARRAY, c.GL_TEXTURE_MAX_ANISOTROPY, @floatFromInt(main.settings.anisotropicFiltering));
emissionTextureArray.generate(emissionTextures.items, true, false);
Expand Down
27 changes: 27 additions & 0 deletions src/c.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// used for text rendering and layouting
#include <freetype/ftadvanc.h>
#include <freetype/ftbbox.h>
#include <freetype/ftbitmap.h>
#include <freetype/ftcolor.h>
#include <freetype/ftlcdfil.h>
#include <freetype/ftsizes.h>
#include <freetype/ftstroke.h>
#include <freetype/fttrigon.h>
#include <freetype/ftsynth.h>
#include <hb.h>
#include <hb-ft.h>

// used for rendering, windowing and inputs
#include <glad/gl.h>
// NOTE(blackedout): glad is currently not used on macOS, so use Vulkan header from the Vulkan-Headers repository instead
#ifdef __MACH__
#include <vulkan/vulkan.h>
#include <vulkan/vulkan_beta.h>
#else
#include <glad/vulkan.h>
#endif
#include <GLFW/glfw3.h>

// used for reading and writing image files
#include <stb/stb_image.h>
#include <stb/stb_image_write.h>
4 changes: 2 additions & 2 deletions src/client/Entity.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const c = @import("c");

interpolatedValues: utils.GenericInterpolation(6) = undefined,
_interpolationPos: [6]f64 = undefined,
Expand Down
4 changes: 2 additions & 2 deletions src/client/entity_manager.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const c = @import("c");

var lastTime: i16 = 0;
var timeDifference: utils.TimeDifference = utils.TimeDifference{};
Expand Down
9 changes: 4 additions & 5 deletions src/entityComponent/_template.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const BinaryWriter = utils.BinaryWriter;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const Vec3i = vec.Vec3i;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const BinaryWriter = main.utils.BinaryWriter;

const blocks = main.blocks;
const chunk_zig = main.chunk;
const ServerChunk = chunk_zig.ServerChunk;
Expand All @@ -29,6 +26,8 @@ const items = main.items;
const ItemStack = items.ItemStack;
const random = main.random;

const c = @import("c");

pub var entityComponentID: main.entity.EntityComponentId = undefined;
pub const entityComponentVersion = 0;

Expand Down
9 changes: 4 additions & 5 deletions src/entityComponent/bag.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const BinaryWriter = utils.BinaryWriter;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const Vec3i = vec.Vec3i;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const BinaryWriter = main.utils.BinaryWriter;

const blocks = main.blocks;
const chunk_zig = main.chunk;
const ServerChunk = chunk_zig.ServerChunk;
Expand All @@ -29,6 +26,8 @@ const items = main.items;
const ItemStack = items.ItemStack;
const random = main.random;

const c = @import("c");

pub var entityComponentID: main.entity.EntityComponentId = undefined;
pub const entityComponentVersion = 0;

Expand Down
4 changes: 2 additions & 2 deletions src/entityComponent/model.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const c = @import("c");

pub var entityComponentID: main.entity.EntityComponentId = undefined;
pub const entityComponentVersion = 0;
Expand Down
4 changes: 2 additions & 2 deletions src/entityModel.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const c = @import("c");

const gltf = @cImport({
@cInclude("cgltf.h");
Expand Down
9 changes: 4 additions & 5 deletions src/entitySystem/_template.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const BinaryWriter = utils.BinaryWriter;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const Vec3i = vec.Vec3i;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const BinaryWriter = main.utils.BinaryWriter;

const blocks = main.blocks;
const chunk_zig = main.chunk;
const ServerChunk = chunk_zig.ServerChunk;
Expand All @@ -29,6 +26,8 @@ const items = main.items;
const ItemStack = items.ItemStack;
const random = main.random;

const c = @import("c");

const entityComponent = main.entityComponent;

// ############################# Client only stuff ################################
Expand Down
10 changes: 4 additions & 6 deletions src/entitySystem/modelRenderer.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,19 @@ const main = @import("main");
const chunk = main.chunk;
const game = main.game;
const graphics = main.graphics;
const c = graphics.c;
const ZonElement = main.ZonElement;
const renderer = main.renderer;
const settings = main.settings;
const utils = main.utils;
const BinaryReader = utils.BinaryReader;
const BinaryWriter = utils.BinaryWriter;
const vec = main.vec;
const Mat4f = vec.Mat4f;
const Vec3d = vec.Vec3d;
const Vec3f = vec.Vec3f;
const Vec4f = vec.Vec4f;
const Vec3i = vec.Vec3i;
const NeverFailingAllocator = main.heap.NeverFailingAllocator;

const BinaryReader = main.utils.BinaryReader;
const BinaryWriter = main.utils.BinaryWriter;

const blocks = main.blocks;
const chunk_zig = main.chunk;
const ServerChunk = chunk_zig.ServerChunk;
Expand All @@ -28,9 +25,10 @@ const ServerWorld = main.server.ServerWorld;
const items = main.items;
const ItemStack = items.ItemStack;
const random = main.random;

const entityComponent = main.entity.components;

const c = @import("c");

// ############################# Client only stuff ################################
pub const client = struct {
var pipeline: graphics.Pipeline = undefined;
Expand Down
Loading
Loading