Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiview #29

Open
wants to merge 53 commits into
base: 3.6
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
7d34a54
thogarth - added ovr_multiview support to FrameBufferObject and const…
john-terrell Nov 14, 2019
3ecd94b
thogarth - merged multiview branch to add multisampling support to te…
john-terrell Jan 10, 2020
6831e07
Moved osgmultiviewpaging to osgcustompager to avoid name confusion wi…
robertosfield Nov 11, 2020
d6ce755
Added standard side by side stereo config to use as a comparison to m…
robertosfield Nov 12, 2020
c1b3a30
Copied StandardStereo class renamed to MultivewOVR to use as base of …
robertosfield Nov 12, 2020
8a783ee
fix for typo in windows branch of delimiter definition
tomhog Nov 12, 2020
88385c3
Merge branch 'MultiView' of https://github.com/openscenegraph/OpenSce…
tomhog Nov 12, 2020
a4f838e
Merge pull request #995 from tomhog/th-MultiView
robertosfield Nov 12, 2020
efe3580
Updated shaders for GL_OVR_multiview2 usage
robertosfield Nov 12, 2020
39dc12f
Set up the number of views to be the size of the texture array
robertosfield Nov 12, 2020
c4c0577
Selected single threading to avoid multibuffering of multiview struct…
robertosfield Nov 12, 2020
e93753e
Added ovr related shader variables
robertosfield Nov 12, 2020
0b0457f
Added uniform arrays for left and right view and projection matrix of…
robertosfield Nov 12, 2020
9e161a5
Removed the copyright notices as the code is new and doesn't require …
robertosfield Nov 12, 2020
b244e65
Removed debug code path
robertosfield Nov 12, 2020
d77a08b
Fixed format
robertosfield Nov 12, 2020
8bad3be
Removed debug right eye camera clear colour setting
robertosfield Nov 12, 2020
5f03aec
Added support for vertex colours
robertosfield Nov 12, 2020
08c8f3b
Updated width of background quad
robertosfield Dec 22, 2020
2d6e0b6
Added CullSettings::InitialFrustumCallback to enable Camera to provid…
robertosfield Dec 23, 2020
6cabb0b
Added near/far flags to Polytope::setToBoundingBox().
robertosfield Dec 24, 2020
38ed11b
Added custom InitialFrustumCallback
robertosfield Dec 24, 2020
19499d4
Added ToggleFrustumHandler that toggles the use of the custom frustum…
robertosfield Dec 24, 2020
ba7334e
Added initial template for Leia ViewConfig implementation
robertosfield Dec 29, 2020
f027c4c
Fixed setting of pmv matrix
robertosfield Dec 29, 2020
0feeb79
Added 4x4 grid of images, currently repeating each row 4 times as ste…
robertosfield Dec 29, 2020
b3d39de
Moved texture array creation into method.
robertosfield Dec 30, 2020
faae628
Fixed depth component type
robertosfield Dec 30, 2020
7aec645
Restructd set up of LeiaIntialFrustumCallback setup.
robertosfield Dec 30, 2020
1d4bf56
Implemented rows in prep for interleaving of 4x4
robertosfield Dec 30, 2020
e9c8e3d
Added #Pragma(tic) shader composition for passing widht and height in…
robertosfield Dec 31, 2020
3d28edf
Added intleave shader and more flexible projection matrix setup.
robertosfield Dec 31, 2020
cae687c
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Jan 18, 2021
8873381
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Feb 18, 2021
518c4f7
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Feb 19, 2021
a39f877
Setting numViews value in glFramebufferTextureMultiviewOVR call, same…
tomhog Feb 19, 2021
d1649ae
Merge pull request #1047 from tomhog/th-MultiView
robertosfield Feb 19, 2021
8cefee5
Merge branch 'MultiView' of https://github.com/openscenegraph/OpenSce…
robertosfield Feb 19, 2021
a74dd06
Removed dbug output
robertosfield Feb 22, 2021
b218d91
Revmoed debug output
robertosfield Feb 22, 2021
df15baf
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Mar 14, 2021
6e72881
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Mar 29, 2021
3fa7c38
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Apr 14, 2021
0a16036
Add move constructor and move assignment operator to ref_ptr
elsid Apr 28, 2021
8a8c03c
Removed unnedded include
robertosfield May 6, 2021
ed09673
Merge branch 'OpenSceneGraph-3.6' into MultiView
robertosfield Jun 24, 2021
af49c20
Added alias from asc to 3dc
robertosfield Aug 31, 2021
c36afcc
Fixed build error with debug code path
robertosfield Sep 9, 2021
226bdd0
removes invalid glReadBuffer calls
bosvensson1 Oct 7, 2021
0a40582
Merge branch 'MultiView' into 3.6
Aug 23, 2022
d2ee5aa
MultiView: Recreate resolve layers if user calls RenderStage::setFram…
Aug 25, 2022
4975c2f
Add sized depth and stencil formats. Fix OSG calling glTexImage3D on …
madsbuvi Apr 23, 2023
7c533f7
Merge branch '3.6' into MultiViewMW
Jan 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions build/PlatformSpecifics/Windows/OpenSceneGraphVersionInfo.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
1 VERSIONINFO
FILEVERSION 3, 6, 5, 162
PRODUCTVERSION 3, 6, 5, 162
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "OpenSceneGraph Binary"
VALUE "FileVersion", "3, 6, 5, 162"
VALUE "InternalName", "OSG"
VALUE "LegalCopyright", "Copyright (C) 2009"
VALUE "OriginalFilename", ""
VALUE "ProductName", "OpenSceneGraph"
VALUE "ProductVersion", "3, 6, 5, 162"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
31 changes: 31 additions & 0 deletions build/PlatformSpecifics/Windows/OpenThreadsVersionInfo.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
1 VERSIONINFO
FILEVERSION 3, 3, 1, 21
PRODUCTVERSION 3, 3, 1, 21
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "OPENTHREADS Binary"
VALUE "FileVersion", "3, 3, 1, 21"
VALUE "InternalName", "OSG"
VALUE "LegalCopyright", "Copyright (C) 2009"
VALUE "OriginalFilename", ""
VALUE "ProductName", "OPENTHREADS"
VALUE "ProductVersion", "3, 3, 1, 21"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
34 changes: 34 additions & 0 deletions build/include/OpenThreads/Config
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 2008 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/

