![]() |
Blender V2.61 - r43446
|
#include <stdio.h>#include <string.h>#include <fcntl.h>#include <math.h>#include <float.h>#include <unistd.h>#include "MEM_guardedalloc.h"#include "IMB_imbuf_types.h"#include "IMB_imbuf.h"#include "DNA_image_types.h"#include "DNA_scene_types.h"#include "DNA_texture_types.h"#include "BLI_math.h"#include "BLI_blenlib.h"#include "BLI_threads.h"#include "BLI_utildefines.h"#include "BKE_global.h"#include "BKE_main.h"#include "BKE_image.h"#include "BKE_texture.h"#include "BKE_library.h"#include "RE_render_ext.h"#include "renderpipeline.h"#include "render_types.h"#include "texture.h"Go to the source code of this file.
Classes | |
| struct | afdata_t |
Defines | |
| #define | EWA_MAXIDX 255 |
| #define | ISNAN(x) ((x) != (x)) |
Typedefs | |
| typedef struct afdata_t | afdata_t |
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, struct ImBuf *ibuf, int x, int y) |
| int | imagewrap (Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], TexResult *texres) |
| 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, ImBuf *ibuf, int x, int y, int extflag) |
| static int | ibuf_get_color_clip_bilerp (float *col, 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 | radangle2imp (float a2, float b2, float th, float *A, float *B, float *C, float *F) |
| static void | imp2radangle (float A, float B, float C, float F, float *a, float *b, float *th, float *ecc) |
| 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[3], float dyt[3], TexResult *texres) |
| int | imagewraposa (Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const float DXT[3], const float DYT[3], TexResult *texres) |
| void | image_sample (Image *ima, float fx, float fy, float dx, float dy, float *result) |
| void | ibuf_sample (ImBuf *ibuf, float fx, float fy, float dx, float dy, float *result) |
Variables | |
| struct Render | R |
| static float | EWA_WTS [EWA_MAXIDX+1] |
Definition in file imagetexture.c.
| #define EWA_MAXIDX 255 |
Definition at line 761 of file imagetexture.c.
Referenced by ewa_eval(), and feline_eval().
| #define ISNAN | ( | x | ) | ((x) != (x)) |
Definition at line 801 of file imagetexture.c.
Referenced by imagewraposa_aniso().
| anonymous enum |
Definition at line 639 of file imagetexture.c.
| static void alpha_clip_aniso | ( | ImBuf * | ibuf, |
| float | minx, | ||
| float | miny, | ||
| float | maxx, | ||
| float | maxy, | ||
| int | extflag, | ||
| TexResult * | texres | ||
| ) | [static] |
Definition at line 971 of file imagetexture.c.
References clipx_rctf(), clipy_rctf(), MAX2, TexResult::ta, TexResult::tb, TexResult::tg, TexResult::tr, TXC_EXTD, TXC_REPT, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, and rctf::ymin.
Referenced by imagewraposa_aniso().
| static void area_sample | ( | TexResult * | texr, |
| ImBuf * | ibuf, | ||
| float | fx, | ||
| float | fy, | ||
| afdata_t * | AFD | ||
| ) | [static] |
Definition at line 722 of file imagetexture.c.
References CLAMPIS, afdata_t::dxt, afdata_t::dyt, afdata_t::extflag, ibuf_get_color_clip_bilerp(), afdata_t::intpol, sqrtf, TexResult::ta, TexResult::talpha, TexResult::tb, TexResult::tg, TexResult::tr, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa_aniso().
| static void boxsample | ( | ImBuf * | ibuf, |
| float | minx, | ||
| float | miny, | ||
| float | maxx, | ||
| float | maxy, | ||
| TexResult * | texres, | ||
| const short | imaprepeat, | ||
| const short | imapextend | ||
| ) | [static] |
Definition at line 536 of file imagetexture.c.
References boxsampleclip(), CLAMP(), clipx_rctf(), clipx_rctf_swap(), clipy_rctf(), clipy_rctf_swap(), square_rctf(), stack, TexResult::ta, TexResult::talpha, TexResult::tb, TexResult::tg, TexResult::tr, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, and rctf::ymin.
Referenced by image_sample(), imagewrap(), and imagewraposa().
Definition at line 453 of file imagetexture.c.
References div, ibuf_get_color(), TexResult::ta, TexResult::tb, TexResult::tg, TexResult::tr, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
| static float clipx_rctf | ( | rctf * | rf, |
| float | x1, | ||
| float | x2 | ||
| ) | [static] |
Definition at line 407 of file imagetexture.c.
References size(), rctf::xmax, and rctf::xmin.
Referenced by alpha_clip_aniso(), and boxsample().
| static void clipx_rctf_swap | ( | rctf * | stack, |
| short * | count, | ||
| float | x1, | ||
| float | x2 | ||
| ) | [static] |
Definition at line 293 of file imagetexture.c.
References stack, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
| static float clipy_rctf | ( | rctf * | rf, |
| float | y1, | ||
| float | y2 | ||
| ) | [static] |
Definition at line 429 of file imagetexture.c.
References size(), rctf::ymax, and rctf::ymin.
Referenced by alpha_clip_aniso(), and boxsample().
| static void clipy_rctf_swap | ( | rctf * | stack, |
| short * | count, | ||
| float | y1, | ||
| float | y2 | ||
| ) | [static] |
Definition at line 346 of file imagetexture.c.
References stack, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
| static void ewa_eval | ( | TexResult * | texr, |
| ImBuf * | ibuf, | ||
| float | fx, | ||
| float | fy, | ||
| afdata_t * | AFD | ||
| ) | [static] |
Definition at line 844 of file imagetexture.c.
References A, B, C, ceilf, simple_enum_gen::d, afdata_t::dxt, afdata_t::dyt, EWA_MAXIDX, EWA_WTS, afdata_t::extflag, F, floorf, ibuf_get_color_clip(), imp2radangle(), afdata_t::intpol, radangle2imp(), sqrtf, TexResult::ta, TexResult::talpha, TexResult::tb, TexResult::tg, TexResult::tr, U, V, ImBuf::x, and ImBuf::y.
Referenced by ibuf_sample(), and imagewraposa_aniso().
| static void feline_eval | ( | TexResult * | texr, |
| ImBuf * | ibuf, | ||
| float | fx, | ||
| float | fy, | ||
| afdata_t * | AFD | ||
| ) | [static] |
Definition at line 931 of file imagetexture.c.
References cosf, simple_enum_gen::d, D(), afdata_t::dusc, afdata_t::dvsc, EWA_MAXIDX, EWA_WTS, afdata_t::extflag, ibuf_get_color_clip_bilerp(), afdata_t::intpol, afdata_t::iProbes, afdata_t::majrad, afdata_t::minrad, sinf, TexResult::ta, TexResult::talpha, TexResult::tb, TexResult::tg, afdata_t::theta, TexResult::tr, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa_aniso().
| static void ibuf_get_color | ( | float * | col, |
| struct ImBuf * | ibuf, | ||
| int | x, | ||
| int | y | ||
| ) | [static] |
Definition at line 84 of file imagetexture.c.
References ImBuf::channels, copy_v3_v3(), copy_v4_v4(), ImBuf::rect, ImBuf::rect_float, and ImBuf::x.
Referenced by boxsampleclip(), and imagewrap().
| static int ibuf_get_color_clip | ( | float * | col, |
| ImBuf * | ibuf, | ||
| int | x, | ||
| int | y, | ||
| int | extflag | ||
| ) | [static] |
Definition at line 643 of file imagetexture.c.
References ImBuf::channels, if(), ImBuf::rect, ImBuf::rect_float, TXC_EXTD, TXC_REPT, TXC_XMIR, TXC_YMIR, ImBuf::x, and ImBuf::y.
Referenced by ewa_eval(), and ibuf_get_color_clip_bilerp().
| static int ibuf_get_color_clip_bilerp | ( | float * | col, |
| ImBuf * | ibuf, | ||
| float | u, | ||
| float | v, | ||
| int | intpol, | ||
| int | extflag | ||
| ) | [static] |
Definition at line 701 of file imagetexture.c.
References floorf, and ibuf_get_color_clip().
Referenced by area_sample(), and feline_eval().
| void ibuf_sample | ( | ImBuf * | ibuf, |
| float | fx, | ||
| float | fy, | ||
| float | dx, | ||
| float | dy, | ||
| float * | result | ||
| ) |
Definition at line 1817 of file imagetexture.c.
References afdata_t::dxt, afdata_t::dyt, ewa_eval(), afdata_t::extflag, afdata_t::intpol, NULL, TexResult::ta, TexResult::tb, TexResult::tg, TexResult::tr, and TXC_EXTD.
Referenced by do_displace(), and do_mapuv().
Definition at line 999 of file imagetexture.c.
References BLI_lock_thread(), BLI_unlock_thread(), ImBuf::flags, IB_fields, IB_MIPMAP_INVALID, Tex::imaflag, IMB_makemipmap(), IMB_remakemipmap(), LOCK_IMAGE, ImBuf::mipmap, NULL, 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 | ||
| ) |
Definition at line 1793 of file imagetexture.c.
References BKE_image_get_ibuf(), boxsample(), ImBuf::flags, IB_fields, NULL, R, R_SEC_FIELD, ImBuf::rect, TexResult::ta, TexResult::talpha, TexResult::tb, TexResult::tg, TexResult::tr, ImBuf::x, and ImBuf::y.
Definition at line 113 of file imagetexture.c.
References BKE_image_get_ibuf(), boxsample(), BRICONTRGB, Tex::checkerdist, credits_svn_gen::e, Tex::extend, Tex::filtersize, ListBase::first, Tex::flag, ImBuf::flags, floorf, IB_fields, ibuf_get_color(), Image::ibufs, Tex::imaflag, Tex::iuser, MAX3(), TexResult::nor, NULL, R, R_NO_IMAGE_LOAD, R_SEC_FIELD, ImBuf::rect, ImBuf::rect_float, TexResult::ta, TexResult::talpha, TexResult::tb, TEX_CALCALPHA, TEX_CHECKER, TEX_CHECKER_EVEN, TEX_CHECKER_ODD, TEX_CLIP, TEX_CLIPCUBE, TEX_EXTEND, TEX_IMAROT, TEX_INTERPOL, TEX_NEGALPHA, TEX_NORMALMAP, TEX_REPEAT, TEX_USEALPHA, TexResult::tg, TexResult::tin, TexResult::tr, TRUE, ImBuf::x, and ImBuf::y.
Referenced by envmaptex(), multitex(), and render_realtime_texture().
| int imagewraposa | ( | Tex * | tex, |
| Image * | ima, | ||
| ImBuf * | ibuf, | ||
| const float | texvec[3], | ||
| const float | DXT[3], | ||
| const float | DYT[3], | ||
| TexResult * | texres | ||
| ) |
Definition at line 1413 of file imagetexture.c.
References BKE_image_get_ibuf(), boxsample(), BRICONTRGB, Tex::checkerdist, copy_v3_v3(), credits_svn_gen::e, Tex::extend, Tex::filtersize, ListBase::first, Tex::flag, ImBuf::flags, IB_fields, Image::ibufs, Tex::imaflag, image_mipmap_test(), imagewraposa_aniso(), Tex::iuser, MAX2, MAX3(), MIN2, MIN3, ImBuf::mipmap, TexResult::nor, NULL, R, R_FIELDS, R_NO_IMAGE_LOAD, R_SEC_FIELD, ImBuf::rect, ImBuf::rect_float, SWAP, TexResult::ta, TexResult::talpha, TexResult::tb, 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_NORMALMAP, TEX_REPEAT, TEX_REPEAT_XMIR, TEX_REPEAT_YMIR, TEX_USEALPHA, Tex::texfilter, TexResult::tg, TexResult::tin, TexResult::tr, TXF_BOX, ImBuf::x, and ImBuf::y.
Referenced by envmaptex(), multitex(), and render_realtime_texture().
| static int imagewraposa_aniso | ( | Tex * | tex, |
| Image * | ima, | ||
| ImBuf * | ibuf, | ||
| const float | texvec[3], | ||
| float | dxt[3], | ||
| float | dyt[3], | ||
| TexResult * | texres | ||
| ) | [static] |
Definition at line 1023 of file imagetexture.c.
References A, Tex::afmax, alpha_clip_aniso(), area_sample(), B, BKE_image_get_ibuf(), BRICONTRGB, C, Tex::checkerdist, copy_v2_v2(), afdata_t::dusc, afdata_t::dvsc, afdata_t::dxt, afdata_t::dyt, credits_svn_gen::e, ewa_eval(), Tex::extend, afdata_t::extflag, F, feline_eval(), Tex::filtersize, ListBase::first, Tex::flag, ImBuf::flags, floorf, IB_fields, IB_MIPMAP_LEVELS, Image::ibufs, Tex::imaflag, image_mipmap_test(), imp2radangle(), afdata_t::intpol, afdata_t::iProbes, ISNAN, Tex::iuser, len_v2(), logf, M_LOG2E, afdata_t::majrad, MAX2, MAX3(), MIN2, MIN3, afdata_t::minrad, ImBuf::mipmap, mul_v2_fl(), TexResult::nor, NULL, R, R_FIELDS, R_NO_IMAGE_LOAD, R_SEC_FIELD, ImBuf::rect, ImBuf::rect_float, sqrtf, SWAP, TexResult::ta, TexResult::talpha, TexResult::tb, 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_NORMALMAP, TEX_REPEAT, TEX_REPEAT_XMIR, TEX_REPEAT_YMIR, TEX_USEALPHA, Tex::texfilter, TexResult::tg, afdata_t::theta, TexResult::tin, TexResult::tr, TXC_EXTD, TXC_REPT, TXC_XMIR, TXC_YMIR, TXF_AREA, TXF_EWA, TXF_FELINE, ImBuf::x, and ImBuf::y.
Referenced by imagewraposa().
| static void imp2radangle | ( | float | A, |
| float | B, | ||
| float | C, | ||
| float | F, | ||
| float * | a, | ||
| float * | b, | ||
| float * | th, | ||
| float * | ecc | ||
| ) | [static] |
Definition at line 817 of file imagetexture.c.
References atan2f, C, simple_enum_gen::d, credits_svn_gen::e, M_PI, and sqrtf.
Referenced by ewa_eval(), and imagewraposa_aniso().
| static void radangle2imp | ( | float | a2, |
| float | b2, | ||
| float | th, | ||
| float * | A, | ||
| float * | B, | ||
| float * | C, | ||
| float * | F | ||
| ) | [static] |
| static float square_rctf | ( | rctf * | rf | ) | [static] |
Definition at line 398 of file imagetexture.c.
References rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by boxsample().
float EWA_WTS[EWA_MAXIDX+1] [static] |
Definition at line 762 of file imagetexture.c.
Referenced by ewa_eval(), and feline_eval().
Definition at line 127 of file pipeline.c.