Fix T60051: Wrong stroke projection when viewmode set to Front
authorAntonioya <blendergit@gmail.com>
Wed, 2 Jan 2019 16:43:09 +0000 (17:43 +0100)
committerAntonioya <blendergit@gmail.com>
Wed, 2 Jan 2019 16:43:27 +0000 (17:43 +0100)
As the z-depth is calculated using the internal drawing, if we use the front mode the z-depth is wrong. The Front or Back mode must be used only for display, but not for calculation.

source/blender/editors/gpencil/drawgpencil.c

index 5bb2d37..392c670 100644 (file)
@@ -712,7 +712,8 @@ static void gp_draw_stroke_3d(tGPDdraw *tgpw, short thickness, const float ink[4
        int keep_size = (int)((tgpw->gpd) && (tgpw->gpd->flag & GP_DATA_STROKE_KEEPTHICKNESS));
        immUniform1i("keep_size", keep_size);
        immUniform1i("pixfactor", tgpw->gpd->pixfactor);
-       immUniform1i("xraymode", tgpw->gpd->xray_mode);
+       /* xray mode always to 3D space to avoid wrong zdepth calculation (T60051) */
+       immUniform1i("xraymode", GP_XRAY_3DSPACE);
 
        /* draw stroke curve */
        GPU_line_width(max_ff(curpressure * thickness, 1.0f));