Blender
V5.0
source
blender
draw
engines
eevee
eevee_camera_shared.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 "
GPU_shader_shared_utils.hh
"
12
13
#ifndef GPU_SHADER
14
namespace
blender::eevee
{
15
#endif
16
17
enum
eCameraType
: uint32_t {
18
CAMERA_PERSP
= 0u,
19
CAMERA_ORTHO
= 1u,
20
CAMERA_PANO_EQUIRECT
= 2u,
21
CAMERA_PANO_EQUISOLID
= 3u,
22
CAMERA_PANO_EQUIDISTANT
= 4u,
23
CAMERA_PANO_MIRROR
= 5u
24
};
25
26
static
inline
bool
is_panoramic
(
eCameraType
type)
27
{
28
return
type >
CAMERA_ORTHO
;
29
}
30
31
struct
CameraData
{
32
/* View Matrices of the camera, not from any view! */
33
float4x4
persmat
;
34
float4x4
persinv
;
35
float4x4
viewmat
;
36
float4x4
viewinv
;
37
float4x4
winmat
;
38
float4x4
wininv
;
40
float2
uv_scale
;
41
float2
uv_bias
;
43
float2
equirect_scale
;
44
float2
equirect_scale_inv
;
45
float2
equirect_bias
;
46
float
fisheye_fov
;
47
float
fisheye_lens
;
49
float
clip_near
;
50
float
clip_far
;
51
eCameraType
type
;
53
float
screen_diagonal_length
;
54
float
_pad0
;
55
float
_pad1
;
56
float
_pad2
;
57
58
bool32_t
initialized
;
59
60
#ifdef __cplusplus
61
/* Small constructor to allow detecting new buffers. */
62
CameraData
() :
initialized
(
false
) {};
63
#endif
64
};
65
BLI_STATIC_ASSERT_ALIGN
(CameraData, 16)
66
67
#ifndef GPU_SHADER
68
}
// namespace blender::eevee
69
#endif
BLI_STATIC_ASSERT_ALIGN
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition
BLI_assert.h:86
GPU_shader_shared_utils.hh
bool32_t
int32_t bool32_t
Definition
GPU_shader_shared_utils.hh:83
false
return false
Definition
bmesh_operator_api_inline.hh:198
blender::eevee
Definition
eevee_ambient_occlusion.cc:29
blender::eevee::eCameraType
eCameraType
Definition
eevee_camera_shared.hh:17
blender::eevee::CAMERA_PANO_MIRROR
@ CAMERA_PANO_MIRROR
Definition
eevee_camera_shared.hh:23
blender::eevee::CAMERA_PERSP
@ CAMERA_PERSP
Definition
eevee_camera_shared.hh:18
blender::eevee::CAMERA_PANO_EQUISOLID
@ CAMERA_PANO_EQUISOLID
Definition
eevee_camera_shared.hh:21
blender::eevee::CAMERA_ORTHO
@ CAMERA_ORTHO
Definition
eevee_camera_shared.hh:19
blender::eevee::CAMERA_PANO_EQUIDISTANT
@ CAMERA_PANO_EQUIDISTANT
Definition
eevee_camera_shared.hh:22
blender::eevee::CAMERA_PANO_EQUIRECT
@ CAMERA_PANO_EQUIRECT
Definition
eevee_camera_shared.hh:20
blender::eevee::is_panoramic
static bool is_panoramic(eCameraType type)
Definition
eevee_camera_shared.hh:26
blender::float4x4
MatBase< float, 4, 4 > float4x4
Definition
BLI_math_matrix_types.hh:1012
blender::float2
VecBase< float, 2 > float2
Definition
BLI_math_vector_types.hh:618
blender::eevee::CameraData
Definition
eevee_camera_shared.hh:31
blender::eevee::CameraData::uv_bias
float2 uv_bias
Definition
eevee_camera_shared.hh:41
blender::eevee::CameraData::equirect_scale_inv
float2 equirect_scale_inv
Definition
eevee_camera_shared.hh:44
blender::eevee::CameraData::equirect_scale
float2 equirect_scale
Definition
eevee_camera_shared.hh:43
blender::eevee::CameraData::winmat
float4x4 winmat
Definition
eevee_camera_shared.hh:37
blender::eevee::CameraData::_pad1
float _pad1
Definition
eevee_camera_shared.hh:55
blender::eevee::CameraData::uv_scale
float2 uv_scale
Definition
eevee_camera_shared.hh:40
blender::eevee::CameraData::type
eCameraType type
Definition
eevee_camera_shared.hh:51
blender::eevee::CameraData::_pad0
float _pad0
Definition
eevee_camera_shared.hh:54
blender::eevee::CameraData::persmat
float4x4 persmat
Definition
eevee_camera_shared.hh:33
blender::eevee::CameraData::equirect_bias
float2 equirect_bias
Definition
eevee_camera_shared.hh:45
blender::eevee::CameraData::persinv
float4x4 persinv
Definition
eevee_camera_shared.hh:34
blender::eevee::CameraData::viewinv
float4x4 viewinv
Definition
eevee_camera_shared.hh:36
blender::eevee::CameraData::_pad2
float _pad2
Definition
eevee_camera_shared.hh:56
blender::eevee::CameraData::fisheye_lens
float fisheye_lens
Definition
eevee_camera_shared.hh:47
blender::eevee::CameraData::wininv
float4x4 wininv
Definition
eevee_camera_shared.hh:38
blender::eevee::CameraData::viewmat
float4x4 viewmat
Definition
eevee_camera_shared.hh:35
blender::eevee::CameraData::clip_far
float clip_far
Definition
eevee_camera_shared.hh:50
blender::eevee::CameraData::clip_near
float clip_near
Definition
eevee_camera_shared.hh:49
blender::eevee::CameraData::screen_diagonal_length
float screen_diagonal_length
Definition
eevee_camera_shared.hh:53
blender::eevee::CameraData::fisheye_fov
float fisheye_fov
Definition
eevee_camera_shared.hh:46
blender::eevee::CameraData::initialized
bool32_t initialized
Definition
eevee_camera_shared.hh:58
Generated on
for Blender by
doxygen
1.16.1