/****************************************************************************
* THIS FILE IS AUTOGENERATED BY CMAKE. DO NOT EDIT!
****************************************************************************/

/* Changes to the configuration reflected here can be made with ccmake on
* unix or with cmake-gui on windows. Alternatively you can use cmake's -D
* or -P switches to set some configuration values at cmake configuration time.
*/

#ifndef _OPENTHREADS_CONFIG
#define _OPENTHREADS_CONFIG

/* #undef _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS */
/* #undef _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS */
/* #undef _OPENTHREADS_ATOMIC_USE_SUN */
#define _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED
/* #undef _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC */
/* #undef _OPENTHREADS_ATOMIC_USE_MUTEX */
/* #undef OT_LIBRARY_STATIC */

#endif
38 changes: 38 additions & 0 deletions build/include/OpenThreads/Version
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/* -*-c++-*- OpenThreads library, Copyright (C) 2002 - 2007 The Open Thread Group
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/

#ifndef OPENTHREADS_VERSION
#define OPENTHREADS_VERSION 1

#include <OpenThreads/Exports>

extern "C" {

#define OPENTHREADS_MAJOR_VERSION 3
#define OPENTHREADS_MINOR_VERSION 3
#define OPENTHREADS_PATCH_VERSION 1
#define OPENTHREADS_SOVERSION 21

/** OpenThreadsGetVersion() returns the library version number.
* Numbering convention : OpenThreads-1.0 will return 1.0 from OpenThreadsGetVersion. */
extern OPENTHREAD_EXPORT_DIRECTIVE const char* OpenThreadsGetVersion();

