Blender V2.61 - r43446
Classes | Defines | Typedefs | Functions

image.c File Reference

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <math.h>
#include <unistd.h>
#include <time.h>
#include "MEM_guardedalloc.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "DNA_packedFile_types.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
#include "DNA_camera_types.h"
#include "DNA_sequence_types.h"
#include "DNA_userdef_types.h"
#include "DNA_brush_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BLI_blenlib.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BLI_bpath.h"
#include "BKE_bmfont.h"
#include "BKE_global.h"
#include "BKE_icons.h"
#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_packedFile.h"
#include "BKE_scene.h"
#include "BKE_node.h"
#include "BKE_sequencer.h"
#include "BKE_utildefines.h"
#include "BLF_api.h"
#include "PIL_time.h"
#include "RE_pipeline.h"
#include "GPU_draw.h"
#include "BLO_sys_types.h"

Go to the source code of this file.

Classes

struct  StampData

Defines

#define IMA_NO_INDEX   0x7FEFEFEF
#define IMA_MAKE_INDEX(frame, index)   ((frame)<<10)+index
#define IMA_INDEX_FRAME(index)   (index>>10)
#define IMA_INDEX_PASS(index)   (index & ~1023)
#define BUFF_MARGIN_X   2
#define BUFF_MARGIN_Y   1

Typedefs

typedef struct StampData StampData

Functions

static void de_interlace_ng (struct ImBuf *ibuf)
static void de_interlace_st (struct ImBuf *ibuf)
void image_de_interlace (Image *ima, int odd)
static void image_free_buffers (Image *ima)
void free_image (Image *ima)
static Imageimage_alloc (const char *name, short source, short type)
static ImBufimage_get_ibuf (Image *ima, int index, int frame)
static void image_remove_ibuf (Image *ima, ImBuf *ibuf)
static void image_assign_ibuf (Image *ima, ImBuf *ibuf, int index, int frame)
Imagecopy_image (Image *ima)
static void extern_local_image (Image *UNUSED(ima))
void make_local_image (struct Image *ima)
void BKE_image_merge (Image *dest, Image *source)
ImageBKE_add_image_file (const char *name)
static ImBufadd_ibuf_size (unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short uvtestgrid, float color[4])
ImageBKE_add_image_size (unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short uvtestgrid, float color[4])
ImageBKE_add_image_imbuf (ImBuf *ibuf)
void BKE_image_memorypack (Image *ima)
void tag_image_time (Image *ima)
void free_old_images (void)
static uintptr_t image_mem_size (Image *ima)
void BKE_image_print_memlist (void)
void BKE_image_free_all_textures (void)
void BKE_image_free_anim_ibufs (Image *ima, int except_frame)
void BKE_image_all_free_anim_ibufs (int cfra)
int BKE_imtype_to_ftype (const char imtype)
char BKE_ftype_to_imtype (const int ftype)
int BKE_imtype_is_movie (const char imtype)
int BKE_imtype_supports_zbuf (const char imtype)
int BKE_imtype_supports_compress (const char imtype)
int BKE_imtype_supports_quality (const char imtype)
char BKE_imtype_valid_channels (const char imtype)
char BKE_imtype_valid_depths (const char imtype)
char BKE_imtype_from_arg (const char *imtype_arg)
int BKE_add_image_extension (char *string, const char imtype)
static void stampdata (Scene *scene, Object *camera, StampData *stamp_data, int do_prefix)
void BKE_stamp_buf (Scene *scene, Object *camera, unsigned char *rect, float *rectf, int width, int height, int channels)
void BKE_stamp_info (Scene *scene, Object *camera, struct ImBuf *ibuf)
int BKE_alphatest_ibuf (ImBuf *ibuf)
int BKE_write_ibuf (ImBuf *ibuf, const char *name, ImageFormatData *imf)
int BKE_write_ibuf_as (ImBuf *ibuf, const char *name, ImageFormatData *imf, const short save_copy)
int BKE_write_ibuf_stamp (Scene *scene, struct Object *camera, ImBuf *ibuf, const char *name, struct ImageFormatData *imf)
void BKE_makepicstring (char *string, const char *base, const char *relbase, int frame, const char imtype, const short use_ext, const short use_frames)
struct animopenanim (const char *name, int flags, int streamindex)
ImageBKE_image_verify_viewer (int type, const char *name)
void BKE_image_assign_ibuf (Image *ima, ImBuf *ibuf)
void BKE_image_signal (Image *ima, ImageUser *iuser, int signal)
RenderPassBKE_image_multilayer_index (RenderResult *rr, ImageUser *iuser)
RenderResultBKE_image_acquire_renderresult (Scene *scene, Image *ima)
void BKE_image_release_renderresult (Scene *scene, Image *ima)
void BKE_image_backup_render (Scene *scene, Image *ima)
static void image_create_multilayer (Image *ima, ImBuf *ibuf, int framenr)
static void image_initialize_after_load (Image *ima, ImBuf *ibuf)
static ImBufimage_load_sequence_file (Image *ima, ImageUser *iuser, int frame)
static ImBufimage_load_sequence_multilayer (Image *ima, ImageUser *iuser, int frame)
static ImBufimage_load_movie_file (Image *ima, ImageUser *iuser, int frame)
static ImBufimage_load_image_file (Image *ima, ImageUser *iuser, int cfra)
static ImBufimage_get_ibuf_multilayer (Image *ima, ImageUser *iuser)
static ImBufimage_get_render_result (Image *ima, ImageUser *iuser, void **lock_r)
static ImBufimage_get_ibuf_threadsafe (Image *ima, ImageUser *iuser, int *frame_r, int *index_r)
ImBufBKE_image_acquire_ibuf (Image *ima, ImageUser *iuser, void **lock_r)
void BKE_image_release_ibuf (Image *ima, void *lock)
ImBufBKE_image_get_ibuf (Image *ima, ImageUser *iuser)
int BKE_image_user_get_frame (const ImageUser *iuser, int cfra, int fieldnr)
void BKE_image_user_calc_frame (ImageUser *iuser, int cfra, int fieldnr)
int BKE_image_has_alpha (struct Image *image)

