Blender V4.3
imageprocess.cc File Reference
#include <cmath>
#include <cstdlib>
#include "MEM_guardedalloc.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "IMB_colormanagement.hh"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"

Go to the source code of this file.

Classes

struct  ScanlineGlobalData
 

Functions

void IMB_convert_rgba_to_abgr (ImBuf *ibuf)
 
Threaded Image Processing
static void processor_apply_func (TaskPool *__restrict pool, void *taskdata)
 
void IMB_processor_apply_threaded (int buffer_lines, int handle_size, void *init_customdata, void(init_handle)(void *handle, int start_line, int tot_line, void *customdata), void *(do_thread)(void *))
 
static void processor_apply_parallel (void *__restrict userdata, const int scanline, const TaskParallelTLS *__restrict)
 
void IMB_processor_apply_threaded_scanlines (int total_scanlines, ScanlineThreadFunc do_thread, void *custom_data)
 
Alpha-under
void IMB_alpha_under_color_float (float *rect_float, int x, int y, float backcol[3])
 
void IMB_alpha_under_color_byte (uchar *rect, int x, int y, const float backcol[3])
 

Function Documentation

◆ IMB_alpha_under_color_byte()

void IMB_alpha_under_color_byte ( uchar * rect,
int x,
int y,
const float backcol[3] )

Definition at line 160 of file imageprocess.cc.

References mul(), and y.

Referenced by IMB_colormanagement_imbuf_for_write().

◆ IMB_alpha_under_color_float()

void IMB_alpha_under_color_float ( float * rect_float,
int x,
int y,
float backcol[3] )

Definition at line 146 of file imageprocess.cc.

References madd_v3_v3fl(), mul(), and y.

Referenced by IMB_colormanagement_imbuf_for_write().

◆ IMB_convert_rgba_to_abgr()

void IMB_convert_rgba_to_abgr ( ImBuf * ibuf)

Change the ordering of the color bytes pointed to by rect from RGBA to ABGR. size * 4 color bytes are reordered.

Only this one is used liberally here, and in imbuf.

Definition at line 22 of file imageprocess.cc.

References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, size(), ImBuf::x, and ImBuf::y.

Referenced by imb_loadiris(), and imb_saveiris().

◆ IMB_processor_apply_threaded()

void IMB_processor_apply_threaded ( int buffer_lines,
int handle_size,
void * init_customdata,
void(init_handle)(void *handle, int start_line, int tot_line, void *customdata) ,
void * do_thread)(void * )

◆ IMB_processor_apply_threaded_scanlines()

◆ processor_apply_func()

static void processor_apply_func ( TaskPool *__restrict pool,
void * taskdata )
static

Definition at line 61 of file imageprocess.cc.

References BLI_task_pool_user_data().

Referenced by IMB_processor_apply_threaded().

◆ processor_apply_parallel()

static void processor_apply_parallel ( void *__restrict userdata,
const int scanline,
const TaskParallelTLS * __restrict )
static

Definition at line 119 of file imageprocess.cc.

References ScanlineGlobalData::do_thread.

Referenced by IMB_processor_apply_threaded_scanlines().