From Andreas Henne, Support for GL3 core profile in osgText

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14717 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2015-02-25 18:56:29 +00:00
parent 7d50c8e634
commit 47db2da8b4
10 changed files with 282 additions and 118 deletions

View File

@@ -30,6 +30,15 @@
#include <OpenThreads/Mutex>
// GL_ALPHA is deprecated in GL3/GL4 core profile, use GL_RED and a shader in this case. See osgText example.
#if defined(OSG_GL3_AVAILABLE) && !defined(OSG_GL2_AVAILABLE) && !defined(OSG_GL1_AVAILABLE)
#define OSGTEXT_GLYPH_FORMAT GL_RED
#define OSGTEXT_GLYPH_INTERNALFORMAT GL_R8
#else
#define OSGTEXT_GLYPH_FORMAT GL_ALPHA
#define OSGTEXT_GLYPH_INTERNALFORMAT GL_ALPHA
#endif
namespace osgText {
class Font;

View File

@@ -299,10 +299,10 @@ public:
{
typedef std::vector<Glyph*> Glyphs;
typedef std::vector<unsigned int> LineNumbers;
typedef std::vector<osg::Vec2> Coords2;
typedef std::vector<osg::Vec3> Coords3;
typedef std::vector<osg::Vec2> TexCoords;
typedef std::vector<osg::Vec4> ColorCoords;
typedef osg::ref_ptr<osg::Vec2Array> Coords2;
typedef osg::ref_ptr<osg::Vec3Array> Coords3;
typedef osg::ref_ptr<osg::Vec2Array> TexCoords;
typedef osg::ref_ptr<osg::Vec4Array> ColorCoords;
Glyphs _glyphs;
Coords2 _coords;
@@ -313,6 +313,13 @@ public:
osg::buffered_object<Coords3> _transformedBackdropCoords[8];
ColorCoords _colorCoords;
osg::ref_ptr<osg::DrawElementsUInt> _quadIndices;
void updateQuadIndices();
GlyphQuads();
void initGPUBufferObjects();
Glyphs getGlyphs() { return _glyphs; }
const Glyphs getGlyphs() const { return _glyphs; }