Detailed Description

Definition in file image.c.


Define Documentation

#define BUFF_MARGIN_X   2

Referenced by BKE_stamp_buf().

#define BUFF_MARGIN_Y   1

Referenced by BKE_stamp_buf().

#define IMA_INDEX_FRAME (   index)    (index>>10)

Definition at line 99 of file image.c.

Referenced by BKE_image_free_anim_ibufs(), and BKE_image_merge().

#define IMA_INDEX_PASS (   index)    (index & ~1023)

Definition at line 100 of file image.c.

Referenced by BKE_image_merge().

#define IMA_MAKE_INDEX (   frame,
  index 
)    ((frame)<<10)+index

Definition at line 98 of file image.c.

Referenced by image_assign_ibuf(), and image_get_ibuf().

#define IMA_NO_INDEX   0x7FEFEFEF

Typedef Documentation

typedef struct StampData StampData

Function Documentation

static ImBuf* add_ibuf_size ( unsigned int  width,
unsigned int  height,
const char *  name,
int  depth,
int  floatbuf,
short  uvtestgrid,
float  color[4] 
) [static]
int BKE_add_image_extension ( char *  string,
const char  imtype 
)
Image* BKE_add_image_file ( const char *  name) [read]
Image* BKE_add_image_imbuf ( ImBuf ibuf) [read]
Image* BKE_add_image_size ( unsigned int  width,
unsigned int  height,
const char *  name,
int  depth,
int  floatbuf,
short  uvtestgrid,
float  color[4] 
) [read]
int BKE_alphatest_ibuf ( ImBuf ibuf)

Definition at line 1483 of file image.c.

References FALSE, ImBuf::rect, ImBuf::rect_float, TRUE, ImBuf::x, and ImBuf::y.

Referenced by RE_bake_ibuf_filter(), and save_image_doit().

char BKE_ftype_to_imtype ( const int  ftype)
ImBuf* BKE_image_acquire_ibuf ( Image ima,
ImageUser iuser,
void **  lock_r 
) [read]
RenderResult* BKE_image_acquire_renderresult ( Scene scene,
Image ima 
) [read]
void BKE_image_all_free_anim_ibufs ( int  cfra)
void BKE_image_assign_ibuf ( Image ima,
ImBuf ibuf 
)

Definition at line 1723 of file image.c.

References IMA_NO_INDEX, and image_assign_ibuf().

void BKE_image_backup_render ( Scene scene,
Image ima 
)
void BKE_image_free_all_textures ( void  )
void BKE_image_free_anim_ibufs ( Image ima,
int  except_frame 
)
ImBuf* BKE_image_get_ibuf ( Image ima,
ImageUser iuser 
) [read]
int BKE_image_has_alpha ( struct Image image)
void BKE_image_memorypack ( Image ima)
void BKE_image_merge ( Image dest,
Image source 
)
RenderPass* BKE_image_multilayer_index ( RenderResult rr,
ImageUser iuser 
) [read]
void BKE_image_print_memlist ( void  )

Definition at line 719 of file image.c.

References G, Image::id, image_mem_size(), ID::name, ID::next, and size().

Referenced by RE_Database_Free().

