RavEngine
Loading...
Searching...
No Matches
WGTexture.hpp
1#pragma once
2#include <RGL/Types.hpp>
3#include <RGL/Texture.hpp>
4#include <RGL/Span.hpp>
5#include <memory>
6#include <emscripten/html5_webgpu.h>
7#include <vector>
8
9namespace RGL{
10struct DeviceWG;
11
12struct TextureWG : public ITexture{
13 WGPUTextureView texture;
14 bool owning = true;
15 // default constructor, don't explicity use
16 TextureWG() : ITexture({0,0}){}
17 virtual ~TextureWG();
18
19 TextureWG(decltype(texture), const Dimension&, bool owning = false);
20 TextureWG(const std::shared_ptr<DeviceWG>, const TextureConfig& config, const untyped_span);
21 TextureWG(const std::shared_ptr<DeviceWG>, const TextureConfig& config);
22
23 TextureView GetDefaultView() const final;
24 TextureView GetViewForMip(uint32_t mip) const final;
25 virtual RGLCustomTextureViewPtr MakeCustomTextureView(const CustomTextureViewConfig& config) const;
26
27 std::vector<WGPUTextureView> mipViews;
28
29 Dimension GetSize() const;
30};
31
32}
Definition Texture.hpp:168
Definition Span.hpp:11
Definition Texture.hpp:157
Definition Texture.hpp:25
Definition Texture.hpp:138
Definition Texture.hpp:43
Definition WGTexture.hpp:12