#ifndef HYDRACREATEUNBOUNDTEXTURETASK #define HYDRACREATEUNBOUNDTEXTURETASK #include "../HydraTask.h" #include "../../engine/HydraEngine.h" #include "../../buffer/HydraTextureBufferManager.h" class HydraCreateUnBoundTextureTask : public HydraTask { private: std::string m_texture_name; uint32_t m_width; uint32_t m_height; uint32_t m_internal_format; uint32_t m_format; uint32_t m_data_type; uint32_t m_mip_levels; uint32_t m_min_filter; uint32_t m_mag_filter; uint32_t m_levels; void *m_data; HydraID *m_texture_id; protected: public: virtual void Process() override { *m_texture_id = GetEngine()->TextureBufferManager()->CreateTexture(m_texture_name, m_width, m_height, m_internal_format, m_min_filter, m_mag_filter, m_levels, m_format, m_data_type, m_mip_levels, m_data); } void Initialise(std::string texture_name, uint32_t width, uint32_t height, uint32_t internal_format, uint32_t format, uint32_t min_filter, uint32_t mag_filter, uint32_t levels, uint32_t data_type, uint32_t mip_levels, void *data, HydraID *texture_id) { m_texture_name = texture_name; m_width = width; m_height = height; m_internal_format = internal_format; m_format = format; m_data_type = data_type; m_mip_levels = mip_levels; m_data = data; m_texture_id = texture_id; m_min_filter = min_filter; m_mag_filter = mag_filter; m_levels = levels; } }; #endif /* HYDRACREATEUNBOUNDTEXTURETASK */