svn merge ^/trunk/blender -r47067:47070
This commit is contained in:
@@ -275,9 +275,9 @@ static int ccg_edgebase(int level)
|
||||
|
||||
/***/
|
||||
|
||||
#define NormZero(av) { float *_a = (float *) av; _a[0] = _a[1] = _a[2] = 0.0f; }
|
||||
#define NormCopy(av, bv) { float *_a = (float *) av, *_b = (float *) bv; _a[0] = _b[0]; _a[1] = _b[1]; _a[2] = _b[2]; }
|
||||
#define NormAdd(av, bv) { float *_a = (float *) av, *_b = (float *) bv; _a[0] += _b[0]; _a[1] += _b[1]; _a[2] += _b[2]; }
|
||||
#define NormZero(av) { float *_a = (float *) av; _a[0] = _a[1] = _a[2] = 0.0f; } (void)0
|
||||
#define NormCopy(av, bv) { float *_a = (float *) av, *_b = (float *) bv; _a[0] = _b[0]; _a[1] = _b[1]; _a[2] = _b[2]; } (void)0
|
||||
#define NormAdd(av, bv) { float *_a = (float *) av, *_b = (float *) bv; _a[0] += _b[0]; _a[1] += _b[1]; _a[2] += _b[2]; } (void)0
|
||||
|
||||
/***/
|
||||
|
||||
|
||||
@@ -1321,7 +1321,7 @@ void clear_id_newpoins(void)
|
||||
}
|
||||
}
|
||||
|
||||
#define LIBTAG(a) if (a && a->id.lib) {a->id.flag &= ~LIB_INDIRECT; a->id.flag |= LIB_EXTERN; }
|
||||
#define LIBTAG(a) if (a && a->id.lib) {a->id.flag &= ~LIB_INDIRECT; a->id.flag |= LIB_EXTERN; } (void)0
|
||||
|
||||
static void lib_indirect_test_id(ID *id, Library *lib)
|
||||
{
|
||||
|
||||
@@ -103,11 +103,11 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
|
||||
MDeformVert *dverts, /* assume totvert length */
|
||||
const short do_verbose, const short do_fixes)
|
||||
{
|
||||
# define REMOVE_EDGE_TAG(_me) { _me->v2 = _me->v1; do_edge_free = TRUE; }
|
||||
# define REMOVE_EDGE_TAG(_me) { _me->v2 = _me->v1; do_edge_free = TRUE; } (void)0
|
||||
# define IS_REMOVED_EDGE(_me) (_me->v2 == _me->v1)
|
||||
|
||||
# define REMOVE_LOOP_TAG(_ml) { _ml->e = INVALID_LOOP_EDGE_MARKER; do_polyloop_free = TRUE; }
|
||||
# define REMOVE_POLY_TAG(_mp) { _mp->totloop *= -1; do_polyloop_free = TRUE; }
|
||||
# define REMOVE_LOOP_TAG(_ml) { _ml->e = INVALID_LOOP_EDGE_MARKER; do_polyloop_free = TRUE; } (void)0
|
||||
# define REMOVE_POLY_TAG(_mp) { _mp->totloop *= -1; do_polyloop_free = TRUE; } (void)0
|
||||
|
||||
MVert *mv = mverts;
|
||||
MEdge *me;
|
||||
|
||||
@@ -3751,9 +3751,14 @@ static int get_particle_uv(DerivedMesh *dm, ParticleData *pa, int face_index, co
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define SET_PARTICLE_TEXTURE(type, pvalue, texfac) if ((event & mtex->mapto) & type) {pvalue = texture_value_blend(def, pvalue, value, texfac, blend); }
|
||||
#define CLAMP_PARTICLE_TEXTURE_POS(type, pvalue) if (event & type) { if (pvalue < 0.f) pvalue = 1.f + pvalue; CLAMP(pvalue, 0.0f, 1.0f); }
|
||||
#define CLAMP_PARTICLE_TEXTURE_POSNEG(type, pvalue) if (event & type) { CLAMP(pvalue, -1.0f, 1.0f); }
|
||||
#define SET_PARTICLE_TEXTURE(type, pvalue, texfac) \
|
||||
if ((event & mtex->mapto) & type) {pvalue = texture_value_blend(def, pvalue, value, texfac, blend); } (void)0
|
||||
|
||||
#define CLAMP_PARTICLE_TEXTURE_POS(type, pvalue) \
|
||||
if (event & type) { if (pvalue < 0.0f) pvalue = 1.0f + pvalue; CLAMP(pvalue, 0.0f, 1.0f); } (void)0
|
||||
|
||||
#define CLAMP_PARTICLE_TEXTURE_POSNEG(type, pvalue) \
|
||||
if (event & type) { CLAMP(pvalue, -1.0f, 1.0f); } (void)0
|
||||
|
||||
static void get_cpa_texture(DerivedMesh *dm, ParticleSystem *psys, ParticleSettings *part, ParticleData *par, int child_index, int face_index, const float fw[4], float *orco, ParticleTexture *ptex, int event, float cfra)
|
||||
{
|
||||
@@ -3884,26 +3889,26 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex
|
||||
else
|
||||
ptex->time = texture_value_blend(def, ptex->time, value, mtex->timefac, blend);
|
||||
}
|
||||
SET_PARTICLE_TEXTURE(PAMAP_LIFE, ptex->life, mtex->lifefac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_DENS, ptex->exist, mtex->padensfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_SIZE, ptex->size, mtex->sizefac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_IVEL, ptex->ivel, mtex->ivelfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_FIELD, ptex->field, mtex->fieldfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_GRAVITY, ptex->gravity, mtex->gravityfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_DAMP, ptex->damp, mtex->dampfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_LENGTH, ptex->length, mtex->lengthfac)
|
||||
SET_PARTICLE_TEXTURE(PAMAP_LIFE, ptex->life, mtex->lifefac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_DENS, ptex->exist, mtex->padensfac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_SIZE, ptex->size, mtex->sizefac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_IVEL, ptex->ivel, mtex->ivelfac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_FIELD, ptex->field, mtex->fieldfac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_GRAVITY, ptex->gravity, mtex->gravityfac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_DAMP, ptex->damp, mtex->dampfac);
|
||||
SET_PARTICLE_TEXTURE(PAMAP_LENGTH, ptex->length, mtex->lengthfac);
|
||||
}
|
||||
}
|
||||
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_TIME, ptex->time)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LIFE, ptex->life)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_SIZE, ptex->size)
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_IVEL, ptex->ivel)
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_FIELD, ptex->field)
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_GRAVITY, ptex->gravity)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DAMP, ptex->damp)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LENGTH, ptex->length)
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_TIME, ptex->time);
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LIFE, ptex->life);
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist);
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_SIZE, ptex->size);
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_IVEL, ptex->ivel);
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_FIELD, ptex->field);
|
||||
CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_GRAVITY, ptex->gravity);
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DAMP, ptex->damp);
|
||||
CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LENGTH, ptex->length);
|
||||
}
|
||||
/************************************************/
|
||||
/* Particle State */
|
||||
|
||||
@@ -99,8 +99,15 @@
|
||||
# include "BLI_winstuff.h"
|
||||
#endif
|
||||
|
||||
#define PTCACHE_DATA_FROM(data, type, from) if (data[type]) { memcpy(data[type], from, ptcache_data_size[type]); }
|
||||
#define PTCACHE_DATA_TO(data, type, index, to) if (data[type]) { memcpy(to, (char*)data[type] + (index ? index * ptcache_data_size[type] : 0), ptcache_data_size[type]); }
|
||||
#define PTCACHE_DATA_FROM(data, type, from) \
|
||||
if (data[type]) { \
|
||||
memcpy(data[type], from, ptcache_data_size[type]); \
|
||||
} (void)0
|
||||
|
||||
#define PTCACHE_DATA_TO(data, type, index, to) \
|
||||
if (data[type]) { \
|
||||
memcpy(to, (char *)(data)[type] + ((index) ? (index) * ptcache_data_size[type] : 0), ptcache_data_size[type]); \
|
||||
} (void)0
|
||||
|
||||
/* could be made into a pointcache option */
|
||||
#define DURIAN_POINTCACHE_LIB_OK 1
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef SWAP
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; }
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; } (void)0
|
||||
#endif
|
||||
|
||||
#ifndef CLAMP
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
/* some math and copy defines */
|
||||
|
||||
#ifndef SWAP
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; }
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; } (void)0
|
||||
#endif
|
||||
|
||||
#define ABS(a) ( (a) < 0 ? (-(a)) : (a) )
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "BLI_kdtree.h"
|
||||
|
||||
#ifndef SWAP
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; }
|
||||
# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; } (void)0
|
||||
#endif
|
||||
|
||||
typedef struct KDTreeNode {
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
#define MAX3(x,y,z) MAX2( MAX2((x),(y)) , (z) )
|
||||
#define MAX4(x,y,z,a) MAX2( MAX2((x),(y)) , MAX2((z),(a)) )
|
||||
|
||||
#define SWAP(type, a, b) { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; }
|
||||
#define SWAP(type, a, b) { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; } (void)0
|
||||
|
||||
#define ABS(x) ((x) < 0 ? -(x) : (x))
|
||||
#define FLOOR(x) ((int)(x) - ((x) < 0 && (x) != (int)(x)))
|
||||
|
||||
@@ -475,8 +475,8 @@ static void NodeDegreeIncrement(ReebGraph *UNUSED(rg), ReebNode *node)
|
||||
}
|
||||
|
||||
#else
|
||||
#define NodeDegreeDecrement(rg, node) {node->degree--; }
|
||||
#define NodeDegreeIncrement(rg, node) {node->degree++; }
|
||||
# define NodeDegreeDecrement(rg, node) {node->degree--; } (void)0
|
||||
# define NodeDegreeIncrement(rg, node) {node->degree++; } (void)0
|
||||
#endif
|
||||
|
||||
void repositionNodes(ReebGraph *rg)
|
||||
|
||||
@@ -43,9 +43,9 @@ struct Scene;
|
||||
|
||||
/* --------- BezTriple Selection ------------- */
|
||||
|
||||
#define BEZ_SEL(bezt) { (bezt)->f1 |= SELECT; (bezt)->f2 |= SELECT; (bezt)->f3 |= SELECT; }
|
||||
#define BEZ_DESEL(bezt) { (bezt)->f1 &= ~SELECT; (bezt)->f2 &= ~SELECT; (bezt)->f3 &= ~SELECT; }
|
||||
#define BEZ_INVSEL(bezt) { (bezt)->f1 ^= SELECT; (bezt)->f2 ^= SELECT; (bezt)->f3 ^= SELECT; }
|
||||
#define BEZ_SEL(bezt) { (bezt)->f1 |= SELECT; (bezt)->f2 |= SELECT; (bezt)->f3 |= SELECT; } (void)0
|
||||
#define BEZ_DESEL(bezt) { (bezt)->f1 &= ~SELECT; (bezt)->f2 &= ~SELECT; (bezt)->f3 &= ~SELECT; } (void)0
|
||||
#define BEZ_INVSEL(bezt) { (bezt)->f1 ^= SELECT; (bezt)->f2 ^= SELECT; (bezt)->f3 ^= SELECT; } (void)0
|
||||
|
||||
/* --------- Tool Flags ------------ */
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
/* avoid unneeded calls to ui_get_but_val */
|
||||
#define UI_BUT_VALUE_UNSET DBL_MAX
|
||||
#define UI_GET_BUT_VALUE_INIT(_but, _value) if (_value == DBL_MAX) { (_value) = ui_get_but_val(_but); }
|
||||
#define UI_GET_BUT_VALUE_INIT(_but, _value) if (_value == DBL_MAX) { (_value) = ui_get_but_val(_but); } (void)0
|
||||
|
||||
/*
|
||||
* a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt
|
||||
@@ -660,8 +660,8 @@ static int ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut
|
||||
/* typically the same pointers, but not on undo/redo */
|
||||
/* XXX some menu buttons store button itself in but->poin. Ugly */
|
||||
if (oldbut->poin != (char *)oldbut) {
|
||||
SWAP(char *, oldbut->poin, but->poin)
|
||||
SWAP(void *, oldbut->func_argN, but->func_argN)
|
||||
SWAP(char *, oldbut->poin, but->poin);
|
||||
SWAP(void *, oldbut->func_argN, but->func_argN);
|
||||
}
|
||||
|
||||
/* copy hardmin for list rows to prevent 'sticking' highlight to mouse position
|
||||
@@ -1090,7 +1090,7 @@ static void ui_is_but_sel(uiBut *but, double *value)
|
||||
|
||||
if (but->bit) {
|
||||
int lvalue;
|
||||
UI_GET_BUT_VALUE_INIT(but, *value)
|
||||
UI_GET_BUT_VALUE_INIT(but, *value);
|
||||
lvalue = (int)*value;
|
||||
if (BTST(lvalue, (but->bitnr)) ) is_push = is_true;
|
||||
else is_push = !is_true;
|
||||
@@ -1111,18 +1111,18 @@ static void ui_is_but_sel(uiBut *but, double *value)
|
||||
case BUT_TOGDUAL:
|
||||
case ICONTOG:
|
||||
case OPTION:
|
||||
UI_GET_BUT_VALUE_INIT(but, *value)
|
||||
UI_GET_BUT_VALUE_INIT(but, *value);
|
||||
if (*value != (double)but->hardmin) is_push = 1;
|
||||
break;
|
||||
case ICONTOGN:
|
||||
case TOGN:
|
||||
case OPTIONN:
|
||||
UI_GET_BUT_VALUE_INIT(but, *value)
|
||||
UI_GET_BUT_VALUE_INIT(but, *value);
|
||||
if (*value == 0.0) is_push = 1;
|
||||
break;
|
||||
case ROW:
|
||||
case LISTROW:
|
||||
UI_GET_BUT_VALUE_INIT(but, *value)
|
||||
UI_GET_BUT_VALUE_INIT(but, *value);
|
||||
/* support for rna enum buts */
|
||||
if (but->rnaprop && (RNA_property_flag(but->rnaprop) & PROP_ENUM_FLAG)) {
|
||||
if ((int)*value & (int)but->hardmax) is_push = 1;
|
||||
@@ -2171,7 +2171,7 @@ void ui_check_but(uiBut *but)
|
||||
|
||||
/* only update soft range while not editing */
|
||||
if (but->rnaprop && !(but->editval || but->editstr || but->editvec)) {
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
ui_set_but_soft_range(but, value);
|
||||
}
|
||||
|
||||
@@ -2182,7 +2182,7 @@ void ui_check_but(uiBut *but)
|
||||
case SCROLL:
|
||||
case NUMSLI:
|
||||
case HSVSLI:
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
if (value < (double)but->hardmin) ui_set_but_val(but, but->hardmin);
|
||||
else if (value > (double)but->hardmax) ui_set_but_val(but, but->hardmax);
|
||||
break;
|
||||
@@ -2190,7 +2190,7 @@ void ui_check_but(uiBut *but)
|
||||
case NUMABS:
|
||||
{
|
||||
double value_abs;
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
value_abs = fabs(value);
|
||||
if (value_abs < (double)but->hardmin) ui_set_but_val(but, but->hardmin);
|
||||
else if (value_abs > (double)but->hardmax) ui_set_but_val(but, but->hardmax);
|
||||
@@ -2206,14 +2206,14 @@ void ui_check_but(uiBut *but)
|
||||
|
||||
case ICONROW:
|
||||
if (!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) {
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
but->iconadd = (int)value - (int)(but->hardmin);
|
||||
}
|
||||
break;
|
||||
|
||||
case ICONTEXTROW:
|
||||
if (!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) {
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
but->iconadd = (int)value - (int)(but->hardmin);
|
||||
}
|
||||
break;
|
||||
@@ -2230,7 +2230,7 @@ void ui_check_but(uiBut *but)
|
||||
case ICONTEXTROW:
|
||||
|
||||
if (but->x2 - but->x1 > 24) {
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
ui_set_name_menu(but, (int)value);
|
||||
}
|
||||
break;
|
||||
@@ -2240,7 +2240,7 @@ void ui_check_but(uiBut *but)
|
||||
case HSVSLI:
|
||||
case NUMABS:
|
||||
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
|
||||
if (ui_is_but_float(but)) {
|
||||
if (value == (double) FLT_MAX) BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%sinf", but->str);
|
||||
@@ -2271,7 +2271,7 @@ void ui_check_but(uiBut *but)
|
||||
case LABEL:
|
||||
if (ui_is_but_float(but)) {
|
||||
int prec;
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
prec = ui_but_float_precision(but, value);
|
||||
BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s%.*f", but->str, prec, value);
|
||||
}
|
||||
@@ -2299,7 +2299,7 @@ void ui_check_but(uiBut *but)
|
||||
strcat(but->drawstr, "Press a key");
|
||||
}
|
||||
else {
|
||||
UI_GET_BUT_VALUE_INIT(but, value)
|
||||
UI_GET_BUT_VALUE_INIT(but, value);
|
||||
strcat(but->drawstr, WM_key_event_string((short)value));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -455,7 +455,7 @@ static int shape_key_move_exec(bContext *C, wmOperator *op)
|
||||
ob->shapenr++;
|
||||
}
|
||||
|
||||
SWAP(float, kb_other->pos, kb->pos) /* for absolute shape keys */
|
||||
SWAP(float, kb_other->pos, kb->pos); /* for absolute shape keys */
|
||||
}
|
||||
|
||||
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||
|
||||
@@ -1967,20 +1967,24 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
|
||||
cfra = ak->cfra;
|
||||
}
|
||||
}
|
||||
} while ((ak != NULL) && (done == 0));
|
||||
|
||||
/* any success? */
|
||||
if (done == 0)
|
||||
BKE_report(op->reports, RPT_INFO, "No more keyframes to jump to in this direction");
|
||||
|
||||
} while ((ak != NULL) && (done == FALSE));
|
||||
|
||||
/* free temp stuff */
|
||||
BLI_dlrbTree_free(&keys);
|
||||
|
||||
sound_seek_scene(bmain, scene);
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
/* any success? */
|
||||
if (done == FALSE) {
|
||||
BKE_report(op->reports, RPT_INFO, "No more keyframes to jump to in this direction");
|
||||
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
else {
|
||||
sound_seek_scene(bmain, scene);
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
}
|
||||
|
||||
static void SCREEN_OT_keyframe_jump(wmOperatorType *ot)
|
||||
|
||||
@@ -180,28 +180,29 @@ extern void node_ID_title_cb(void *node_v, void *unused_v);
|
||||
/* soms macros for color handling */
|
||||
typedef float fRGB[4];
|
||||
/* clear color */
|
||||
#define fRGB_clear(c) { c[0]=c[1]=c[2]=0.f; }
|
||||
#define fRGB_clear(c) { c[0]=c[1]=c[2]=0.f; } (void)0
|
||||
/* copy c2 to c1 */
|
||||
#define fRGB_copy(c1, c2) { c1[0]=c2[0]; c1[1]=c2[1]; c1[2]=c2[2]; c1[3]=c2[3]; }
|
||||
#define fRGB_copy(c1, c2) { c1[0]=c2[0]; c1[1]=c2[1]; c1[2]=c2[2]; c1[3]=c2[3]; } (void)0
|
||||
/* add c2 to c1 */
|
||||
#define fRGB_add(c1, c2) { c1[0]+=c2[0]; c1[1]+=c2[1]; c1[2]+=c2[2]; }
|
||||
#define fRGB_add(c1, c2) { c1[0]+=c2[0]; c1[1]+=c2[1]; c1[2]+=c2[2]; } (void)0
|
||||
/* subtract c2 from c1 */
|
||||
#define fRGB_sub(c1, c2) { c1[0]-=c2[0]; c1[1]-=c2[1]; c1[2]-=c2[2]; }
|
||||
#define fRGB_sub(c1, c2) { c1[0]-=c2[0]; c1[1]-=c2[1]; c1[2]-=c2[2]; } (void)0
|
||||
/* multiply c by float value s */
|
||||
#define fRGB_mult(c, s) { c[0]*=s; c[1]*=s; c[2]*=s; }
|
||||
#define fRGB_mult(c, s) { c[0]*=s; c[1]*=s; c[2]*=s; } (void)0
|
||||
/* multiply c2 by s and add to c1 */
|
||||
#define fRGB_madd(c1, c2, s) { c1[0]+=c2[0]*s; c1[1]+=c2[1]*s; c1[2]+=c2[2]*s; }
|
||||
#define fRGB_madd(c1, c2, s) { c1[0]+=c2[0]*s; c1[1]+=c2[1]*s; c1[2]+=c2[2]*s; } (void)0
|
||||
/* multiply c2 by color c1 */
|
||||
#define fRGB_colormult(c, cs) { c[0]*=cs[0]; c[1]*=cs[1]; c[2]*=cs[2]; }
|
||||
#define fRGB_colormult(c, cs) { c[0]*=cs[0]; c[1]*=cs[1]; c[2]*=cs[2]; } (void)0
|
||||
/* multiply c2 by color c3 and add to c1 */
|
||||
#define fRGB_colormadd(c1, c2, c3) { c1[0]+=c2[0]*c3[0]; c1[1]+=c2[1]*c3[1]; c1[2]+=c2[2]*c3[2]; }
|
||||
#define fRGB_colormadd(c1, c2, c3) { c1[0]+=c2[0]*c3[0]; c1[1]+=c2[1]*c3[1]; c1[2]+=c2[2]*c3[2]; } (void)0
|
||||
/* multiply c2 by color rgb, rgb as separate arguments */
|
||||
#define fRGB_rgbmult(c, r, g, b) { c[0]*=(r); c[1]*=(g); c[2]*=(b); }
|
||||
#define fRGB_rgbmult(c, r, g, b) { c[0]*=(r); c[1]*=(g); c[2]*=(b); } (void)0
|
||||
/* swap colors c1 & c2 */
|
||||
#define fRGB_swap(c1, c2) { float _t=c1[0]; c1[0]=c2[0]; c2[0]=_t;\
|
||||
_t=c1[1]; c1[1]=c2[1]; c2[1]=_t;\
|
||||
_t=c1[2]; c1[2]=c2[2]; c2[2]=_t;\
|
||||
_t=c1[3]; c1[3]=c2[3]; c3[3]=_t;}
|
||||
_t=c1[1]; c1[1]=c2[1]; c2[1]=_t;\
|
||||
_t=c1[2]; c1[2]=c2[2]; c2[2]=_t;\
|
||||
_t=c1[3]; c1[3]=c2[3]; c3[3]=_t;\
|
||||
} (void)0
|
||||
|
||||
void qd_getPixel(CompBuf* src, int x, int y, float* col);
|
||||
void qd_setPixel(CompBuf* src, int x, int y, float* col);
|
||||
|
||||
@@ -34,11 +34,6 @@
|
||||
|
||||
#include "render_types.h"
|
||||
|
||||
|
||||
/* vector defines */
|
||||
|
||||
#define CROSS(dest, a, b) { dest[0]= a[1] * b[2] - a[2] * b[1]; dest[1]= a[2] * b[0] - a[0] * b[2]; dest[2]= a[0] * b[1] - a[1] * b[0]; }
|
||||
|
||||
struct HaloRen;
|
||||
struct ShadeInput;
|
||||
struct ShadeResult;
|
||||
|
||||
@@ -306,17 +306,27 @@ void add_filt_fmask_coord(float filt[][3], const float col[4], float *rowbuf, in
|
||||
|
||||
|
||||
/* loop unroll */
|
||||
#define MASKFILT(i, j) val= lfilt[i][j]; if (val!=0.0f) {float *fp= fpoin[i][j]; fp[0]+= val*r; fp[1]+= val*g; fp[2]+= val*b; fp[3]+= val*al; }
|
||||
#define MASKFILT(i, j) \
|
||||
val = lfilt[i][j]; \
|
||||
if (val != 0.0f) { \
|
||||
float *fp = fpoin[i][j]; \
|
||||
fp[0] += val * r; \
|
||||
fp[1] += val * g; \
|
||||
fp[2] += val * b; \
|
||||
fp[3] += val * al; \
|
||||
} (void)0
|
||||
|
||||
MASKFILT(0, 0)
|
||||
MASKFILT(0, 1)
|
||||
MASKFILT(0, 2)
|
||||
MASKFILT(1, 0)
|
||||
MASKFILT(1, 1)
|
||||
MASKFILT(1, 2)
|
||||
MASKFILT(2, 0)
|
||||
MASKFILT(2, 1)
|
||||
MASKFILT(2, 2)
|
||||
MASKFILT(0, 0);
|
||||
MASKFILT(0, 1);
|
||||
MASKFILT(0, 2);
|
||||
MASKFILT(1, 0);
|
||||
MASKFILT(1, 1);
|
||||
MASKFILT(1, 2);
|
||||
MASKFILT(2, 0);
|
||||
MASKFILT(2, 1);
|
||||
MASKFILT(2, 2);
|
||||
|
||||
#undef MASKFILT
|
||||
}
|
||||
|
||||
void add_filt_fmask_pixsize(unsigned int mask, float *in, float *rowbuf, int row_w, int pixsize)
|
||||
|
||||
@@ -451,11 +451,19 @@ static float area_lamp_energy(float (*area)[3], const float co[3], const float v
|
||||
Normalize_d(vec[3]);
|
||||
|
||||
/* cross product */
|
||||
#define CROSS(dest, a, b) \
|
||||
{ dest[0]= a[1] * b[2] - a[2] * b[1]; \
|
||||
dest[1]= a[2] * b[0] - a[0] * b[2]; \
|
||||
dest[2]= a[0] * b[1] - a[1] * b[0]; \
|
||||
} (void)0
|
||||
|
||||
CROSS(cross[0], vec[0], vec[1]);
|
||||
CROSS(cross[1], vec[1], vec[2]);
|
||||
CROSS(cross[2], vec[2], vec[3]);
|
||||
CROSS(cross[3], vec[3], vec[0]);
|
||||
|
||||
#undef CROSS
|
||||
|
||||
Normalize_d(cross[0]);
|
||||
Normalize_d(cross[1]);
|
||||
Normalize_d(cross[2]);
|
||||
|
||||
@@ -1982,7 +1982,7 @@ void zbufclip4(ZSpan *zspan, int obi, int zvlnr, float *f1, float *f2, float *f3
|
||||
|
||||
/* ************** ZMASK ******************************** */
|
||||
|
||||
#define EXTEND_PIXEL(a) if (temprectp[a]) {z+= rectz[a]; tot++;}
|
||||
#define EXTEND_PIXEL(a) if (temprectp[a]) { z += rectz[a]; tot++; } (void)0
|
||||
|
||||
/* changes the zbuffer to be ready for z-masking: applies an extend-filter, and then clears */
|
||||
static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg)
|
||||
|
||||
Reference in New Issue
Block a user