#pragma once

#include <psemek/wgpu/texture.hpp>
#include <psemek/wgpu/buffer.hpp>
#include <psemek/math/point.hpp>

namespace psemek::wgpu
{

	struct texel_copy_texture_info
	{
		struct texture texture;
		std::uint32_t mip_level = 0;
		math::point<std::uint32_t, 3> origin = {0, 0, 0};
		texture::aspect aspect = texture::aspect::all;
	};

	struct texel_copy_buffer_layout
	{
		std::uint64_t offset = 0;
		std::uint32_t bytes_per_row;
		std::uint32_t rows_per_image;
	};

	struct texel_copy_buffer_info
	{
		texel_copy_buffer_layout layout;
		struct buffer buffer;
	};

}
