Fix opengl render preview in image editor broken
During multiview, invalidation of the display imbuf of the preview image was eaten by code eating elves.
This commit is contained in:
		| @@ -493,6 +493,8 @@ static void screen_opengl_render_apply(OGLRender *oglrender) | |||||||
| 	RenderResult *rr; | 	RenderResult *rr; | ||||||
| 	RenderView *rv; | 	RenderView *rv; | ||||||
| 	int view_id; | 	int view_id; | ||||||
|  | 	ImBuf *ibuf; | ||||||
|  | 	void *lock; | ||||||
|  |  | ||||||
| 	rr = RE_AcquireResultRead(oglrender->re); | 	rr = RE_AcquireResultRead(oglrender->re); | ||||||
| 	for (rv = rr->views.first, view_id = 0; rv; rv = rv->next, view_id++) { | 	for (rv = rr->views.first, view_id = 0; rv; rv = rv->next, view_id++) { | ||||||
| @@ -503,6 +505,12 @@ static void screen_opengl_render_apply(OGLRender *oglrender) | |||||||
|  |  | ||||||
| 	RE_ReleaseResult(oglrender->re); | 	RE_ReleaseResult(oglrender->re); | ||||||
|  |  | ||||||
|  | 	ibuf = BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock); | ||||||
|  | 	if (ibuf) { | ||||||
|  | 		ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID; | ||||||
|  | 	} | ||||||
|  | 	BKE_image_release_ibuf(oglrender->ima, ibuf, lock); | ||||||
|  |  | ||||||
| 	if (oglrender->write_still) { | 	if (oglrender->write_still) { | ||||||
| 		screen_opengl_render_write(oglrender); | 		screen_opengl_render_write(oglrender); | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user