Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pinzon Fernandez <apinzonf@gmail.com>2013-12-11 20:10:22 +0400
committerAlexander Pinzon Fernandez <apinzonf@gmail.com>2013-12-11 20:10:22 +0400
commit2658a3c1b44717f497f187a38000c804eb37bbba (patch)
treeee55c673feabced8b6ec8bf9a8aa4d82a3cda3db /source/blender/editors/space_view3d/drawobject.c
parent4005cb1c6a63a217df0e887c741beee2c1359301 (diff)
parent09b859d03f0ee138c4273ef8460e91d9888387a1 (diff)
Merge branch 'master' into soc-2013-sketch_meshsoc-2013-sketch_mesh
Conflicts: release/scripts/addons source/blender/blenloader/intern/readfile.c source/blender/blenloader/intern/writefile.c source/blender/editors/object/object_modifier.c source/blender/makesrna/intern/rna_modifier.c source/blender/modifiers/intern/MOD_laplaciandeform.c
Diffstat (limited to 'source/blender/editors/space_view3d/drawobject.c')
-rw-r--r--source/blender/editors/space_view3d/drawobject.c51
1 files changed, 24 insertions, 27 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 2083da2d64f..225c58207e7 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -1210,18 +1210,16 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
/* skip drawing extra info */
}
else if ((la->type == LA_SPOT) || (la->type == LA_YF_PHOTON)) {
- lvec[0] = lvec[1] = 0.0;
- lvec[2] = 1.0;
- x = rv3d->persmat[0][2];
- y = rv3d->persmat[1][2];
- z = rv3d->persmat[2][2];
- vvec[0] = x * ob->obmat[0][0] + y * ob->obmat[0][1] + z * ob->obmat[0][2];
- vvec[1] = x * ob->obmat[1][0] + y * ob->obmat[1][1] + z * ob->obmat[1][2];
- vvec[2] = x * ob->obmat[2][0] + y * ob->obmat[2][1] + z * ob->obmat[2][2];
-
- y = cosf(la->spotsize * (float)(M_PI / 360.0));
- spotvolume(lvec, vvec, y);
+
+ copy_v3_fl3(lvec, 0.0f, 0.0f, 1.0f);
+ copy_v3_fl3(vvec, rv3d->persmat[0][2], rv3d->persmat[1][2], rv3d->persmat[2][2]);
+ mul_mat3_m4_v3(ob->obmat, vvec);
+
x = -la->dist;
+ y = cosf(la->spotsize * 0.5f);
+ z = x * sqrtf(1.0f - y * y);
+
+ spotvolume(lvec, vvec, y);
mul_v3_fl(lvec, x);
mul_v3_fl(vvec, x);
@@ -1232,7 +1230,6 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
glVertex3fv(lvec);
glEnd();
- z = x * sqrtf(1.0f - y * y);
x *= y;
/* draw the circle/square at the end of the cone */
@@ -3126,7 +3123,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
if (dt > OB_WIRE) {
draw_mesh_paint_weight_faces(finalDM, true, draw_em_fancy__setFaceOpts, me->edit_btmesh);
- bglPolygonOffset(rv3d->dist, 1.0);
+ ED_view3d_polygon_offset(rv3d, 1.0);
glDepthMask(0);
}
else {
@@ -3176,7 +3173,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
* write to show selected edge wires better */
UI_ThemeColor(TH_WIRE_EDIT);
- bglPolygonOffset(rv3d->dist, 1.0);
+ ED_view3d_polygon_offset(rv3d, 1.0);
glDepthMask(0);
}
else {
@@ -3322,12 +3319,12 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
if (dt > OB_WIRE) {
glDepthMask(1);
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
GPU_disable_material();
}
#if 0 /* currently not needed */
else if (use_occlude_wire) {
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
}
#endif
}
@@ -3568,7 +3565,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
* otherwise this wire is to overlay solid mode faces so do some depth buffer tricks.
*/
if (dt != OB_WIRE && (draw_wire == OBDRAW_WIRE_ON_DEPTH)) {
- bglPolygonOffset(rv3d->dist, 1.0);
+ ED_view3d_polygon_offset(rv3d, 1.0);
glDepthMask(0); /* disable write in zbuffer, selected edge wires show better */
}
@@ -3576,7 +3573,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
if (dt != OB_WIRE && (draw_wire == OBDRAW_WIRE_ON_DEPTH)) {
glDepthMask(1);
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
}
}
@@ -3586,10 +3583,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glPointSize(UI_GetThemeValuef(TH_VERTEX_SIZE));
if (!use_depth) glDisable(GL_DEPTH_TEST);
- else bglPolygonOffset(rv3d->dist, 1.0);
+ else ED_view3d_polygon_offset(rv3d, 1.0);
drawSelectedVertices(dm, ob->data);
if (!use_depth) glEnable(GL_DEPTH_TEST);
- else bglPolygonOffset(rv3d->dist, 0.0);
+ else ED_view3d_polygon_offset(rv3d, 0.0);
glPointSize(1.0f);
}
@@ -4058,7 +4055,7 @@ static bool drawDispList_nobackface(Scene *scene, View3D *v3d, RegionView3D *rv3
if (BKE_mball_is_basis(ob)) {
lb = ob->curve_cache ? &ob->curve_cache->disp : NULL;
- if (ELEM(lb, lb->first, NULL)) {
+ if (ELEM(NULL, lb, lb->first)) {
BKE_displist_make_mball(scene, ob);
lb = &ob->curve_cache->disp;
}
@@ -5759,7 +5756,7 @@ static void draw_empty_cone(float size)
static void draw_textcurs(RegionView3D *rv3d, float textcurs[4][2])
{
cpack(0);
- bglPolygonOffset(rv3d->dist, -1.0);
+ ED_view3d_polygon_offset(rv3d, -1.0);
set_inverted_drawing(1);
glBegin(GL_QUADS);
glVertex2fv(textcurs[0]);
@@ -5768,7 +5765,7 @@ static void draw_textcurs(RegionView3D *rv3d, float textcurs[4][2])
glVertex2fv(textcurs[3]);
glEnd();
set_inverted_drawing(0);
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
}
static void drawspiral(const float cent[3], float rad, float tmat[4][4], int start)
@@ -6380,7 +6377,7 @@ static void draw_wire_extra(Scene *scene, RegionView3D *rv3d, Object *ob, unsign
glColor3ubv(ob_wire_col);
}
- bglPolygonOffset(rv3d->dist, 1.0);
+ ED_view3d_polygon_offset(rv3d, 1.0);
glDepthMask(0); /* disable write in zbuffer, selected edge wires show better */
if (ELEM3(ob->type, OB_FONT, OB_CURVE, OB_SURF)) {
@@ -6406,7 +6403,7 @@ static void draw_wire_extra(Scene *scene, RegionView3D *rv3d, Object *ob, unsign
}
glDepthMask(1);
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
}
}
@@ -7559,7 +7556,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
else
bm_solidoffs = 1;
- bglPolygonOffset(rv3d->dist, 1.0);
+ ED_view3d_polygon_offset(rv3d, 1.0);
/* we draw edges always, for loop (select) tools */
bbs_mesh_wire(em, dm, bm_solidoffs);
@@ -7574,7 +7571,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
bm_vertoffs = bm_wireoffs;
}
- bglPolygonOffset(rv3d->dist, 0.0);
+ ED_view3d_polygon_offset(rv3d, 0.0);
dm->release(dm);
}