diff options
author | Bastiaan Olij <mux213@gmail.com> | 2019-03-31 00:03:49 +1100 |
---|---|---|
committer | Bastiaan Olij <mux213@gmail.com> | 2019-04-06 08:24:58 +1100 |
commit | 8349d4fbd99052db5a2e66a4ff9b3d44e3ceabac (patch) | |
tree | ab73969dbcfaf88456042aeaecf6c38a44311ab4 /servers/arvr | |
parent | cc349336e7a099f786c8c281fdceefd7d0bd33ae (diff) |
Add option to have viewport render into supplied texture
Diffstat (limited to 'servers/arvr')
-rw-r--r-- | servers/arvr/arvr_interface.cpp | 5 | ||||
-rw-r--r-- | servers/arvr/arvr_interface.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/servers/arvr/arvr_interface.cpp b/servers/arvr/arvr_interface.cpp index 3e59daff6c..686ad0ba9b 100644 --- a/servers/arvr/arvr_interface.cpp +++ b/servers/arvr/arvr_interface.cpp @@ -123,6 +123,11 @@ ARVRInterface::ARVRInterface() { ARVRInterface::~ARVRInterface(){}; +// optional render to external texture which enhances performance on those platforms that require us to submit our end result into special textures. +unsigned int ARVRInterface::get_external_texture_for_eye(ARVRInterface::Eyes p_eye) { + return 0; +}; + /** these will only be implemented on AR interfaces, so we want dummies for VR **/ bool ARVRInterface::get_anchor_detection_is_enabled() const { return false; diff --git a/servers/arvr/arvr_interface.h b/servers/arvr/arvr_interface.h index 6908f3006a..8459a82388 100644 --- a/servers/arvr/arvr_interface.h +++ b/servers/arvr/arvr_interface.h @@ -108,6 +108,7 @@ public: virtual bool is_stereo() = 0; /* returns true if this interface requires stereo rendering (for VR HMDs) or mono rendering (for mobile AR) */ virtual Transform get_transform_for_eye(ARVRInterface::Eyes p_eye, const Transform &p_cam_transform) = 0; /* get each eyes camera transform, also implement EYE_MONO */ virtual CameraMatrix get_projection_for_eye(ARVRInterface::Eyes p_eye, real_t p_aspect, real_t p_z_near, real_t p_z_far) = 0; /* get each eyes projection matrix */ + virtual unsigned int get_external_texture_for_eye(ARVRInterface::Eyes p_eye); /* if applicable return external texture to render to */ virtual void commit_for_eye(ARVRInterface::Eyes p_eye, RID p_render_target, const Rect2 &p_screen_rect) = 0; /* output the left or right eye */ virtual void process() = 0; |