Blender V4.5
format_dds.cc File Reference
#include <algorithm>
#include "oiio/openimageio_support.hh"
#include "IMB_filetype.hh"
#include "IMB_imbuf_types.hh"
#include "BLI_math_base.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"

Go to the source code of this file.

Typedefs

using FlipBlockFunction = void (*)(uint8_t *block)

Functions

static void LoadDXTCImage (ImBuf *ibuf, Filesystem::IOMemReader &mem_reader)
void imb_init_dds ()
bool imb_is_a_dds (const uchar *mem, size_t size)
ImBufimb_load_dds (const uchar *mem, size_t size, int flags, ImFileColorSpace &r_colorspace)
static void FlipDXT1BlockFull (uint8_t *block)
static void FlipDXT1BlockHalf (uint8_t *block)
static void FlipDXT3BlockFull (uint8_t *block)
static void FlipDXT3BlockHalf (uint8_t *block)
static void FlipDXT5BlockFull (uint8_t *block)
static void FlipDXT5BlockHalf (uint8_t *block)
static void FlipDXTCImage (ImBuf *ibuf)

Detailed Description

Some portions of this file are from the Chromium project and have been adapted for Blender use when flipping DDS images to the OpenGL convention.

Definition in file format_dds.cc.

Typedef Documentation

◆ FlipBlockFunction

using FlipBlockFunction = void (*)(uint8_t *block)

Definition at line 68 of file format_dds.cc.

Function Documentation

◆ FlipDXT1BlockFull()

void FlipDXT1BlockFull ( uint8_t * block)
static

◆ FlipDXT1BlockHalf()

void FlipDXT1BlockHalf ( uint8_t * block)
static

◆ FlipDXT3BlockFull()

void FlipDXT3BlockFull ( uint8_t * block)
static

Definition at line 97 of file format_dds.cc.

References FlipDXT1BlockFull(), and FlipDXT3BlockFull().

Referenced by FlipDXT3BlockFull(), and FlipDXTCImage().

◆ FlipDXT3BlockHalf()

void FlipDXT3BlockHalf ( uint8_t * block)
static

Definition at line 123 of file format_dds.cc.

References FlipDXT1BlockHalf(), and FlipDXT3BlockHalf().

Referenced by FlipDXT3BlockHalf(), and FlipDXTCImage().

◆ FlipDXT5BlockFull()

void FlipDXT5BlockFull ( uint8_t * block)
static

Definition at line 137 of file format_dds.cc.

References FlipDXT1BlockFull(), and FlipDXT5BlockFull().

Referenced by FlipDXT5BlockFull(), and FlipDXTCImage().

◆ FlipDXT5BlockHalf()

void FlipDXT5BlockHalf ( uint8_t * block)
static

Definition at line 180 of file format_dds.cc.

References FlipDXT1BlockHalf(), and FlipDXT5BlockHalf().

Referenced by FlipDXT5BlockHalf(), and FlipDXTCImage().

◆ FlipDXTCImage()

void FlipDXTCImage ( ImBuf * ibuf)
static

Flips a DXTC image, by flipping and swapping DXTC blocks as appropriate.

Use to flip vertically to fit OpenGL convention.

Definition at line 196 of file format_dds.cc.

References data, DDSData::data, ImBuf::dds_data, FlipDXT1BlockFull(), FlipDXT1BlockHalf(), FlipDXT3BlockFull(), FlipDXT3BlockHalf(), FlipDXT5BlockFull(), FlipDXT5BlockHalf(), FlipDXTCImage(), DDSData::fourcc, FOURCC_DXT1, FOURCC_DXT3, FOURCC_DXT5, i, is_power_of_2_i(), DDSData::nummipmaps, DDSData::size, ImBuf::x, ImBuf::y, and y.

Referenced by FlipDXTCImage(), and LoadDXTCImage().

◆ imb_init_dds()

void imb_init_dds ( )

Definition at line 33 of file format_dds.cc.

References BLI_getenv(), BLI_strcasestr(), and imb_init_dds().

Referenced by imb_init_dds().

◆ imb_is_a_dds()

bool imb_is_a_dds ( const uchar * mem,
size_t size )

Definition at line 46 of file format_dds.cc.

References imb_is_a_dds(), and blender::imbuf::imb_oiio_check().

Referenced by imb_is_a_dds().

◆ imb_load_dds()

ImBuf * imb_load_dds ( const uchar * mem,
size_t size,
int flags,
ImFileColorSpace & r_colorspace )

◆ LoadDXTCImage()

void LoadDXTCImage ( ImBuf * ibuf,
Filesystem::IOMemReader & mem_reader )
static