diff options
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_draw.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 83 |
1 files changed, 27 insertions, 56 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index dc00e55e0f4..9dd6ab8f841 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -583,7 +583,9 @@ static void draw_view_axis(RegionView3D *rv3d, rcti *rect) float ydisp = 0.0; /* vertical displacement to allow obj info text */ int bright = - 20 * (10 - U.rvibright); /* axis alpha offset (rvibright has range 0-10) */ float vec[3]; + char axis_text[2] = "x"; float dx, dy; + int i; startx += rect->xmin; starty += rect->ymin; @@ -594,60 +596,27 @@ static void draw_view_axis(RegionView3D *rv3d, rcti *rect) glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - /* X */ - vec[0] = 1; - vec[1] = vec[2] = 0; - mul_qt_v3(rv3d->viewquat, vec); - dx = vec[0] * k; - dy = vec[1] * k; - - UI_ThemeColorShadeAlpha(TH_AXIS_X, 0, bright); - glBegin(GL_LINES); - glVertex2f(startx, starty + ydisp); - glVertex2f(startx + dx, starty + dy + ydisp); - glEnd(); - - if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default_ascii(startx + dx + 2, starty + dy + ydisp + 2, 0.0f, "x", 1); - } - - /* BLF_draw_default disables blending */ - glEnable(GL_BLEND); - - /* Y */ - vec[1] = 1; - vec[0] = vec[2] = 0; - mul_qt_v3(rv3d->viewquat, vec); - dx = vec[0] * k; - dy = vec[1] * k; - - UI_ThemeColorShadeAlpha(TH_AXIS_Y, 0, bright); - glBegin(GL_LINES); - glVertex2f(startx, starty + ydisp); - glVertex2f(startx + dx, starty + dy + ydisp); - glEnd(); + for (i = 0; i < 3; i++) { + zero_v3(vec); + vec[i] = 1.0f; + mul_qt_v3(rv3d->viewquat, vec); + dx = vec[0] * k; + dy = vec[1] * k; - if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default_ascii(startx + dx + 2, starty + dy + ydisp + 2, 0.0f, "y", 1); - } + UI_ThemeColorShadeAlpha(TH_AXIS_X + i, 0, bright); + glBegin(GL_LINES); + glVertex2f(startx, starty + ydisp); + glVertex2f(startx + dx, starty + dy + ydisp); + glEnd(); - glEnable(GL_BLEND); - - /* Z */ - vec[2] = 1; - vec[1] = vec[0] = 0; - mul_qt_v3(rv3d->viewquat, vec); - dx = vec[0] * k; - dy = vec[1] * k; + if (fabsf(dx) > toll || fabsf(dy) > toll) { + BLF_draw_default_ascii(startx + dx + 2, starty + dy + ydisp + 2, 0.0f, axis_text, 1); + } - UI_ThemeColorShadeAlpha(TH_AXIS_Z, 0, bright); - glBegin(GL_LINES); - glVertex2f(startx, starty + ydisp); - glVertex2f(startx + dx, starty + dy + ydisp); - glEnd(); + axis_text[0]++; - if (fabsf(dx) > toll || fabsf(dy) > toll) { - BLF_draw_default_ascii(startx + dx + 2, starty + dy + ydisp + 2, 0.0f, "z", 1); + /* BLF_draw_default disables blending */ + glEnable(GL_BLEND); } /* restore line-width */ @@ -2050,7 +2019,9 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas /* lamp drawing messes with matrices, could be handled smarter... but this works */ (dob->ob->type == OB_LAMP) || (dob->type == OB_DUPLIGROUP && dob->animated) || - !(bb_tmp = BKE_object_boundbox_get(dob->ob))) + !(bb_tmp = BKE_object_boundbox_get(dob->ob)) || + draw_glsl_material(scene, dob->ob, v3d, dt) || + (base->object == OBACT && v3d->flag2 & V3D_SOLID_MATCAP)) { // printf("draw_dupli_objects_color: skipping displist for %s\n", dob->ob->id.name + 2); use_displist = false; @@ -3025,12 +2996,12 @@ static void view3d_main_area_draw_engine_info(View3D *v3d, RegionView3D *rv3d, A /* draw darkened background color. no alpha because border render does * partial redraw and will not redraw the area behind this info bar */ float alpha = 1.0f - fill_color[3]; - - if (rv3d->persp == RV3D_CAMOB && v3d->camera && v3d->camera->type == OB_CAMERA) { - Camera *ca = v3d->camera->data; + Camera *camera = ED_view3d_camera_data_get(v3d, rv3d); - if (ca && (ca->flag & CAM_SHOWPASSEPARTOUT)) - alpha *= (1.0f - ca->passepartalpha); + if (camera) { + if (camera->flag & CAM_SHOWPASSEPARTOUT) { + alpha *= (1.0f - camera->passepartalpha); + } } UI_GetThemeColor3fv(TH_HIGH_GRAD, fill_color); |