void BKE_image_release_ibuf ( Image ima,
void *  lock 
)
void BKE_image_release_renderresult ( Scene scene,
Image ima 
)
void BKE_image_signal ( Image ima,
ImageUser iuser,
int  signal 
)
void BKE_image_user_calc_frame ( ImageUser iuser,
int  cfra,
int  fieldnr 
)
int BKE_image_user_get_frame ( const ImageUser iuser,
int  cfra,
int  fieldnr 
)
Image* BKE_image_verify_viewer ( int  type,
const char *  name 
) [read]
char BKE_imtype_from_arg ( const char *  imtype_arg)
int BKE_imtype_is_movie ( const char  imtype)
int BKE_imtype_supports_compress ( const char  imtype)

Definition at line 917 of file image.c.

References R_IMF_IMTYPE_PNG.

Referenced by uiTemplateImageSettings().

int BKE_imtype_supports_quality ( const char  imtype)

Definition at line 926 of file image.c.

References R_IMF_IMTYPE_AVIJPEG, R_IMF_IMTYPE_JP2, and R_IMF_IMTYPE_JPEG90.

Referenced by uiTemplateImageSettings().

int BKE_imtype_supports_zbuf ( const char  imtype)

Definition at line 907 of file image.c.

References R_IMF_IMTYPE_IRIZ, and R_IMF_IMTYPE_OPENEXR.

Referenced by uiTemplateImageSettings().

int BKE_imtype_to_ftype ( const char  imtype)
char BKE_imtype_valid_channels ( const char  imtype)
char BKE_imtype_valid_depths ( const char  imtype)
void BKE_makepicstring ( char *  string,
const char *  base,
const char *  relbase,
int  frame,
const char  imtype,
const short  use_ext,
const short  use_frames 
)
void BKE_stamp_buf ( Scene scene,
Object camera,
unsigned char *  rect,
float *  rectf,
int  width,
int  height,
int  channels 
)
void BKE_stamp_info ( Scene scene,
Object camera,
struct ImBuf ibuf 
)
int BKE_write_ibuf ( ImBuf ibuf,
const char *  name,
ImageFormatData imf 
)
int BKE_write_ibuf_as ( ImBuf ibuf,
const char *  name,
ImageFormatData imf,
const short  save_copy 
)
int BKE_write_ibuf_stamp ( Scene scene,
struct Object camera,
ImBuf ibuf,
const char *  name,
struct ImageFormatData imf 
)
Image* copy_image ( Image ima) [read]
static void de_interlace_ng ( struct ImBuf ibuf) [static]
static void de_interlace_st ( struct ImBuf ibuf) [static]
static void extern_local_image ( Image UNUSEDima) [static]

Definition at line 324 of file image.c.

Referenced by make_local_image().

void free_image ( Image ima)
void free_old_images ( void  )
static Image* image_alloc ( const char *  name,
short  source,
short  type 
) [static]
static void image_assign_ibuf ( Image ima,
ImBuf ibuf,
int  index,
int  frame 
) [static]
static void image_create_multilayer ( Image ima,
ImBuf ibuf,
int  framenr 
) [static]
void image_de_interlace ( Image ima,
int  odd 
)

Definition at line 160 of file image.c.

References BKE_image_get_ibuf(), de_interlace_ng(), de_interlace_st(), and NULL.

static void image_free_buffers ( Image ima) [static]
static ImBuf* image_get_ibuf ( Image ima,
int  index,
int  frame 
) [static]
static ImBuf* image_get_ibuf_multilayer ( Image ima,
ImageUser iuser 
) [static]
static ImBuf* image_get_ibuf_threadsafe ( Image ima,
ImageUser iuser,
int *  frame_r,
int *  index_r 
) [static]
static ImBuf* image_get_render_result ( Image ima,
ImageUser iuser,
void **  lock_r 
) [static]
static void image_initialize_after_load ( Image ima,
ImBuf ibuf 
) [static]
static ImBuf* image_load_image_file ( Image ima,
ImageUser iuser,
int  cfra 
) [static]
static ImBuf* image_load_movie_file ( Image ima,
ImageUser iuser,
int  frame 
) [static]
static ImBuf* image_load_sequence_file ( Image ima,
ImageUser iuser,
int  frame 
) [static]
static ImBuf* image_load_sequence_multilayer ( Image ima,
ImageUser iuser,
int  frame 
) [static]
static uintptr_t image_mem_size ( Image ima) [static]
static void image_remove_ibuf ( Image ima,
ImBuf ibuf 
) [static]

Definition at line 264 of file image.c.

References BLI_remlink(), Image::ibufs, and IMB_freeImBuf().

Referenced by image_assign_ibuf().

void make_local_image ( struct Image ima)
struct anim* openanim ( const char *  name,
int  flags,
int  streamindex 
) [read]
static void stampdata ( Scene scene,
Object camera,
StampData stamp_data,
int  do_prefix 
) [static]
void tag_image_time ( Image ima)

Definition at line 631 of file image.c.

References Image::lastused, and PIL_check_seconds_timer().

Referenced by BKE_image_acquire_ibuf(), and multitex().