aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-07-02 22:37:02 +0200
committerLaytan Laats <laytanlaats@hotmail.com>2024-07-02 22:37:02 +0200
commit761a50e145213ea25a751b13d20b75e697a74bb6 (patch)
treefdf7d7759f5c63698d4544b1c6245bbbd596fb3b
parent5637ed9ecdd31929792c59a79d396d24b5bb0ee1 (diff)
vendor/wgpu: fix linker errors with empty project
-rw-r--r--vendor/wgpu/wgpu.odin70
-rw-r--r--vendor/wgpu/wgpu_native.odin68
2 files changed, 70 insertions, 68 deletions
diff --git a/vendor/wgpu/wgpu.odin b/vendor/wgpu/wgpu.odin
index 15d7fd61c..74df83fde 100644
--- a/vendor/wgpu/wgpu.odin
+++ b/vendor/wgpu/wgpu.odin
@@ -1636,3 +1636,73 @@ SurfaceGetCurrentTexture :: proc(surface: Surface) -> (surface_texture: SurfaceT
RawSurfaceGetCurrentTexture(surface, &surface_texture)
return
}
+
+// WGPU Native bindings
+
+BINDINGS_VERSION :: [4]u8{0, 19, 4, 1}
+BINDINGS_VERSION_STRING :: "0.19.4.1"
+
+when ODIN_OS != .JS {
+ @(private="file", init)
+ wgpu_native_version_check :: proc() {
+ v := (transmute([4]u8)GetVersion()).wzyx
+
+ if v != BINDINGS_VERSION {
+ buf: [1024]byte
+ n := copy(buf[:], "wgpu-native version mismatch: ")
+ n += copy(buf[n:], "bindings are for version ")
+ n += copy(buf[n:], BINDINGS_VERSION_STRING)
+ n += copy(buf[n:], ", but a different version is linked")
+ panic(string(buf[:n]))
+ }
+ }
+
+ @(link_prefix="wgpu")
+ foreign libwgpu {
+ @(link_name="wgpuGenerateReport")
+ RawGenerateReport :: proc(instance: Instance, report: ^GlobalReport) ---
+ @(link_name="wgpuInstanceEnumerateAdapters")
+ RawInstanceEnumerateAdapters :: proc(instance: Instance, /* NULLABLE */ options: /* const */ ^InstanceEnumerateAdapterOptions, adapters: [^]Adapter) -> uint ---
+
+ @(link_name="wgpuQueueSubmitForIndex")
+ RawQueueSubmitForIndex :: proc(queue: Queue, commandCount: uint, commands: [^]CommandBuffer) -> SubmissionIndex ---
+
+ // Returns true if the queue is empty, or false if there are more queue submissions still in flight.
+ DevicePoll :: proc(device: Device, wait: b32, /* NULLABLE */ wrappedSubmissionIndex: /* const */ ^WrappedSubmissionIndex = nil) -> b32 ---
+
+ SetLogCallback :: proc(callback: LogCallback, userdata: rawptr) ---
+
+ SetLogLevel :: proc(level: LogLevel) ---
+
+ GetVersion :: proc() -> u32 ---
+
+ RenderPassEncoderSetPushConstants :: proc(encoder: RenderPassEncoder, stages: ShaderStageFlags, offset: u32, sizeBytes: u32, data: cstring) ---
+
+ RenderPassEncoderMultiDrawIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
+ RenderPassEncoderMultiDrawIndexedIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
+
+ RenderPassEncoderMultiDrawIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
+ RenderPassEncoderMultiDrawIndexedIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
+
+ ComputePassEncoderBeginPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---
+ ComputePassEncoderEndPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder) ---
+ RenderPassEncoderBeginPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---
+ RenderPassEncoderEndPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder) ---
+ }
+
+ GenerateReport :: proc(instance: Instance) -> (report: GlobalReport) {
+ RawGenerateReport(instance, &report)
+ return
+ }
+
+ InstanceEnumerateAdapters :: proc(instance: Instance, options: ^InstanceEnumerateAdapterOptions = nil, allocator := context.allocator) -> (adapters: []Adapter) {
+ count := RawInstanceEnumerateAdapters(instance, options, nil)
+ adapters = make([]Adapter, count, allocator)
+ RawInstanceEnumerateAdapters(instance, options, raw_data(adapters))
+ return
+ }
+
+ QueueSubmitForIndex :: proc(queue: Queue, commands: []CommandBuffer) -> SubmissionIndex {
+ return RawQueueSubmitForIndex(queue, len(commands), raw_data(commands))
+ }
+}
diff --git a/vendor/wgpu/wgpu_native.odin b/vendor/wgpu/wgpu_native.odin
deleted file mode 100644
index 7c106a452..000000000
--- a/vendor/wgpu/wgpu_native.odin
+++ /dev/null
@@ -1,68 +0,0 @@
-//+build !js
-package wgpu
-
-BINDINGS_VERSION :: [4]u8{0, 19, 4, 1}
-BINDINGS_VERSION_STRING :: "0.19.4.1"
-
-@(private="file", init)
-wgpu_native_version_check :: proc() {
- v := (transmute([4]u8)GetVersion()).wzyx
-
- if v != BINDINGS_VERSION {
- buf: [1024]byte
- n := copy(buf[:], "wgpu-native version mismatch: ")
- n += copy(buf[n:], "bindings are for version ")
- n += copy(buf[n:], BINDINGS_VERSION_STRING)
- n += copy(buf[n:], ", but a different version is linked")
- panic(string(buf[:n]))
- }
-}
-
-@(link_prefix="wgpu")
-foreign {
- @(link_name="wgpuGenerateReport")
- RawGenerateReport :: proc(instance: Instance, report: ^GlobalReport) ---
- @(link_name="wgpuInstanceEnumerateAdapters")
- RawInstanceEnumerateAdapters :: proc(instance: Instance, /* NULLABLE */ options: /* const */ ^InstanceEnumerateAdapterOptions, adapters: [^]Adapter) -> uint ---
-
- @(link_name="wgpuQueueSubmitForIndex")
- RawQueueSubmitForIndex :: proc(queue: Queue, commandCount: uint, commands: [^]CommandBuffer) -> SubmissionIndex ---
-
- // Returns true if the queue is empty, or false if there are more queue submissions still in flight.
- DevicePoll :: proc(device: Device, wait: b32, /* NULLABLE */ wrappedSubmissionIndex: /* const */ ^WrappedSubmissionIndex = nil) -> b32 ---
-
- SetLogCallback :: proc(callback: LogCallback, userdata: rawptr) ---
-
- SetLogLevel :: proc(level: LogLevel) ---
-
- GetVersion :: proc() -> u32 ---
-
- RenderPassEncoderSetPushConstants :: proc(encoder: RenderPassEncoder, stages: ShaderStageFlags, offset: u32, sizeBytes: u32, data: cstring) ---
-
- RenderPassEncoderMultiDrawIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
- RenderPassEncoderMultiDrawIndexedIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
-
- RenderPassEncoderMultiDrawIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
- RenderPassEncoderMultiDrawIndexedIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
-
- ComputePassEncoderBeginPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---
- ComputePassEncoderEndPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder) ---
- RenderPassEncoderBeginPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---
- RenderPassEncoderEndPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder) ---
-}
-
-GenerateReport :: proc(instance: Instance) -> (report: GlobalReport) {
- RawGenerateReport(instance, &report)
- return
-}
-
-InstanceEnumerateAdapters :: proc(instance: Instance, options: ^InstanceEnumerateAdapterOptions = nil, allocator := context.allocator) -> (adapters: []Adapter) {
- count := RawInstanceEnumerateAdapters(instance, options, nil)
- adapters = make([]Adapter, count, allocator)
- RawInstanceEnumerateAdapters(instance, options, raw_data(adapters))
- return
-}
-
-QueueSubmitForIndex :: proc(queue: Queue, commands: []CommandBuffer) -> SubmissionIndex {
- return RawQueueSubmitForIndex(queue, len(commands), raw_data(commands))
-}