From Paul Martz, changes for compiling against OpenGL 3.x
This commit is contained in:
parent
8d67c9bb33
commit
72ff1f40f9
@ -723,7 +723,7 @@ int main( int argc, char **argv )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
|
|
||||||
// add back in enabling of the GL_ALPHA_TEST to get around the core OSG no longer setting it by default for opaque bins.
|
// add back in enabling of the GL_ALPHA_TEST to get around the core OSG no longer setting it by default for opaque bins.
|
||||||
// the alpha test is required for the volume rendering alpha clipping to work.
|
// the alpha test is required for the volume rendering alpha clipping to work.
|
||||||
|
@ -31,6 +31,11 @@
|
|||||||
#define GL_CLAMP_FRAGMENT_COLOR GL_CLAMP_FRAGMENT_COLOR_ARB
|
#define GL_CLAMP_FRAGMENT_COLOR GL_CLAMP_FRAGMENT_COLOR_ARB
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_CLAMP_VERTEX_COLOR 0x891A
|
||||||
|
#define GL_CLAMP_FRAGMENT_COLOR 0x891B
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace osg {
|
namespace osg {
|
||||||
|
|
||||||
/** Encapsulates OpenGL ClampColor state. */
|
/** Encapsulates OpenGL ClampColor state. */
|
||||||
|
@ -87,6 +87,11 @@
|
|||||||
|
|
||||||
#include <GLES2/gl2.h>
|
#include <GLES2/gl2.h>
|
||||||
|
|
||||||
|
#elif defined(OSG_GL3_AVAILABLE)
|
||||||
|
|
||||||
|
#define GL3_PROTOTYPES 1
|
||||||
|
#include <GL3/gl3.h>
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifndef __gl_h_
|
#ifndef __gl_h_
|
||||||
@ -145,12 +150,17 @@
|
|||||||
#define GL_NONE 0x0
|
#define GL_NONE 0x0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GL3_AVAILABLE)
|
||||||
#define GL_POLYGON 0x0009
|
#define GL_POLYGON 0x0009
|
||||||
#define GL_QUADS 0x0007
|
#define GL_QUADS 0x0007
|
||||||
#define GL_QUAD_STRIP 0x0008
|
#define GL_QUAD_STRIP 0x0008
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_LUMINANCE 0x1909
|
||||||
|
#define GL_LUMINANCE_ALPHA 0x190A
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef OSG_GLES1_AVAILABLE
|
#ifdef OSG_GLES1_AVAILABLE
|
||||||
inline void glColor4ubv(const GLubyte* c) { glColor4ub(c[0], c[1], c[2], c[3]); }
|
inline void glColor4ubv(const GLubyte* c) { glColor4ub(c[0], c[1], c[2], c[3]); }
|
||||||
inline void glColor3fv(const GLfloat* c) { glColor4f(c[0], c[1], c[2], 1.0f); }
|
inline void glColor3fv(const GLfloat* c) { glColor4f(c[0], c[1], c[2], 1.0f); }
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <osg/Plane>
|
#include <osg/Plane>
|
||||||
#include <osg/StateAttribute>
|
#include <osg/StateAttribute>
|
||||||
|
|
||||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GL3_AVAILABLE)
|
||||||
#define GL_OBJECT_LINEAR 0x2401
|
#define GL_OBJECT_LINEAR 0x2401
|
||||||
#define GL_EYE_LINEAR 0x2400
|
#define GL_EYE_LINEAR 0x2400
|
||||||
#define GL_SPHERE_MAP 0x2402
|
#define GL_SPHERE_MAP 0x2402
|
||||||
|
@ -32,12 +32,16 @@
|
|||||||
#include "dxtctool.h"
|
#include "dxtctool.h"
|
||||||
|
|
||||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
||||||
#define GL_BITMAP 0x1A00
|
|
||||||
#define GL_RED 0x1903
|
#define GL_RED 0x1903
|
||||||
#define GL_GREEN 0x1904
|
#define GL_GREEN 0x1904
|
||||||
#define GL_BLUE 0x1905
|
#define GL_BLUE 0x1905
|
||||||
#define GL_COLOR_INDEX 0x1900
|
|
||||||
#define GL_DEPTH_COMPONENT 0x1902
|
#define GL_DEPTH_COMPONENT 0x1902
|
||||||
|
#define GL_STENCIL_INDEX 0x1901
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_BITMAP 0x1A00
|
||||||
|
#define GL_COLOR_INDEX 0x1900
|
||||||
#define GL_INTENSITY12 0x804C
|
#define GL_INTENSITY12 0x804C
|
||||||
#define GL_INTENSITY16 0x804D
|
#define GL_INTENSITY16 0x804D
|
||||||
#define GL_INTENSITY4 0x804A
|
#define GL_INTENSITY4 0x804A
|
||||||
@ -52,7 +56,6 @@
|
|||||||
#define GL_LUMINANCE6_ALPHA2 0x8044
|
#define GL_LUMINANCE6_ALPHA2 0x8044
|
||||||
#define GL_LUMINANCE8 0x8040
|
#define GL_LUMINANCE8 0x8040
|
||||||
#define GL_LUMINANCE8_ALPHA8 0x8045
|
#define GL_LUMINANCE8_ALPHA8 0x8045
|
||||||
#define GL_STENCIL_INDEX 0x1901
|
|
||||||
#define GL_RGBA8 0x8058
|
#define GL_RGBA8 0x8058
|
||||||
#define GL_PACK_ROW_LENGTH 0x0D02
|
#define GL_PACK_ROW_LENGTH 0x0D02
|
||||||
#endif
|
#endif
|
||||||
|
@ -1747,7 +1747,7 @@ void Texture::applyTexImage2D_load(State& state, GLenum target, const Image* ima
|
|||||||
{
|
{
|
||||||
glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE,GL_TRUE);
|
glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE,GL_TRUE);
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_PRIORITY,0.0f);
|
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_PRIORITY,0.0f);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ void TextureRectangle::applyTexImage_load(GLenum target, Image* image, State& st
|
|||||||
{
|
{
|
||||||
glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE,GL_TRUE);
|
glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE,GL_TRUE);
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_PRIORITY,0.0f);
|
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_PRIORITY,0.0f);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2007,7 +2007,7 @@ void DatabasePager::compileGLObjects(osg::State& state, double& availableTime)
|
|||||||
if (!dtc.first.empty() && (elapsedTime+estimatedTextureDuration)<availableTime && numObjectsCompiled<_maximumNumOfObjectsToCompilePerFrame)
|
if (!dtc.first.empty() && (elapsedTime+estimatedTextureDuration)<availableTime && numObjectsCompiled<_maximumNumOfObjectsToCompilePerFrame)
|
||||||
{
|
{
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0);
|
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2031,7 +2031,7 @@ void DatabasePager::compileGLObjects(osg::State& state, double& availableTime)
|
|||||||
|
|
||||||
(*itr)->compileGLObjects(state);
|
(*itr)->compileGLObjects(state);
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
GLint p;
|
GLint p;
|
||||||
glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_RESIDENT, &p);
|
glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_RESIDENT, &p);
|
||||||
#endif
|
#endif
|
||||||
|
@ -216,7 +216,7 @@ namespace
|
|||||||
texenv->setMode(osg::TexEnv::DECAL);
|
texenv->setMode(osg::TexEnv::DECAL);
|
||||||
ss->setTextureAttributeAndModes(0, texenv.get(), osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
|
ss->setTextureAttributeAndModes(0, texenv.get(), osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
|
||||||
|
|
||||||
#if !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
ss->setMode( GL_ALPHA_TEST, osg::StateAttribute::OFF );
|
ss->setMode( GL_ALPHA_TEST, osg::StateAttribute::OFF );
|
||||||
#else
|
#else
|
||||||
osg::notify(osg::NOTICE)<<"Warning: osgFX::AnisotropicLighting unable to disable GL_ALPHA_TEST."<<std::endl;
|
osg::notify(osg::NOTICE)<<"Warning: osgFX::AnisotropicLighting unable to disable GL_ALPHA_TEST."<<std::endl;
|
||||||
|
@ -106,7 +106,7 @@ void osgParticle::ParticleSystem::drawImplementation(osg::RenderInfo& renderInfo
|
|||||||
osg::Matrix modelview = state.getModelViewMatrix();
|
osg::Matrix modelview = state.getModelViewMatrix();
|
||||||
|
|
||||||
// set up depth mask for first rendering pass
|
// set up depth mask for first rendering pass
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glPushAttrib(GL_DEPTH_BUFFER_BIT);
|
glPushAttrib(GL_DEPTH_BUFFER_BIT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ void osgParticle::ParticleSystem::drawImplementation(osg::RenderInfo& renderInfo
|
|||||||
// render, first pass
|
// render, first pass
|
||||||
single_pass_render(state, modelview);
|
single_pass_render(state, modelview);
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
// restore depth mask settings
|
// restore depth mask settings
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
#endif
|
#endif
|
||||||
@ -123,7 +123,7 @@ void osgParticle::ParticleSystem::drawImplementation(osg::RenderInfo& renderInfo
|
|||||||
// render, second pass
|
// render, second pass
|
||||||
if (_doublepass) {
|
if (_doublepass) {
|
||||||
// set up color mask for second rendering pass
|
// set up color mask for second rendering pass
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glPushAttrib(GL_COLOR_BUFFER_BIT);
|
glPushAttrib(GL_COLOR_BUFFER_BIT);
|
||||||
#endif
|
#endif
|
||||||
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
|
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||||
@ -131,13 +131,13 @@ void osgParticle::ParticleSystem::drawImplementation(osg::RenderInfo& renderInfo
|
|||||||
// render the particles onto the depth buffer
|
// render the particles onto the depth buffer
|
||||||
single_pass_render(state, modelview);
|
single_pass_render(state, modelview);
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
// restore color mask settings
|
// restore color mask settings
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
osg::notify(osg::NOTICE)<<"Warning: ParticleSystem::drawImplementation(..) not fully implemented."<<std::endl;
|
osg::notify(osg::NOTICE)<<"Warning: ParticleSystem::drawImplementation(..) not fully implemented."<<std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -41,6 +41,12 @@
|
|||||||
#define GL_INTENSITY16 0x804D
|
#define GL_INTENSITY16 0x804D
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_LUMINANCE12_ALPHA4 0x8046
|
||||||
|
#define GL_LUMINANCE12_ALPHA12 0x8047
|
||||||
|
#define GL_INTENSITY16 0x804D
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace flt {
|
namespace flt {
|
||||||
|
|
||||||
class VertexPalette : public Record
|
class VertexPalette : public Record
|
||||||
|
@ -40,6 +40,10 @@
|
|||||||
#define GL_LUMINANCE4_ALPHA4 0x8043
|
#define GL_LUMINANCE4_ALPHA4 0x8043
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_LUMINANCE4_ALPHA4 0x8043
|
||||||
|
#endif
|
||||||
|
|
||||||
// NOTICE ON WIN32:
|
// NOTICE ON WIN32:
|
||||||
// typedef DWORD unsigned long;
|
// typedef DWORD unsigned long;
|
||||||
// sizeof(DWORD) = 4
|
// sizeof(DWORD) = 4
|
||||||
|
@ -95,7 +95,7 @@ class Logos: public osg::Drawable
|
|||||||
|
|
||||||
virtual void drawImplementation(osg::RenderInfo& renderInfo) const
|
virtual void drawImplementation(osg::RenderInfo& renderInfo) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
|
|
||||||
if( renderInfo.getContextID() != _contextID )
|
if( renderInfo.getContextID() != _contextID )
|
||||||
return;
|
return;
|
||||||
|
@ -130,7 +130,11 @@ void initGLNames()
|
|||||||
ADD_NAME("GL_LIGHT5",GL_LIGHT5);
|
ADD_NAME("GL_LIGHT5",GL_LIGHT5);
|
||||||
ADD_NAME("GL_LIGHT6",GL_LIGHT6);
|
ADD_NAME("GL_LIGHT6",GL_LIGHT6);
|
||||||
ADD_NAME("GL_LIGHT7",GL_LIGHT7);
|
ADD_NAME("GL_LIGHT7",GL_LIGHT7);
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
|
||||||
|
#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
|
||||||
|
#endif
|
||||||
ADD_NAME("GL_VERTEX_PROGRAM_POINT_SIZE", GL_VERTEX_PROGRAM_POINT_SIZE)
|
ADD_NAME("GL_VERTEX_PROGRAM_POINT_SIZE", GL_VERTEX_PROGRAM_POINT_SIZE)
|
||||||
ADD_NAME("GL_VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE)
|
ADD_NAME("GL_VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE)
|
||||||
|
|
||||||
|
@ -30,6 +30,11 @@
|
|||||||
#define GL_COLOR_INDEX 0x1900
|
#define GL_COLOR_INDEX 0x1900
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OSG_GL3_AVAILABLE)
|
||||||
|
#define GL_BITMAP 0x1A00
|
||||||
|
#define GL_COLOR_INDEX 0x1900
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace osg;
|
using namespace osg;
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ void LightPointDrawable::reset()
|
|||||||
|
|
||||||
void LightPointDrawable::drawImplementation(osg::RenderInfo& renderInfo) const
|
void LightPointDrawable::drawImplementation(osg::RenderInfo& renderInfo) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
osg::State& state = *renderInfo.getState();
|
osg::State& state = *renderInfo.getState();
|
||||||
|
|
||||||
state.applyMode(GL_POINT_SMOOTH,true);
|
state.applyMode(GL_POINT_SMOOTH,true);
|
||||||
|
@ -30,7 +30,7 @@ LightPointSpriteDrawable::LightPointSpriteDrawable(const LightPointSpriteDrawabl
|
|||||||
|
|
||||||
void LightPointSpriteDrawable::drawImplementation(osg::RenderInfo& renderInfo) const
|
void LightPointSpriteDrawable::drawImplementation(osg::RenderInfo& renderInfo) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
osg::State& state = *renderInfo.getState();
|
osg::State& state = *renderInfo.getState();
|
||||||
|
|
||||||
if (!state.getModeValidity(GL_POINT_SPRITE_ARB))
|
if (!state.getModeValidity(GL_POINT_SPRITE_ARB))
|
||||||
|
@ -1353,7 +1353,7 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie
|
|||||||
{
|
{
|
||||||
if (_textBB.valid())
|
if (_textBB.valid())
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
state.applyTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::OFF);
|
state.applyTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::OFF);
|
||||||
|
|
||||||
const osg::Matrix& matrix = _autoTransformCache[contextID]._matrix;
|
const osg::Matrix& matrix = _autoTransformCache[contextID]._matrix;
|
||||||
@ -1848,7 +1848,7 @@ void Text::renderOnlyForegroundText(osg::State& state, const osg::Vec4& colorMul
|
|||||||
|
|
||||||
void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMultiplier) const
|
void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
unsigned int contextID = state.getContextID();
|
unsigned int contextID = state.getContextID();
|
||||||
|
|
||||||
if (!osg::PolygonOffset::areFactorAndUnitsMultipliersSet())
|
if (!osg::PolygonOffset::areFactorAndUnitsMultipliersSet())
|
||||||
@ -1913,7 +1913,7 @@ void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMult
|
|||||||
|
|
||||||
void Text::renderWithNoDepthBuffer(osg::State& state, const osg::Vec4& colorMultiplier) const
|
void Text::renderWithNoDepthBuffer(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
unsigned int contextID = state.getContextID();
|
unsigned int contextID = state.getContextID();
|
||||||
|
|
||||||
glPushAttrib(GL_DEPTH_BUFFER_BIT);
|
glPushAttrib(GL_DEPTH_BUFFER_BIT);
|
||||||
@ -1967,7 +1967,7 @@ void Text::renderWithNoDepthBuffer(osg::State& state, const osg::Vec4& colorMult
|
|||||||
// This idea comes from Paul Martz's OpenGL FAQ: 13.050
|
// This idea comes from Paul Martz's OpenGL FAQ: 13.050
|
||||||
void Text::renderWithDepthRange(osg::State& state, const osg::Vec4& colorMultiplier) const
|
void Text::renderWithDepthRange(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
unsigned int contextID = state.getContextID();
|
unsigned int contextID = state.getContextID();
|
||||||
|
|
||||||
// Hmmm, the man page says GL_VIEWPORT_BIT for Depth range (near and far)
|
// Hmmm, the man page says GL_VIEWPORT_BIT for Depth range (near and far)
|
||||||
@ -2027,7 +2027,7 @@ void Text::renderWithDepthRange(osg::State& state, const osg::Vec4& colorMultipl
|
|||||||
|
|
||||||
void Text::renderWithStencilBuffer(osg::State& state, const osg::Vec4& colorMultiplier) const
|
void Text::renderWithStencilBuffer(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
/* Here are the steps:
|
/* Here are the steps:
|
||||||
* 1) Disable drawing color
|
* 1) Disable drawing color
|
||||||
* 2) Enable the stencil buffer
|
* 2) Enable the stencil buffer
|
||||||
|
@ -527,7 +527,7 @@ void Text3D::drawImplementation(osg::RenderInfo& renderInfo) const
|
|||||||
{
|
{
|
||||||
renderInfo.getState()->disableAllVertexArrays();
|
renderInfo.getState()->disableAllVertexArrays();
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glPushAttrib(GL_TRANSFORM_BIT);
|
glPushAttrib(GL_TRANSFORM_BIT);
|
||||||
glEnable(GL_RESCALE_NORMAL);
|
glEnable(GL_RESCALE_NORMAL);
|
||||||
#endif
|
#endif
|
||||||
@ -539,7 +539,7 @@ void Text3D::drawImplementation(osg::RenderInfo& renderInfo) const
|
|||||||
default: renderPerGlyph(*renderInfo.getState()); break;
|
default: renderPerGlyph(*renderInfo.getState()); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1286,7 +1286,7 @@ void RenderStage::drawImplementation(osg::RenderInfo& renderInfo,RenderLeaf*& pr
|
|||||||
state.haveAppliedAttribute( osg::StateAttribute::STENCIL );
|
state.haveAppliedAttribute( osg::StateAttribute::STENCIL );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
if (_clearMask & GL_ACCUM_BUFFER_BIT)
|
if (_clearMask & GL_ACCUM_BUFFER_BIT)
|
||||||
{
|
{
|
||||||
glClearAccum( _clearAccum[0], _clearAccum[1], _clearAccum[2], _clearAccum[3]);
|
glClearAccum( _clearAccum[0], _clearAccum[1], _clearAccum[2], _clearAccum[3]);
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
using namespace osg;
|
using namespace osg;
|
||||||
using namespace osgUtil;
|
using namespace osgUtil;
|
||||||
|
|
||||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
// define under GLES to keep the main SceneView.cpp clean.
|
// define under GLES to keep the main SceneView.cpp clean.
|
||||||
#define GL_BACK_LEFT 0x0402
|
#define GL_BACK_LEFT 0x0402
|
||||||
#define GL_BACK_RIGHT 0x0403
|
#define GL_BACK_RIGHT 0x0403
|
||||||
@ -1289,7 +1289,7 @@ void SceneView::draw()
|
|||||||
break;
|
break;
|
||||||
case(osg::DisplaySettings::VERTICAL_INTERLACE):
|
case(osg::DisplaySettings::VERTICAL_INTERLACE):
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
||||||
{
|
{
|
||||||
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
||||||
@ -1372,7 +1372,7 @@ void SceneView::draw()
|
|||||||
break;
|
break;
|
||||||
case(osg::DisplaySettings::HORIZONTAL_INTERLACE):
|
case(osg::DisplaySettings::HORIZONTAL_INTERLACE):
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
||||||
{
|
{
|
||||||
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
||||||
@ -1454,7 +1454,7 @@ void SceneView::draw()
|
|||||||
break;
|
break;
|
||||||
case(osg::DisplaySettings::CHECKERBOARD):
|
case(osg::DisplaySettings::CHECKERBOARD):
|
||||||
{
|
{
|
||||||
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE)
|
#if !defined(OSG_GLES1_AVAILABLE) && !defined(OSG_GLES2_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
|
||||||
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
if( 0 == ( _camera->getInheritanceMask() & DRAW_BUFFER) )
|
||||||
{
|
{
|
||||||
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
_renderStageLeft->setDrawBuffer(_camera->getDrawBuffer());
|
||||||
|
@ -92,6 +92,24 @@ static osg::ApplicationUsageProxy GraphicsWindowWin32_e0(osg::ApplicationUsage::
|
|||||||
#define WGL_SAMPLE_BUFFERS_ARB 0x2041
|
#define WGL_SAMPLE_BUFFERS_ARB 0x2041
|
||||||
#define WGL_SAMPLES_ARB 0x2042
|
#define WGL_SAMPLES_ARB 0x2042
|
||||||
|
|
||||||
|
#ifndef WGL_ARB_create_context
|
||||||
|
#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
|
||||||
|
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
|
||||||
|
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
||||||
|
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||||
|
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
|
||||||
|
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
||||||
|
#define ERROR_INVALID_VERSION_ARB 0x2095
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WGL_ARB_create_context
|
||||||
|
#define WGL_ARB_create_context 1
|
||||||
|
#ifdef WGL_WGLEXT_PROTOTYPES
|
||||||
|
extern HGLRC WINAPI wglCreateContextAttribsARB (HDC, HGLRC, const int *);
|
||||||
|
#endif /* WGL_WGLEXT_PROTOTYPES */
|
||||||
|
typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Entry points used from the WGL extensions
|
// Entry points used from the WGL extensions
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user