mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 00:36:47 +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 recycle() const = 0;
|
||||||
virtual void downloadFramebuffer(const FramebufferPointer& srcFramebuffer, const Vec4i& region, QImage& destImage) = 0;
|
virtual void downloadFramebuffer(const FramebufferPointer& srcFramebuffer, const Vec4i& region, QImage& destImage) = 0;
|
||||||
|
|
||||||
// UBO class... layout MUST match the layout in Transform.slh
|
// Shared header between C++ and GLSL
|
||||||
class TransformCamera {
|
#include "TransformCamera_shared.slh"
|
||||||
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;
|
|
||||||
|
|
||||||
|
class TransformCamera : public _TransformCamera {
|
||||||
|
public:
|
||||||
const Backend::TransformCamera& recomputeDerived(const Transform& xformView) const;
|
const Backend::TransformCamera& recomputeDerived(const Transform& xformView) const;
|
||||||
TransformCamera getEyeCamera(int eye, const StereoState& stereo, const Transform& xformView) const;
|
TransformCamera getEyeCamera(int eye, const StereoState& stereo, const Transform& xformView) const;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,20 +11,14 @@
|
||||||
<@def GPU_TRANSFORM_STATE_SLH@>
|
<@def GPU_TRANSFORM_STATE_SLH@>
|
||||||
|
|
||||||
<@func declareStandardCameraTransform()@>
|
<@func declareStandardCameraTransform()@>
|
||||||
struct TransformCamera {
|
<@include gpu/TransformCamera_shared.slh@>
|
||||||
mat4 _view;
|
|
||||||
mat4 _viewInverse;
|
#define TransformCamera _TransformCamera
|
||||||
mat4 _projectionViewUntranslated;
|
|
||||||
mat4 _projection;
|
|
||||||
mat4 _projectionInverse;
|
|
||||||
vec4 _viewport;
|
|
||||||
vec4 _stereoInfo;
|
|
||||||
};
|
|
||||||
|
|
||||||
layout(std140) uniform transformCameraBuffer {
|
layout(std140) uniform transformCameraBuffer {
|
||||||
#ifdef GPU_TRANSFORM_IS_STEREO
|
#ifdef GPU_TRANSFORM_IS_STEREO
|
||||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
||||||
TransformCamera _camera[2];
|
TransformCamera _camera[2];
|
||||||
#else
|
#else
|
||||||
TransformCamera _camera;
|
TransformCamera _camera;
|
||||||
#endif
|
#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