mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
Created shared c++/glsl header for transformcamera
This commit is contained in:
parent
440e2b8452
commit
57ff1c54e1
3 changed files with 34 additions and 20 deletions
|
@ -64,17 +64,11 @@ public:
|
|||
virtual void recycle() const = 0;
|
||||
virtual void downloadFramebuffer(const FramebufferPointer& srcFramebuffer, const Vec4i& region, QImage& destImage) = 0;
|
||||
|
||||
// UBO class... layout MUST match the layout in Transform.slh
|
||||
class TransformCamera {
|
||||
public:
|
||||
mutable Mat4 _view;
|
||||
mutable Mat4 _viewInverse;
|
||||
mutable Mat4 _projectionViewUntranslated;
|
||||
Mat4 _projection;
|
||||
mutable Mat4 _projectionInverse;
|
||||
Vec4 _viewport; // Public value is int but float in the shader to stay in floats for all the transform computations.
|
||||
mutable Vec4 _stereoInfo;
|
||||
// Shared header between C++ and GLSL
|
||||
#include "TransformCamera_shared.slh"
|
||||
|
||||
class TransformCamera : public _TransformCamera {
|
||||
public:
|
||||
const Backend::TransformCamera& recomputeDerived(const Transform& xformView) const;
|
||||
TransformCamera getEyeCamera(int eye, const StereoState& stereo, const Transform& xformView) const;
|
||||
};
|
||||
|
|
|
@ -11,20 +11,14 @@
|
|||
<@def GPU_TRANSFORM_STATE_SLH@>
|
||||
|
||||
<@func declareStandardCameraTransform()@>
|
||||
struct TransformCamera {
|
||||
mat4 _view;
|
||||
mat4 _viewInverse;
|
||||
mat4 _projectionViewUntranslated;
|
||||
mat4 _projection;
|
||||
mat4 _projectionInverse;
|
||||
vec4 _viewport;
|
||||
vec4 _stereoInfo;
|
||||
};
|
||||
<@include gpu/TransformCamera_shared.slh@>
|
||||
|
||||
#define TransformCamera _TransformCamera
|
||||
|
||||
layout(std140) uniform transformCameraBuffer {
|
||||
#ifdef GPU_TRANSFORM_IS_STEREO
|
||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
||||
TransformCamera _camera[2];
|
||||
TransformCamera _camera[2];
|
||||
#else
|
||||
TransformCamera _camera;
|
||||
#endif
|
||||
|
|
26
libraries/gpu/src/gpu/TransformCamera_shared.slh
Normal file
26
libraries/gpu/src/gpu/TransformCamera_shared.slh
Normal file
|
@ -0,0 +1,26 @@
|
|||
// glsl / C++ compatible source as interface for FadeEffect
|
||||
#ifdef __cplusplus
|
||||
# define MAT4 Mat4
|
||||
# define VEC4 Vec4
|
||||
# define MUTABLE mutable
|
||||
#else
|
||||
# define MAT4 mat4
|
||||
# define VEC4 vec4
|
||||
# define MUTABLE
|
||||
#endif
|
||||
|
||||
struct _TransformCamera {
|
||||
MUTABLE MAT4 _view;
|
||||
MUTABLE MAT4 _viewInverse;
|
||||
MUTABLE MAT4 _projectionViewUntranslated;
|
||||
MAT4 _projection;
|
||||
MUTABLE MAT4 _projectionInverse;
|
||||
VEC4 _viewport; // Public value is int but float in the shader to stay in floats for all the transform computations.
|
||||
MUTABLE VEC4 _stereoInfo;
|
||||
};
|
||||
|
||||
// <@if 1@>
|
||||
// Trigger Scribe include
|
||||
// <@endif@> <!def that !>
|
||||
//
|
||||
|
Loading…
Reference in a new issue