/** The OpenThreadsGetSOVersion() method returns the OpenSceneGraph soversion number. */
extern OPENTHREAD_EXPORT_DIRECTIVE const char* OpenThreadsGetSOVersion();

/** The OpenThreadsGetLibraryName() method returns the library name in human-friendly form. */
extern OPENTHREAD_EXPORT_DIRECTIVE const char* OpenThreadsGetLibraryName();

}

#endif
42 changes: 42 additions & 0 deletions build/include/osg/Config
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 2008-2009 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/

/****************************************************************************
* THIS FILE IS AUTOGENERATED BY CMAKE. DO NOT EDIT!
****************************************************************************/

/* Changes to the configuration reflected here can be made with ccmake on
* unix or with cmake-gui on windows. Alternatively you can use cmake's -D
* or -P switches to set some configuration values at cmake configuration time.
*/

#ifndef OSG_CONFIG
#define OSG_CONFIG 1

/* #undef OSG_NOTIFY_DISABLED */
/* #undef OSG_USE_FLOAT_MATRIX */
/* #undef OSG_USE_FLOAT_PLANE */
#define OSG_USE_FLOAT_BOUNDINGSPHERE
#define OSG_USE_FLOAT_BOUNDINGBOX
/* #undef OSG_USE_FLOAT_QUAT */
#define OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION
/* #undef OSG_USE_REF_PTR_SAFE_DEREFERENCE */
/* #undef OSG_USE_UTF8_FILENAME */
#define OSG_DISABLE_MSVC_WARNINGS
#define OSG_PROVIDE_READFILE
#define OSG_USE_DEPRECATED_API
#define OSG_ENVVAR_SUPPORTED
/* #undef OSG_WINDOWING_SYSTEM_CARBON */
/* #undef OSG_WINDOWING_SYSTEM_NONE */

#endif
194 changes: 194 additions & 0 deletions build/include/osg/GL
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2009 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/

#ifndef OSG_OPENGL
#define OSG_OPENGL 1

#include <osg/Config>
#include <osg/Export>
#include <osg/Types>

#define OSG_GL1_AVAILABLE
#define OSG_GL2_AVAILABLE
/* #undef OSG_GL3_AVAILABLE */
/* #undef OSG_GLES1_AVAILABLE */
/* #undef OSG_GLES2_AVAILABLE */
/* #undef OSG_GLES3_AVAILABLE */
/* #undef OSG_GL_LIBRARY_STATIC */
#define OSG_GL_DISPLAYLISTS_AVAILABLE
#define OSG_GL_MATRICES_AVAILABLE
#define OSG_GL_VERTEX_FUNCS_AVAILABLE
#define OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE
#define OSG_GL_FIXED_FUNCTION_AVAILABLE
/* #undef GL_HEADER_HAS_GLINT64 */
/* #undef GL_HEADER_HAS_GLUINT64 */

#define OSG_GL1_FEATURES 1
#define OSG_GL2_FEATURES 1
#define OSG_GL3_FEATURES 0
#define OSG_GLES1_FEATURES 0
#define OSG_GLES2_FEATURES 0
#define OSG_GLES3_FEATURES 0
#define OSG_GL_CONTEXT_VERSION "1.0"


#ifndef _WIN32

// Required for compatibility with glext.h style function definitions of
// OpenGL extensions, such as in src/osg/Point.cpp.
#ifndef APIENTRY
#define APIENTRY
#endif

#else // _WIN32

#if defined(__CYGWIN__) || defined(__MINGW32__)

#ifndef APIENTRY
#define GLUT_APIENTRY_DEFINED
#define APIENTRY __stdcall
#endif
// XXX This is from Win32's <windef.h>
#ifndef CALLBACK
#define CALLBACK __stdcall
#endif

