From e96642f864d2f3cea82bfff7895e18c409d7854f Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 21 Oct 2009 16:31:37 +0000 Subject: [PATCH] Conveted osgText across to using GLBeginEndAdapter instead og glBegin/glEnd --- src/osgText/Text.cpp | 59 +++++++++++++++++++-------------------- src/osgText/Text3D.cpp | 63 +++++++++++++++++++++--------------------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/osgText/Text.cpp b/src/osgText/Text.cpp index d86cd4c48..d105801d5 100644 --- a/src/osgText/Text.cpp +++ b/src/osgText/Text.cpp @@ -1345,7 +1345,9 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie } } - glNormal3fv(_normal.ptr()); + osg::GLBeginEndAdapter& gl = (state.getGLBeginEndAdapter()); + + state.Normal(_normal.x(), _normal.y(), _normal.z()); if (_drawMode & FILLEDBOUNDINGBOX) { @@ -1381,13 +1383,13 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie glPolygonOffset(0.1f * osg::PolygonOffset::getFactorMultiplier(), 10.0f * osg::PolygonOffset::getUnitsMultiplier() ); } - glColor4f(colorMultiplier.r()*_textBBColor.r(),colorMultiplier.g()*_textBBColor.g(),colorMultiplier.b()*_textBBColor.b(),colorMultiplier.a()*_textBBColor.a()); - glBegin(GL_QUADS); - glVertex3fv(c00.ptr()); - glVertex3fv(c10.ptr()); - glVertex3fv(c11.ptr()); - glVertex3fv(c01.ptr()); - glEnd(); + gl.Color4f(colorMultiplier.r()*_textBBColor.r(),colorMultiplier.g()*_textBBColor.g(),colorMultiplier.b()*_textBBColor.b(),colorMultiplier.a()*_textBBColor.a()); + gl.Begin(GL_QUADS); + gl.Vertex3fv(c00.ptr()); + gl.Vertex3fv(c10.ptr()); + gl.Vertex3fv(c11.ptr()); + gl.Vertex3fv(c01.ptr()); + gl.End(); switch(_backdropImplementation) { @@ -1465,19 +1467,19 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie osg::Vec3 c01(osg::Vec3(_textBB.xMin(),_textBB.yMax(),_textBB.zMin())*matrix); - glColor4f(colorMultiplier.r()*_textBBColor.r(),colorMultiplier.g()*_textBBColor.g(),colorMultiplier.b()*_textBBColor.b(),colorMultiplier.a()*_textBBColor.a()); - glBegin(GL_LINE_LOOP); - glVertex3fv(c00.ptr()); - glVertex3fv(c10.ptr()); - glVertex3fv(c11.ptr()); - glVertex3fv(c01.ptr()); - glEnd(); + gl.Color4f(colorMultiplier.r()*_textBBColor.r(),colorMultiplier.g()*_textBBColor.g(),colorMultiplier.b()*_textBBColor.b(),colorMultiplier.a()*_textBBColor.a()); + gl.Begin(GL_LINE_LOOP); + gl.Vertex3fv(c00.ptr()); + gl.Vertex3fv(c10.ptr()); + gl.Vertex3fv(c11.ptr()); + gl.Vertex3fv(c01.ptr()); + gl.End(); } } if (_drawMode & ALIGNMENT) { - glColor4fv(colorMultiplier.ptr()); + gl.Color4fv(colorMultiplier.ptr()); float cursorsize = _characterHeight*0.5f; @@ -1490,12 +1492,12 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie state.applyTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::OFF); - glBegin(GL_LINES); - glVertex3fv(hl.ptr()); - glVertex3fv(hr.ptr()); - glVertex3fv(vt.ptr()); - glVertex3fv(vb.ptr()); - glEnd(); + gl.Begin(GL_LINES); + gl.Vertex3fv(hl.ptr()); + gl.Vertex3fv(hr.ptr()); + gl.Vertex3fv(vt.ptr()); + gl.Vertex3fv(vb.ptr()); + gl.End(); } } @@ -1879,7 +1881,7 @@ void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMult state.setTexCoordPointer( 0, 2, GL_FLOAT, 0, &(glyphquad._texcoords.front())); state.disableColorPointer(); - glColor4fv(_backdropColor.ptr()); + state.Color(_backdropColor.r(),_backdropColor.g(),_backdropColor.b(),_backdropColor.a()); for( ; backdrop_index < max_backdrop_index; backdrop_index++) { @@ -1934,7 +1936,7 @@ void Text::renderWithNoDepthBuffer(osg::State& state, const osg::Vec4& colorMult state.setTexCoordPointer( 0, 2, GL_FLOAT, 0, &(glyphquad._texcoords.front())); state.disableColorPointer(); - glColor4fv(_backdropColor.ptr()); + state.Color(_backdropColor.r(),_backdropColor.g(),_backdropColor.b(),_backdropColor.a()); for( ; backdrop_index < max_backdrop_index; backdrop_index++) { @@ -1986,7 +1988,7 @@ void Text::renderWithDepthRange(osg::State& state, const osg::Vec4& colorMultipl state.setTexCoordPointer( 0, 2, GL_FLOAT, 0, &(glyphquad._texcoords.front())); state.disableColorPointer(); - glColor4fv(_backdropColor.ptr()); + state.Color(_backdropColor.r(),_backdropColor.g(),_backdropColor.b(),_backdropColor.a()); for( ; backdrop_index < max_backdrop_index; backdrop_index++) { @@ -2148,7 +2150,7 @@ void Text::renderWithStencilBuffer(osg::State& state, const osg::Vec4& colorMult state.setTexCoordPointer( 0, 2, GL_FLOAT, 0, &(glyphquad._texcoords.front())); state.disableColorPointer(); - glColor4fv(_backdropColor.ptr()); + state.Color(_backdropColor.r(),_backdropColor.g(),_backdropColor.b(),_backdropColor.a()); for( ; backdrop_index < max_backdrop_index; backdrop_index++) { @@ -2162,9 +2164,6 @@ void Text::renderWithStencilBuffer(osg::State& state, const osg::Vec4& colorMult drawForegroundText(state, glyphquad, colorMultiplier); } - + glPopAttrib(); } - - - diff --git a/src/osgText/Text3D.cpp b/src/osgText/Text3D.cpp index fc126ec0e..6542d6eb9 100644 --- a/src/osgText/Text3D.cpp +++ b/src/osgText/Text3D.cpp @@ -519,6 +519,7 @@ void Text3D::drawImplementation(osg::RenderInfo& renderInfo) const // ** apply this new modelview matrix state.applyModelViewMatrix(modelview.get()); + osg::GLBeginEndAdapter& gl = (state.getGLBeginEndAdapter()); if (_drawMode & TEXT) { @@ -551,33 +552,33 @@ void Text3D::drawImplementation(osg::RenderInfo& renderInfo) const osg::Vec3 c111(osg::Vec3(_textBB.xMax(),_textBB.yMax(),_textBB.zMin())); osg::Vec3 c011(osg::Vec3(_textBB.xMin(),_textBB.yMax(),_textBB.zMin())); - glBegin(GL_LINE_LOOP); - glVertex3fv(c000.ptr()); - glVertex3fv(c100.ptr()); - glVertex3fv(c110.ptr()); - glVertex3fv(c010.ptr()); - glEnd(); + gl.Begin(GL_LINE_LOOP); + gl.Vertex3fv(c000.ptr()); + gl.Vertex3fv(c100.ptr()); + gl.Vertex3fv(c110.ptr()); + gl.Vertex3fv(c010.ptr()); + gl.End(); - glBegin(GL_LINE_LOOP); - glVertex3fv(c001.ptr()); - glVertex3fv(c011.ptr()); - glVertex3fv(c111.ptr()); - glVertex3fv(c101.ptr()); - glEnd(); + gl.Begin(GL_LINE_LOOP); + gl.Vertex3fv(c001.ptr()); + gl.Vertex3fv(c011.ptr()); + gl.Vertex3fv(c111.ptr()); + gl.Vertex3fv(c101.ptr()); + gl.End(); - glBegin(GL_LINES); - glVertex3fv(c000.ptr()); - glVertex3fv(c001.ptr()); + gl.Begin(GL_LINES); + gl.Vertex3fv(c000.ptr()); + gl.Vertex3fv(c001.ptr()); - glVertex3fv(c100.ptr()); - glVertex3fv(c101.ptr()); + gl.Vertex3fv(c100.ptr()); + gl.Vertex3fv(c101.ptr()); - glVertex3fv(c110.ptr()); - glVertex3fv(c111.ptr()); + gl.Vertex3fv(c110.ptr()); + gl.Vertex3fv(c111.ptr()); - glVertex3fv(c010.ptr()); - glVertex3fv(c011.ptr()); - glEnd(); + gl.Vertex3fv(c010.ptr()); + gl.Vertex3fv(c011.ptr()); + gl.End(); } } @@ -590,12 +591,12 @@ void Text3D::drawImplementation(osg::RenderInfo& renderInfo) const osg::Vec3 vt(osg::Vec3(_offset.x(),_offset.y()-cursorsize,_offset.z())); osg::Vec3 vb(osg::Vec3(_offset.x(),_offset.y()+cursorsize,_offset.z())); - glBegin(GL_LINES); - glVertex3fv(hl.ptr()); - glVertex3fv(hr.ptr()); - glVertex3fv(vt.ptr()); - glVertex3fv(vb.ptr()); - glEnd(); + gl.Begin(GL_LINES); + gl.Vertex3fv(hl.ptr()); + gl.Vertex3fv(hr.ptr()); + gl.Vertex3fv(vt.ptr()); + gl.Vertex3fv(vb.ptr()); + gl.End(); } @@ -622,7 +623,7 @@ void Text3D::renderPerGlyph(osg::State & state) const state.setVertexPointer(it->_glyph->getVertexArray()); // ** render the front face of the glyph - glNormal3f(0.0f,0.0f,1.0f); + state.Normal(0.0f,0.0f,1.0f); osg::Geometry::PrimitiveSetList & pslFront = it->_glyph->getFrontPrimitiveSetList(); for(osg::Geometry::PrimitiveSetList::const_iterator itr=pslFront.begin(), end = pslFront.end(); itr!=end; ++itr) @@ -640,7 +641,7 @@ void Text3D::renderPerGlyph(osg::State & state) const state.disableNormalPointer(); // ** render the back face of the glyph - glNormal3f(0.0f,0.0f,-1.0f); + state.Normal(0.0f,0.0f,-1.0f); osg::Geometry::PrimitiveSetList & pslBack = it->_glyph->getBackPrimitiveSetList(); for(osg::Geometry::PrimitiveSetList::const_iterator itr=pslBack.begin(), end=pslBack.end(); itr!=end; ++itr) @@ -656,7 +657,7 @@ void Text3D::renderPerGlyph(osg::State & state) const void Text3D::renderPerFace(osg::State & state) const { // ** render all front faces - glNormal3f(0.0f,0.0f,1.0f); + state.Normal(0.0f,0.0f,1.0f); TextRenderInfo::const_iterator itLine, endLine = _textRenderInfo.end(); for (itLine = _textRenderInfo.begin(); itLine!=endLine; ++itLine)