Blender
V3.3
|
#include <fcntl.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "DNA_image_types.h"
#include "DNA_scene_types.h"
#include "DNA_texture_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_image.h"
#include "RE_texture.h"
#include "render_types.h"
#include "texture_common.h"
Go to the source code of this file.
Classes | |
struct | afdata_t |
struct | ReadEWAData |
Typedefs | |
typedef struct afdata_t | afdata_t |
typedef struct ReadEWAData | ReadEWAData |
Enumerations | |
enum | { TXC_XMIR = 1 , TXC_YMIR , TXC_REPT , TXC_EXTD } |
Functions | |
static void | boxsample (ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, const short imaprepeat, const short imapextend) |
static void | ibuf_get_color (float col[4], struct ImBuf *ibuf, int x, int y) |
int | imagewrap (Tex *tex, Image *ima, const float texvec[3], TexResult *texres, struct ImagePool *pool, const bool skip_load_image) |
static void | clipx_rctf_swap (rctf *stack, short *count, float x1, float x2) |
static void | clipy_rctf_swap (rctf *stack, short *count, float y1, float y2) |
static float | square_rctf (rctf *rf) |
static float | clipx_rctf (rctf *rf, float x1, float x2) |
static float | clipy_rctf (rctf *rf, float y1, float y2) |
static void | boxsampleclip (struct ImBuf *ibuf, rctf *rf, TexResult *texres) |
static int | ibuf_get_color_clip (float col[4], ImBuf *ibuf, int x, int y, int extflag) |
static int | ibuf_get_color_clip_bilerp (float col[4], ImBuf *ibuf, float u, float v, int intpol, int extflag) |
static void | area_sample (TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD) |
static void | ewa_read_pixel_cb (void *userdata, int x, int y, float result[4]) |
static void | ewa_eval (TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD) |
static void | feline_eval (TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD) |
static void | alpha_clip_aniso (ImBuf *ibuf, float minx, float miny, float maxx, float maxy, int extflag, TexResult *texres) |
static void | image_mipmap_test (Tex *tex, ImBuf *ibuf) |
static int | imagewraposa_aniso (Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], float dxt[2], float dyt[2], TexResult *texres, struct ImagePool *pool, const bool skip_load_image) |
int | imagewraposa (Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const float DXT[2], const float DYT[2], TexResult *texres, struct ImagePool *pool, const bool skip_load_image) |
void | image_sample (Image *ima, float fx, float fy, float dx, float dy, float result[4], struct ImagePool *pool) |
void | ibuf_sample (ImBuf *ibuf, float fx, float fy, float dx, float dy, float result[4]) |
typedef struct ReadEWAData ReadEWAData |
anonymous enum |
Enumerator | |
---|---|
TXC_XMIR | |
TXC_YMIR | |
TXC_REPT | |
TXC_EXTD |
Definition at line 673 of file texture_image.c.
|
static |
Definition at line 884 of file texture_image.c.
References clipx_rctf(), clipy_rctf(), ELEM, max_ff(), TexResult::trgba, TXC_EXTD, TXC_REPT, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, and rctf::ymin.
Referenced by imagewraposa_aniso().
|
static |
Definition at line 770 of file texture_image.c.
References CLAMPIS, afdata_t::dxt, afdata_t::dyt, afdata_t::extflag, ibuf_get_color_clip_bilerp(), afdata_t::intpol, usdtokens::out(), sqrtf, TexResult::talpha, TexResult::trgba, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa_aniso().
|
static |
Definition at line 553 of file texture_image.c.
References boxsampleclip(), CLAMP, clipx_rctf(), clipx_rctf_swap(), clipy_rctf(), clipy_rctf_swap(), count, square_rctf(), TexResult::talpha, TexResult::trgba, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, and rctf::ymin.
Referenced by image_sample(), imagewrap(), and imagewraposa().
Definition at line 464 of file texture_image.c.
References add_v4_v4(), col, blender::math::floor(), ibuf_get_color(), madd_v4_v4fl(), mul_v4_fl(), TexResult::trgba, x, ImBuf::x, rctf::xmax, rctf::xmin, y, ImBuf::y, rctf::ymax, rctf::ymin, and zero_v4().
Referenced by boxsample().
Definition at line 419 of file texture_image.c.
References BLI_rctf_size_x(), size(), x2, rctf::xmax, and rctf::xmin.
Referenced by alpha_clip_aniso(), and boxsample().
Definition at line 290 of file texture_image.c.
References Freestyle::a, count, x2, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
Definition at line 441 of file texture_image.c.
References BLI_rctf_size_y(), size(), y1, rctf::ymax, and rctf::ymin.
Referenced by alpha_clip_aniso(), and boxsample().
Definition at line 350 of file texture_image.c.
References Freestyle::a, count, rctf::xmax, rctf::xmin, y1, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
Definition at line 819 of file texture_image.c.
References BLI_ewa_filter(), data, afdata_t::dxt, afdata_t::dyt, ewa_read_pixel_cb(), afdata_t::intpol, TexResult::talpha, TexResult::trgba, ImBuf::x, and ImBuf::y.
Referenced by ibuf_sample(), and imagewraposa_aniso().
Definition at line 813 of file texture_image.c.
References data, ibuf_get_color_clip(), result, x, and y.
Referenced by ewa_eval().
|
static |
Definition at line 837 of file texture_image.c.
References cosf, D(), afdata_t::dusc, afdata_t::dvsc, EWA_MAXIDX, EWA_WTS, expf, afdata_t::extflag, ibuf_get_color_clip_bilerp(), afdata_t::intpol, afdata_t::iProbes, afdata_t::majrad, afdata_t::minrad, sinf, TexResult::talpha, afdata_t::theta, TexResult::trgba, v, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa_aniso().
Definition at line 50 of file texture_image.c.
References ImBuf::channels, col, copy_v3_v3(), copy_v4_v4(), float(), ImBuf::rect, ImBuf::rect_float, x, ImBuf::x, and y.
Referenced by boxsampleclip(), and imagewrap().
Similar to ibuf_get_color()
but clips/wraps coords according to repeat/extend flags returns true if out of range in clip-mode.
Definition at line 679 of file texture_image.c.
References ImBuf::channels, col, if(), ImBuf::rect, ImBuf::rect_float, TXC_EXTD, TXC_REPT, TXC_XMIR, TXC_YMIR, x, ImBuf::x, y, and ImBuf::y.
Referenced by ewa_read_pixel_cb(), and ibuf_get_color_clip_bilerp().
|
static |
Definition at line 747 of file texture_image.c.
References col, floorf, ibuf_get_color_clip(), v, x2, and y1.
Referenced by area_sample(), and feline_eval().
Definition at line 1753 of file texture_image.c.
References copy_v4_v4(), afdata_t::dxt, afdata_t::dyt, ewa_eval(), afdata_t::extflag, afdata_t::intpol, result, TexResult::trgba, and TXC_EXTD.
Definition at line 913 of file texture_image.c.
References BLI_thread_lock(), BLI_thread_unlock(), IB_MIPMAP_INVALID, Tex::imaflag, IMB_makemipmap(), IMB_remakemipmap(), LOCK_IMAGE, ImBuf::mipmap, NULL, tex, TEX_GAUSS_MIP, TEX_MIPMAP, and ImBuf::userflags.
Referenced by imagewraposa(), and imagewraposa_aniso().
void image_sample | ( | Image * | ima, |
float | fx, | ||
float | fy, | ||
float | dx, | ||
float | dy, | ||
float | result[4], | ||
struct ImagePool * | pool | ||
) |
Definition at line 1733 of file texture_image.c.
References BKE_image_pool_acquire_ibuf(), BKE_image_pool_release_ibuf(), boxsample(), copy_v4_v4(), Image::flag, IMA_USED_FOR_RENDER, NULL, blender::compositor::pool, result, TexResult::talpha, TexResult::trgba, UNLIKELY, and zero_v4().
int imagewrap | ( | Tex * | tex, |
Image * | ima, | ||
const float | texvec[3], | ||
TexResult * | texres, | ||
struct ImagePool * | pool, | ||
const bool | skip_load_image | ||
) |
Definition at line 84 of file texture_image.c.
References Image::alpha_mode, BKE_image_get_tile_from_pos(), BKE_image_has_loaded_ibuf(), BKE_image_pool_acquire_ibuf(), BKE_image_pool_release_ibuf(), boxsample(), BRICONTRGB, Tex::checkerdist, ELEM, Tex::extend, Tex::filtersize, Image::flag, Tex::flag, float(), blender::math::floor(), floorf, ibuf_get_color(), IMA_ALPHA_IGNORE, IMA_SRC_TILED, IMA_USED_FOR_RENDER, Tex::imaflag, Tex::iuser, max_fff(), NULL, blender::compositor::pool, ImBuf::rect, ImBuf::rect_float, Image::source, SWAP, TexResult::talpha, tex, TEX_CALCALPHA, TEX_CHECKER, TEX_CHECKER_EVEN, TEX_CHECKER_ODD, TEX_CLIP, TEX_CLIPCUBE, TEX_EXTEND, TEX_IMAROT, TEX_INTERPOL, TEX_NEGALPHA, TEX_REPEAT, TEX_RGB, TEX_USEALPHA, ImageUser::tile, TexResult::tin, TexResult::trgba, x, ImBuf::x, y, and ImBuf::y.
Referenced by multitex().
int imagewraposa | ( | Tex * | tex, |
Image * | ima, | ||
ImBuf * | ibuf, | ||
const float | texvec[3], | ||
const float | DXT[2], | ||
const float | DYT[2], | ||
TexResult * | texres, | ||
struct ImagePool * | pool, | ||
const bool | skip_load_image | ||
) |
Definition at line 1342 of file texture_image.c.
References Image::alpha_mode, BKE_image_has_loaded_ibuf(), BKE_image_pool_acquire_ibuf(), BKE_image_pool_release_ibuf(), boxsample(), BRICONTRGB, Tex::checkerdist, copy_v2_v2(), ELEM, Tex::extend, Tex::filtersize, Image::flag, Tex::flag, float(), blender::math::floor(), IMA_ALPHA_IGNORE, IMA_USED_FOR_RENDER, Tex::imaflag, image_mipmap_test(), imagewraposa_aniso(), Tex::iuser, max_ff(), max_fff(), MIN2, min_fff(), ImBuf::mipmap, mul_v3_fl(), NULL, blender::compositor::pool, ImBuf::rect, ImBuf::rect_float, SWAP, TexResult::talpha, tex, TEX_CALCALPHA, TEX_CHECKER, TEX_CHECKER_EVEN, TEX_CHECKER_ODD, TEX_CLIP, TEX_CLIPCUBE, TEX_EXTEND, TEX_FILTER_MIN, TEX_IMAROT, TEX_INTERPOL, TEX_MIPMAP, TEX_NEGALPHA, TEX_REPEAT, TEX_REPEAT_XMIR, TEX_REPEAT_YMIR, TEX_RGB, TEX_USEALPHA, Tex::texfilter, TexResult::tin, TexResult::trgba, TXF_BOX, x, ImBuf::x, y, and ImBuf::y.
Referenced by multitex().
|
static |
Definition at line 938 of file texture_image.c.
References A, Freestyle::a, Tex::afmax, alpha_clip_aniso(), Image::alpha_mode, area_sample(), B, usdtokens::b(), BKE_image_has_loaded_ibuf(), BKE_image_pool_acquire_ibuf(), BKE_image_pool_release_ibuf(), BLI_ewa_imp2radangle(), BRICONTRGB, C, Tex::checkerdist, copy_v2_v2(), afdata_t::dusc, afdata_t::dvsc, afdata_t::dxt, afdata_t::dyt, ELEM, ewa_eval(), Tex::extend, afdata_t::extflag, F, feline_eval(), Tex::filtersize, Image::flag, Tex::flag, float(), floorf, IMA_ALPHA_IGNORE, IMA_USED_FOR_RENDER, Tex::imaflag, image_mipmap_test(), IMB_MIPMAP_LEVELS, afdata_t::intpol, afdata_t::iProbes, libmv::isnan(), Tex::iuser, len_v2(), logf, M_LOG2E, afdata_t::majrad, max_ff(), max_fff(), MIN2, min_fff(), afdata_t::minrad, ImBuf::mipmap, mul_v2_fl(), NULL, blender::compositor::pool, ImBuf::rect, ImBuf::rect_float, round_fl_to_int(), sqrtf, SWAP, t, TexResult::talpha, tex, TEX_CALCALPHA, TEX_CHECKER, TEX_CHECKER_EVEN, TEX_CHECKER_ODD, TEX_CLIP, TEX_CLIPCUBE, TEX_EXTEND, TEX_FILTER_MIN, TEX_IMAROT, TEX_INTERPOL, TEX_MIPMAP, TEX_NEGALPHA, TEX_REPEAT, TEX_REPEAT_XMIR, TEX_REPEAT_YMIR, TEX_RGB, TEX_USEALPHA, Tex::texfilter, afdata_t::theta, TexResult::tin, TexResult::trgba, TXC_EXTD, TXC_REPT, TXC_XMIR, TXC_YMIR, TXF_AREA, TXF_EWA, TXF_FELINE, void, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa().
Definition at line 410 of file texture_image.c.
References BLI_rctf_size_x(), BLI_rctf_size_y(), x, and y.
Referenced by boxsample().