Blender V4.3
overlay_next_image.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
12
13namespace blender::draw::overlay {
14
15class Images {
16
17 public:
18 static eStereoViews images_stereo_eye(const Scene *scene, const View3D *v3d)
19 {
20 if ((scene->r.scemode & R_MULTIVIEW) == 0) {
21 return STEREO_LEFT_ID;
22 }
23 if (v3d->stereo3d_camera != STEREO_3D_ID) {
24 /* show only left or right camera */
25 return eStereoViews(v3d->stereo3d_camera);
26 }
27
28 return eStereoViews(v3d->multiview_eye);
29 }
30
31 static void stereo_setup(const Scene *scene, const View3D *v3d, ::Image *ima, ImageUser *iuser)
32 {
33 if (BKE_image_is_stereo(ima)) {
34 iuser->flag |= IMA_SHOW_STEREO;
35 iuser->multiview_eye = images_stereo_eye(scene, v3d);
36 BKE_image_multiview_index(ima, iuser);
37 }
38 else {
39 iuser->flag &= ~IMA_SHOW_STEREO;
40 }
41 }
42};
43
44} // namespace blender::draw::overlay
bool BKE_image_is_stereo(const Image *ima)
void BKE_image_multiview_index(const Image *ima, ImageUser *iuser)
@ IMA_SHOW_STEREO
@ R_MULTIVIEW
eStereoViews
@ STEREO_LEFT_ID
@ STEREO_3D_ID
static void stereo_setup(const Scene *scene, const View3D *v3d, ::Image *ima, ImageUser *iuser)
static eStereoViews images_stereo_eye(const Scene *scene, const View3D *v3d)
char multiview_eye
char stereo3d_camera