Files
test2/source/blender/blenkernel/BKE_image_format.h
Sergey Sharybin c1bc70b711 Cleanup: Add a copyright notice to files and use SPDX format
A lot of files were missing copyright field in the header and
the Blender Foundation contributed to them in a sense of bug
fixing and general maintenance.

This change makes it explicit that those files are at least
partially copyrighted by the Blender Foundation.

Note that this does not make it so the Blender Foundation is
the only holder of the copyright in those files, and developers
who do not have a signed contract with the foundation still
hold the copyright as well.

Another aspect of this change is using SPDX format for the
header. We already used it for the license specification,
and now we state it for the copyright as well, following the
FAQ:

    https://reuse.software/faq/
2023-05-31 16:19:06 +02:00

120 lines
4.3 KiB
C

/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
*
* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/** \file
* \ingroup bke
*/
#ifdef __cplusplus
extern "C" {
#endif
struct BlendDataReader;
struct BlendWriter;
struct ImbFormatOptions;
struct ImageFormatData;
struct ImBuf;
struct Scene;
/* Init/Copy/Free */
void BKE_image_format_init(struct ImageFormatData *imf, const bool render);
void BKE_image_format_copy(struct ImageFormatData *imf_dst, const struct ImageFormatData *imf_src);
void BKE_image_format_free(struct ImageFormatData *imf);
void BKE_image_format_blend_read_data(struct BlendDataReader *reader, struct ImageFormatData *imf);
void BKE_image_format_blend_write(struct BlendWriter *writer, struct ImageFormatData *imf);
/* File Paths */
void BKE_image_path_from_imformat(char *filepath,
const char *base,
const char *relbase,
int frame,
const struct ImageFormatData *im_format,
bool use_ext,
bool use_frames,
const char *suffix);
void BKE_image_path_from_imtype(char *filepath,
const char *base,
const char *relbase,
int frame,
char imtype,
bool use_ext,
bool use_frames,
const char *suffix);
/**
* The number of extensions an image may have (`.jpg`, `.jpeg` for example).
* Add 1 as the array is nil terminated.
*/
#define BKE_IMAGE_PATH_EXT_MAX 3
/**
* Fill in an array of acceptable image extensions for the image format.
*
* \note In the case a file has no valid extension,
* the first extension should be used (`r_ext[0]`).
* \return the number of extensions assigned to `r_ext`, 0 for unsupported formats.
*/
int BKE_image_path_ext_from_imformat(const struct ImageFormatData *im_format,
const char *r_ext[BKE_IMAGE_PATH_EXT_MAX]);
int BKE_image_path_ext_from_imtype(const char imtype, const char *r_ext[BKE_IMAGE_PATH_EXT_MAX]);
int BKE_image_path_ext_from_imformat_ensure(char *filepath,
size_t filepath_maxncpy,
const struct ImageFormatData *im_format);
int BKE_image_path_ext_from_imtype_ensure(char *filepath, size_t filepath_maxncpy, char imtype);
/* File Types */
#define IMA_CHAN_FLAG_BW 1
#define IMA_CHAN_FLAG_RGB 2
#define IMA_CHAN_FLAG_RGBA 4
char BKE_ftype_to_imtype(int ftype, const struct ImbFormatOptions *options);
int BKE_imtype_to_ftype(char imtype, struct ImbFormatOptions *r_options);
bool BKE_imtype_is_movie(char imtype);
bool BKE_imtype_supports_zbuf(char imtype);
bool BKE_imtype_supports_compress(char imtype);
bool BKE_imtype_supports_quality(char imtype);
bool BKE_imtype_requires_linear_float(char imtype);
char BKE_imtype_valid_channels(char imtype, bool write_file);
char BKE_imtype_valid_depths(char imtype);
/**
* String is from command line `--render-format` argument,
* keep in sync with `creator_args.c` help info.
*/
char BKE_imtype_from_arg(const char *imtype_arg);
/* Conversion between ImBuf settings. */
void BKE_image_format_from_imbuf(struct ImageFormatData *im_format, const struct ImBuf *imbuf);
void BKE_image_format_to_imbuf(struct ImBuf *ibuf, const struct ImageFormatData *imf);
bool BKE_image_format_is_byte(const struct ImageFormatData *imf);
/* Color Management */
void BKE_image_format_color_management_copy(struct ImageFormatData *imf,
const struct ImageFormatData *imf_src);
void BKE_image_format_color_management_copy_from_scene(struct ImageFormatData *imf,
const struct Scene *scene);
/* Image Output
*
* Initialize an image format that can be used for file writing, including
* color management settings from the scene. */
void BKE_image_format_init_for_write(struct ImageFormatData *imf,
const struct Scene *scene_src,
const struct ImageFormatData *imf_src);
#ifdef __cplusplus
}
#endif