bugfix and cleanup

- BGE Shader.setSampler(name, index): index range check was wrong.
- Compositor check for an invalid channel was incorrect.
- getting the center of selected verts used an uninitalized z axis.
- do_init_render_material() used && rather then & when testing for MA_TRANSP.
- weight paint activate flipped bone used && rather then & for flag checking.
This commit is contained in:
Campbell Barton 2010-04-17 15:47:00 +00:00
parent 3afd8d6cc8
commit 392e1da179
16 changed files with 18 additions and 17 deletions

@ -445,7 +445,7 @@ static int mdisp_corners(MDisps *s)
return (s->totdisp % (3*3) == 0)? 3: 4; return (s->totdisp % (3*3) == 0)? 3: 4;
} }
static void layerSwap_mdisps(void *data, int *ci) static void layerSwap_mdisps(void *data, const int *ci)
{ {
MDisps *s = data; MDisps *s = data;
float (*d)[3] = NULL; float (*d)[3] = NULL;

@ -730,7 +730,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
/* since the raytracer doesnt recalc O structs for each ray, we have to preset them all */ /* since the raytracer doesnt recalc O structs for each ray, we have to preset them all */
if(r_mode & R_RAYTRACE) { if(r_mode & R_RAYTRACE) {
if((ma->mode & (MA_RAYMIRROR|MA_SHADOW_TRA)) || ((ma->mode && MA_TRANSP) && (ma->mode & MA_RAYTRANSP))) { if((ma->mode & (MA_RAYMIRROR|MA_SHADOW_TRA)) || ((ma->mode & MA_TRANSP) && (ma->mode & MA_RAYTRANSP))) {
ma->texco |= NEED_UV|TEXCO_ORCO|TEXCO_REFL|TEXCO_NORM; ma->texco |= NEED_UV|TEXCO_ORCO|TEXCO_REFL|TEXCO_NORM;
if(r_mode & R_OSA) ma->texco |= TEXCO_OSA; if(r_mode & R_OSA) ma->texco |= TEXCO_OSA;
} }

@ -396,7 +396,7 @@ void free_hair(Object *ob, ParticleSystem *psys, int dynamics)
if(dynamics) { if(dynamics) {
BKE_ptcache_free_list(&psys->ptcaches); BKE_ptcache_free_list(&psys->ptcaches);
psys->clmd->point_cache = psys->pointcache = NULL; psys->clmd->point_cache = psys->pointcache = NULL;
psys->clmd->ptcaches.first = psys->clmd->ptcaches.first = NULL; psys->clmd->ptcaches.first = psys->clmd->ptcaches.last = NULL;
modifier_free((ModifierData*)psys->clmd); modifier_free((ModifierData*)psys->clmd);

@ -2385,7 +2385,7 @@ void particle_fluidsim(ParticleSystem *psys, ParticleData *pa, ParticleSettings
static void apply_particle_fluidsim(ParticleSystem *psys, ParticleData *pa, ParticleSettings *part, ParticleSimulationData *sim, float dfra, float cfra){ static void apply_particle_fluidsim(ParticleSystem *psys, ParticleData *pa, ParticleSettings *part, ParticleSimulationData *sim, float dfra, float cfra){
ParticleTarget *pt; ParticleTarget *pt;
float dtime = dfra*psys_get_timestep(sim); // float dtime = dfra*psys_get_timestep(sim);
float particle_mass = part->mass; float particle_mass = part->mass;
particle_fluidsim(psys, pa, part, sim, dfra, cfra, particle_mass); particle_fluidsim(psys, pa, part, sim, dfra, cfra, particle_mass);
@ -3688,7 +3688,7 @@ static void system_step(ParticleSimulationData *sim, float cfra)
PARTICLE_P; PARTICLE_P;
int oldtotpart; int oldtotpart;
float disp, *vg_vel= 0, *vg_tan= 0, *vg_rot= 0, *vg_size= 0; float disp, *vg_vel= 0, *vg_tan= 0, *vg_rot= 0, *vg_size= 0;
int init= 0, emit= 0, only_children_changed= 0; int init= 0, emit= 0; //, only_children_changed= 0;
int framenr, framedelta, startframe = 0, endframe = 100; int framenr, framedelta, startframe = 0, endframe = 100;
framenr= (int)sim->scene->r.cfra; framenr= (int)sim->scene->r.cfra;

@ -29,6 +29,7 @@
*/ */
#include <errno.h> #include <errno.h>
#include <string.h>
#include "MEM_guardedalloc.h" #include "MEM_guardedalloc.h"

@ -136,7 +136,7 @@ UvCameraInfo *project_camera_info(Object *ob, float (*rotmat)[4], float winx, fl
uci.do_persp = (camera->type==CAM_PERSP); uci.do_persp = (camera->type==CAM_PERSP);
uci.camangle= lens_to_angle(camera->lens) / 2.0f; uci.camangle= lens_to_angle(camera->lens) / 2.0f;
uci.camsize= uci.do_persp ? uci.camsize= tanf(uci.camangle) : camera->ortho_scale; uci.camsize= uci.do_persp ? tanf(uci.camangle) : camera->ortho_scale;
if (invert_m4_m4(uci.caminv, ob->obmat)) { if (invert_m4_m4(uci.caminv, ob->obmat)) {
UvCameraInfo *uci_pt; UvCameraInfo *uci_pt;

@ -1459,7 +1459,7 @@ void pose_activate_flipped_bone(Scene *scene)
if(ob==NULL) return; if(ob==NULL) return;
if(ob->mode && OB_MODE_WEIGHT_PAINT) { if(ob->mode & OB_MODE_WEIGHT_PAINT) {
ob= modifiers_isDeformedByArmature(ob); ob= modifiers_isDeformedByArmature(ob);
} }
if(ob && (ob->mode & OB_MODE_POSE)) { if(ob && (ob->mode & OB_MODE_POSE)) {

@ -629,7 +629,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op)
int len=0; int len=0;
short numcuts= RNA_int_get(op->ptr, "num_cuts"); short numcuts= RNA_int_get(op->ptr, "num_cuts");
short mode= RNA_int_get(op->ptr, "type"); short mode= RNA_int_get(op->ptr, "type");
int corner_cut_pattern= RNA_enum_get(op->ptr,"corner_cut_pattern"); // int corner_cut_pattern= RNA_enum_get(op->ptr,"corner_cut_pattern");
/* edit-object needed for matrix, and ar->regiondata for projections to work */ /* edit-object needed for matrix, and ar->regiondata for projections to work */
if (ELEM3(NULL, obedit, ar, ar->regiondata)) if (ELEM3(NULL, obedit, ar, ar->regiondata))

@ -4058,7 +4058,7 @@ static void editmesh_calc_selvert_center(EditMesh *em, float cent_r[3])
EditVert *eve; EditVert *eve;
int nsel= 0; int nsel= 0;
cent_r[0]= cent_r[1]= cent_r[0]= 0.0; zero_v3(cent_r);
for (eve= em->verts.first; eve; eve= eve->next) { for (eve= em->verts.first; eve; eve= eve->next) {
if (eve->f & SELECT) { if (eve->f & SELECT) {

@ -903,7 +903,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *op)
ListBase anim_data = {NULL, NULL}; ListBase anim_data = {NULL, NULL};
bAnimListElem *ale; bAnimListElem *ale;
int filter; int filter;
int flag = 0; // int flag = 0;
/* get editor data */ /* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0) if (ANIM_animdata_get_context(C, &ac) == 0)

@ -1636,7 +1636,7 @@ static const char *rna_property_typename(PropertyType type)
} }
} }
static const char *rna_property_subtypename(PropertyType type) static const char *rna_property_subtypename(PropertySubType type)
{ {
switch(type) { switch(type) {
case PROP_NONE: return "PROP_NONE"; case PROP_NONE: return "PROP_NONE";

@ -578,9 +578,9 @@ CompBuf *valbuf_from_rgbabuf(CompBuf *cbuf, int channel)
valbuf->yof= cbuf->yof; valbuf->yof= cbuf->yof;
valf= valbuf->rect; valf= valbuf->rect;
/* defaults to returning alpha channel */ /* defaults to returning alpha channel */
if ((channel < CHAN_R) && (channel > CHAN_A)) channel = CHAN_A; if ((channel < CHAN_R) || (channel > CHAN_A)) channel = CHAN_A;
rectf= cbuf->rect + channel; rectf= cbuf->rect + channel;

@ -74,7 +74,7 @@ BL_ArmatureConstraint::BL_ArmatureConstraint(
bConstraint *constraint, bConstraint *constraint,
KX_GameObject* target, KX_GameObject* target,
KX_GameObject* subtarget) KX_GameObject* subtarget)
: PyObjectPlus(), m_armature(armature), m_constraint(constraint), m_posechannel(posechannel) : PyObjectPlus(), m_constraint(constraint), m_posechannel(posechannel), m_armature(armature)
{ {
m_target = target; m_target = target;
m_blendtarget = (target) ? target->GetBlenderObject() : NULL; m_blendtarget = (target) ? target->GetBlenderObject() : NULL;

@ -884,7 +884,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSampler, "setSampler(name, index)" )
{ {
int loc = GetUniformLocation(uniform); int loc = GetUniformLocation(uniform);
if(loc != -1) { if(loc != -1) {
if(index >= MAXTEX && index < 0) if(index >= MAXTEX || index < 0)
spit("Invalid texture sample index: " << index); spit("Invalid texture sample index: " << index);
#ifdef SORT_UNIFORMS #ifdef SORT_UNIFORMS

@ -380,7 +380,7 @@ PyTypeObject KX_CameraActuator::Type = {
}; };
PyMethodDef KX_CameraActuator::Methods[] = { PyMethodDef KX_CameraActuator::Methods[] = {
{NULL,NULL,NULL,NULL} //Sentinel {NULL, NULL} //Sentinel
}; };
PyAttributeDef KX_CameraActuator::Attributes[] = { PyAttributeDef KX_CameraActuator::Attributes[] = {

@ -299,7 +299,7 @@ PyMethodDef KX_SoundActuator::Methods[] = {
KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, startSound), KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, startSound),
KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, pauseSound), KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, pauseSound),
KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, stopSound), KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, stopSound),
{NULL,NULL,NULL,NULL} //Sentinel {NULL, NULL} //Sentinel
}; };
PyAttributeDef KX_SoundActuator::Attributes[] = { PyAttributeDef KX_SoundActuator::Attributes[] = {