//
// Created by Vicente Ferrari Smith on 06.03.26.
//

#ifndef V_WEBGPU_H
#define V_WEBGPU_H

#include <string_view>
#include <webgpu/webgpu.h>

struct Device {
    WGPUDevice device;
};

struct PlatformTexture {
    WGPUTextureDescriptor texture;
};

struct Queue {
    WGPUQueue queue;
};

struct Surface {
    WGPUSurface surface;
};

std::string_view toStdStringView(WGPUStringView wgpuStringView);

WGPUStringView toWgpuStringView(std::string_view stdStringView);

WGPUStringView toWgpuStringView(const char* cString);

WGPUTextureView get_next_surface_view();

void sleepForMilliseconds(unsigned int milliseconds);


#endif //V_WEBGPU_H