diff --git a/include/osgText/Font b/include/osgText/Font index 8474a6c1c..5d66ab493 100644 --- a/include/osgText/Font +++ b/include/osgText/Font @@ -239,6 +239,12 @@ public: virtual void apply(osg::State& state) const; + /** Set whether to use a mutex to ensure ref() and unref() are thread safe.*/ + virtual void setThreadSafeRefUnref(bool threadSafe); + + /** Resize any per context GLObject buffers to specified size. */ + virtual void resizeGLObjectBuffers(unsigned int maxSize); + protected: virtual ~GlyphTexture(); diff --git a/src/osgText/Font.cpp b/src/osgText/Font.cpp index 268d7abe7..2a0790c3c 100644 --- a/src/osgText/Font.cpp +++ b/src/osgText/Font.cpp @@ -655,6 +655,18 @@ void Font::GlyphTexture::apply(osg::State& state) const } +void Font::GlyphTexture::setThreadSafeRefUnref(bool threadSafe) +{ + osg::Texture2D::setThreadSafeRefUnref(threadSafe); +} + +void Font::GlyphTexture::resizeGLObjectBuffers(unsigned int maxSize) +{ + osg::Texture2D::resizeGLObjectBuffers(maxSize); + _glyphsToSubload.resize(maxSize); +} + + // all the methods in Font::Glyph have been made non inline because VisualStudio6.0 is STUPID, STUPID, STUPID PILE OF JUNK. Font::Glyph::Glyph() {} Font::Glyph::~Glyph() {} diff --git a/src/osgText/Text.cpp b/src/osgText/Text.cpp index 56f90f562..10aff1282 100644 --- a/src/osgText/Text.cpp +++ b/src/osgText/Text.cpp @@ -1475,8 +1475,8 @@ void Text::drawImplementation(osg::State& state, const osg::Vec4& colorMultiplie const osg::Viewport* viewport = state.getCurrentViewport(); if (viewport) { - width = viewport->width(); - height = viewport->height(); + width = static_cast(viewport->width()); + height = static_cast(viewport->height()); } bool doUpdate = atc._traversalNumber==-1;