Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_manager_exec.c
| Show First 20 Lines • Show All 1,309 Lines • ▼ Show 20 Lines | static void drw_draw_pass_ex(DRWPass *pass, DRWShadingGroup *start_group, DRWShadingGroup *end_group) | ||||
| } | } | ||||
| DST.shader = NULL; | DST.shader = NULL; | ||||
| BLI_assert(DST.buffer_finish_called && "DRW_render_instance_buffer_finish had not been called before drawing"); | BLI_assert(DST.buffer_finish_called && "DRW_render_instance_buffer_finish had not been called before drawing"); | ||||
| drw_update_view(); | drw_update_view(); | ||||
| /* GPU_framebuffer_clear calls can change the state outside the DRW module. | |||||
| * Force reset the affected states to avoid problems later. */ | |||||
| drw_state_set(DST.state | DRW_STATE_WRITE_DEPTH | DRW_STATE_WRITE_COLOR); | |||||
| drw_state_set(pass->state); | drw_state_set(pass->state); | ||||
| DRW_stats_query_start(pass->name); | DRW_stats_query_start(pass->name); | ||||
| for (DRWShadingGroup *shgroup = start_group; shgroup; shgroup = shgroup->next) { | for (DRWShadingGroup *shgroup = start_group; shgroup; shgroup = shgroup->next) { | ||||
| draw_shgroup(shgroup, pass->state); | draw_shgroup(shgroup, pass->state); | ||||
| /* break if upper limit */ | /* break if upper limit */ | ||||
| if (shgroup == end_group) { | if (shgroup == end_group) { | ||||
| ▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines | |||||