Blender V5.0
overlay_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
8
9#pragma once
10
11#include "DNA_scene_types.h"
12
13#include "BKE_image.hh"
14
15namespace blender::draw::overlay {
16
17class Images {
18
19 public:
20 static eStereoViews images_stereo_eye(const Scene *scene, const View3D *v3d)
21 {
22 if ((scene->r.scemode & R_MULTIVIEW) == 0) {
23 return STEREO_LEFT_ID;
24 }
25 if (v3d->stereo3d_camera != STEREO_3D_ID) {
26 /* show only left or right camera */
27 return eStereoViews(v3d->stereo3d_camera);
28 }
29
30 return eStereoViews(v3d->multiview_eye);
31 }
32
33 static void stereo_setup(const Scene *scene, const View3D *v3d, ::Image *ima, ImageUser *iuser)
34 {
35 if (BKE_image_is_stereo(ima)) {
36 iuser->flag |= IMA_SHOW_STEREO;
37 iuser->multiview_eye = images_stereo_eye(scene, v3d);
38 BKE_image_multiview_index(ima, iuser);
39 }
40 else {
41 iuser->flag &= ~IMA_SHOW_STEREO;
42 }
43 }
44};
45
46} // 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
eStereoViews
@ STEREO_LEFT_ID
@ STEREO_3D_ID
@ R_MULTIVIEW
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)
struct RenderData r
char multiview_eye
char stereo3d_camera