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

Definition at line 71 of file format_dds.cc.

Referenced by FlipDXT3BlockFull(), FlipDXT5BlockFull(), and FlipDXTCImage().

◆ FlipDXT1BlockHalf()

void FlipDXT1BlockHalf ( uint8_t * block)
static

Definition at line 88 of file format_dds.cc.

Referenced by FlipDXT3BlockHalf(), FlipDXT5BlockHalf(), and FlipDXTCImage().

◆ FlipDXT3BlockFull()

void FlipDXT3BlockFull ( uint8_t * block)
static

Definition at line 97 of file format_dds.cc.

References FlipDXT1BlockFull().

Referenced by FlipDXTCImage().

◆ FlipDXT3BlockHalf()

void FlipDXT3BlockHalf ( uint8_t * block)
static

Definition at line 123 of file format_dds.cc.

References FlipDXT1BlockHalf().

Referenced by FlipDXTCImage().

◆ FlipDXT5BlockFull()

void FlipDXT5BlockFull ( uint8_t * block)
static

Definition at line 137 of file format_dds.cc.

References FlipDXT1BlockFull().

Referenced by FlipDXTCImage().

◆ FlipDXT5BlockHalf()

void FlipDXT5BlockHalf ( uint8_t * block)
static

Definition at line 180 of file format_dds.cc.

References FlipDXT1BlockHalf().

Referenced by 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(), 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 LoadDXTCImage().

◆ imb_init_dds()

void imb_init_dds ( )

Definition at line 33 of file format_dds.cc.

References BLI_getenv(), and BLI_strcasestr().

◆ 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 blender::imbuf::imb_oiio_check(), and size().

◆ 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