Blender  V2.59
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 "BLI_blenlib.h"
#include "BLI_threads.h"
#include "BLI_utildefines.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)
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 (int imtype)
int BKE_ftype_to_imtype (int ftype)
int BKE_imtype_is_movie (int imtype)
int BKE_add_image_extension (char *string, int 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, int imtype, int subimtype, int quality)
int BKE_write_ibuf_stamp (Scene *scene, struct Object *camera, ImBuf *ibuf, const char *name, int imtype, int subimtype, int quality)
void BKE_makepicstring (char *string, const char *base, int frame, int imtype, const short use_ext, const short use_frames)
struct animopenanim (char *name, int flags)
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)

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 98 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 99 of file image.c.

Referenced by BKE_image_merge().

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

Definition at line 97 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,
int  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 1223 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().

int BKE_ftype_to_imtype ( int  ftype)

Definition at line 715 of file image.c.

References BMP, IMAGIC, OPENEXR, PNG, R_BMP, R_CINEON, R_DDS, R_DPX, R_IRIS, R_JP2, R_JPEG90, R_OPENEXR, R_PNG, R_RADHDR, R_RAWTGA, R_TARGA, R_TIFF, RAWTGA, and TGA.

Referenced by save_as_invoke(), and save_exec().

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 1439 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]
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 587 of file image.c.

References ListBase::first, G, Image::id, Main::image, image_mem_size(), Global::main, 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]
int BKE_imtype_is_movie ( int  imtype)
int BKE_imtype_to_ftype ( int  imtype)
void BKE_makepicstring ( char *  string,
const char *  base,
int  frame,
int  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,
int  imtype,
int  subimtype,
int  quality 
)
int BKE_write_ibuf_stamp ( Scene scene,
struct Object camera,
ImBuf ibuf,
const char *  name,
int  imtype,
int  subimtype,
int  quality 
)
Image* copy_image ( Image ima) [read]
static void de_interlace_ng ( struct ImBuf ibuf) [static]
static void de_interlace_st ( struct ImBuf ibuf) [static]
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 159 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 263 of file image.c.

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

Referenced by image_assign_ibuf().

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

Definition at line 499 of file image.c.

References Image::lastused, and PIL_check_seconds_timer().

Referenced by BKE_image_acquire_ibuf(), and multitex().