#else // ! __CYGWIN__

// Under Windows avoid including <windows.h>
// to avoid name space pollution, but Win32's <GL/gl.h>
// needs APIENTRY and WINGDIAPI defined properly.
// XXX This is from Win32's <windef.h>
#ifndef APIENTRY
#define GLUT_APIENTRY_DEFINED
#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define WINAPI __stdcall
#define APIENTRY WINAPI
#else
#define APIENTRY
#endif
#endif

// XXX This is from Win32's <windef.h>
#ifndef CALLBACK
#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define CALLBACK __stdcall
#else
#define CALLBACK
#endif
#endif

#endif // __CYGWIN__

// XXX This is from Win32's <wingdi.h> and <winnt.h>
#ifndef WINGDIAPI
#define GLUT_WINGDIAPI_DEFINED
#define DECLSPEC_IMPORT __declspec(dllimport)
#define WINGDIAPI DECLSPEC_IMPORT
#endif

// XXX This is from Win32's <ctype.h>
#if !defined(_WCHAR_T_DEFINED) && !(defined(__GNUC__)&&(__GNUC__ > 2))
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif

#endif // _WIN32

#if defined(OSG_GL3_AVAILABLE)
#define GL3_PROTOTYPES 1
#define GL_GLEXT_PROTOTYPES 1
#endif


#include <GL/gl.h>



#ifndef GL_APIENTRY
#define GL_APIENTRY APIENTRY
#endif // GL_APIENTRY


#ifndef GL_HEADER_HAS_GLINT64
typedef int64_t GLint64;
#endif

#ifndef GL_HEADER_HAS_GLUINT64
typedef uint64_t GLuint64;
#endif

#ifdef OSG_GL_MATRICES_AVAILABLE

inline void glLoadMatrix(const float* mat) { glLoadMatrixf(static_cast<const GLfloat*>(mat)); }
inline void glMultMatrix(const float* mat) { glMultMatrixf(static_cast<const GLfloat*>(mat)); }

#ifdef OSG_GLES1_AVAILABLE
inline void glLoadMatrix(const double* mat)
{
GLfloat flt_mat[16];
for(unsigned int i=0;i<16;++i) flt_mat[i] = mat[i];
glLoadMatrixf(flt_mat);
}

inline void glMultMatrix(const double* mat)
{
GLfloat flt_mat[16];
for(unsigned int i=0;i<16;++i) flt_mat[i] = mat[i];
glMultMatrixf(flt_mat);
}

#else
inline void glLoadMatrix(const double* mat) { glLoadMatrixd(static_cast<const GLdouble*>(mat)); }
inline void glMultMatrix(const double* mat) { glMultMatrixd(static_cast<const GLdouble*>(mat)); }
#endif
#endif

// add defines for OpenGL targets that don't define them, just to ease compatibility across targets
#ifndef GL_DOUBLE
#define GL_DOUBLE 0x140A
typedef double GLdouble;
#endif

#ifndef GL_INT
#define GL_INT 0x1404
#endif

#ifndef GL_UNSIGNED_INT
#define GL_UNSIGNED_INT 0x1405
#endif

#ifndef GL_NONE
// OpenGL ES1 doesn't provide GL_NONE
#define GL_NONE 0x0
#endif

#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GLES3_AVAILABLE)
//GLES defines (OES)
#define GL_RGB8_OES 0x8051
#define GL_RGBA8_OES 0x8058
#endif

#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GLES3_AVAILABLE) || defined(OSG_GL3_AVAILABLE)
#define GL_POLYGON 0x0009
#define GL_QUADS 0x0007
#define GL_QUAD_STRIP 0x0008
#endif

#if defined(OSG_GL3_AVAILABLE)
#define GL_LUMINANCE 0x1909
#define GL_LUMINANCE_ALPHA 0x190A
#endif


#endif
Loading