// File: crn_comp.h // See Copyright Notice and license at the end of inc/crnlib.h #pragma once #include "crn_comp.h" #include "crn_mipmapped_texture.h" #include "crn_texture_comp.h" namespace crnlib { class dds_comp : public itexture_comp { CRNLIB_NO_COPY_OR_ASSIGNMENT_OP(dds_comp); public: dds_comp(); virtual ~dds_comp(); virtual const char *get_ext() const { return "DDS"; } virtual bool compress_init(const crn_comp_params& params); virtual bool compress_pass(const crn_comp_params& params, float *pEffective_bitrate); virtual void compress_deinit(); virtual const crnlib::vector& get_comp_data() const { return m_comp_data; } virtual crnlib::vector& get_comp_data() { return m_comp_data; } private: mipmapped_texture m_src_tex; mipmapped_texture m_packed_tex; crnlib::vector m_comp_data; const crn_comp_params* m_pParams; pixel_format m_pixel_fmt; dxt_image::pack_params m_pack_params; task_pool m_task_pool; qdxt1_params m_q1_params; qdxt5_params m_q5_params; mipmapped_texture::qdxt_state *m_pQDXT_state; void clear(); bool create_dds_tex(mipmapped_texture &dds_tex); bool convert_to_dxt(const crn_comp_params& params); }; } // namespace crnlib