Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/overlay/overlay_gpencil.c
| Show First 20 Lines • Show All 198 Lines • ▼ Show 20 Lines | void OVERLAY_gpencil_cache_init(OVERLAY_Data *vedata) | ||||
| if (gpd == NULL || ob->type != OB_GPENCIL) { | if (gpd == NULL || ob->type != OB_GPENCIL) { | ||||
| return; | return; | ||||
| } | } | ||||
| const bool show_overlays = (v3d->flag2 & V3D_HIDE_OVERLAYS) == 0; | const bool show_overlays = (v3d->flag2 & V3D_HIDE_OVERLAYS) == 0; | ||||
| const bool show_grid = (v3d->gp_flag & V3D_GP_SHOW_GRID) != 0 && | const bool show_grid = (v3d->gp_flag & V3D_GP_SHOW_GRID) != 0 && | ||||
| ((ts->gpencil_v3d_align & | ((ts->gpencil_v3d_align & | ||||
| (GP_PROJECT_DEPTH_VIEW | GP_PROJECT_DEPTH_STROKE)) == 0); | (GP_PROJECT_DEPTH_VIEW | GP_PROJECT_DEPTH_STROKE)) == 0); | ||||
| const bool grid_xray = (v3d->gp_flag & V3D_GP_SHOW_GRID_XRAY); | |||||
| if (show_grid && show_overlays) { | if (show_grid && show_overlays) { | ||||
| const char *grid_unit = NULL; | const char *grid_unit = NULL; | ||||
| float mat[4][4]; | float mat[4][4]; | ||||
| float col_grid[4]; | float col_grid[4]; | ||||
| float size[2]; | float size[2]; | ||||
| /* set color */ | /* set color */ | ||||
| Show All 36 Lines | if (show_grid && show_overlays) { | ||||
| translate_m4(mat, gpd->grid.offset[0], gpd->grid.offset[1], 0.0f); | translate_m4(mat, gpd->grid.offset[0], gpd->grid.offset[1], 0.0f); | ||||
| mul_v2_v2fl(size, gpd->grid.scale, 2.0f * ED_scene_grid_scale(scene, &grid_unit)); | mul_v2_v2fl(size, gpd->grid.scale, 2.0f * ED_scene_grid_scale(scene, &grid_unit)); | ||||
| rescale_m4(mat, (float[3]){size[0], size[1], 0.0f}); | rescale_m4(mat, (float[3]){size[0], size[1], 0.0f}); | ||||
| const int gridlines = (gpd->grid.lines <= 0) ? 1 : gpd->grid.lines; | const int gridlines = (gpd->grid.lines <= 0) ? 1 : gpd->grid.lines; | ||||
| int line_ct = gridlines * 4 + 2; | int line_ct = gridlines * 4 + 2; | ||||
| DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_BLEND_ALPHA; | DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_ALPHA; | ||||
| state |= (grid_xray) ? DRW_STATE_DEPTH_ALWAYS : DRW_STATE_DEPTH_LESS_EQUAL; | |||||
| DRW_PASS_CREATE(psl->gpencil_canvas_ps, state); | DRW_PASS_CREATE(psl->gpencil_canvas_ps, state); | ||||
| sh = OVERLAY_shader_gpencil_canvas(); | sh = OVERLAY_shader_gpencil_canvas(); | ||||
| grp = DRW_shgroup_create(sh, psl->gpencil_canvas_ps); | grp = DRW_shgroup_create(sh, psl->gpencil_canvas_ps); | ||||
| DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | ||||
| DRW_shgroup_uniform_vec4_copy(grp, "color", col_grid); | DRW_shgroup_uniform_vec4_copy(grp, "color", col_grid); | ||||
| DRW_shgroup_uniform_vec3_copy(grp, "xAxis", mat[0]); | DRW_shgroup_uniform_vec3_copy(grp, "xAxis", mat[0]); | ||||
| DRW_shgroup_uniform_vec3_copy(grp, "yAxis", mat[1]); | DRW_shgroup_uniform_vec3_copy(grp, "yAxis", mat[1]); | ||||
| ▲ Show 20 Lines • Show All 140 Lines • Show Last 20 Lines | |||||