70 lines
1.8 KiB
C++
70 lines
1.8 KiB
C++
#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 */
|