49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
// 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<uint8>& get_comp_data() const { return m_comp_data; }
|
|
virtual crnlib::vector<uint8>& get_comp_data() { return m_comp_data; }
|
|
|
|
private:
|
|
mipmapped_texture m_src_tex;
|
|
mipmapped_texture m_packed_tex;
|
|
|
|
crnlib::vector<uint8> 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
|