Commit Graph

431 Commits

Author SHA1 Message Date
Robert Osfield
445f2bfe21 Reordered operations to make code easier to follow 2017-03-09 18:16:04 +00:00
Robert Osfield
91564e36b0 Cleaned up VertexArrayState handling 2017-03-09 17:48:06 +00:00
Robert Osfield
7f3f995c56 Improved handling of VBO/VAO's in Text3D 2017-03-09 17:47:27 +00:00
Robert Osfield
2cad221d80 Cleaned out old code paths 2017-03-09 17:33:38 +00:00
Robert Osfield
96760970ed Added setDataVariance(DYNAMIC) to stats text labels that are dyanmically updated. 2017-03-09 17:01:33 +00:00
Robert Osfield
7868909f43 Improved the handling of array updates and support for VBO and VAO's. 2017-03-08 18:15:06 +00:00
Robert Osfield
26878fa7ab Fixed text background tessellation 2017-03-06 14:37:21 +00:00
Robert Osfield
bb754b6f0a Moved all vertex array set up to start of Text/Text3D::drawImplementation(). 2017-03-04 17:20:54 +00:00
Robert Osfield
b88be0fbda Implemented better handling of VertexBufferObjects and ElementBufferObjects in osgText 2017-03-03 18:31:51 +00:00
Robert Osfield
59931d1591 Removed unneccessary mutable usage 2017-03-02 17:05:24 +00:00
Robert Osfield
1e36a12a17 Updated Attribute and PrimitiveFunctor implementations 2017-03-02 16:33:09 +00:00
Robert Osfield
a69216a79d Refactored osgText::Tex3D to use a single vertex and normal arrays and a combined set of primitive sets. Deprecated Text3D::RenderMode as it's no longer used. 2017-03-02 16:11:10 +00:00
Robert Osfield
4721651dbe Added NEW_APPROACH code path that merges the separate GlyphGeometry arrays and primitives into a single set of arrays and primitives 2017-03-02 11:12:55 +00:00
Robert Osfield
f233005988 Merged the decoration vertices with the same vertex arrays used for text glyphs 2017-03-01 16:43:05 +00:00
Robert Osfield
f4966a96d4 Replaced hardwired glDrawArrays calls with use of osg::DrawElementsUshort. 2017-03-01 11:51:27 +00:00
Robert Osfield
256441906f Removed unused member variable 2017-02-28 17:12:58 +00:00
Robert Osfield
1290f1584a Removed old Text::GlyphQuads array code paths 2017-02-28 17:02:02 +00:00
Robert Osfield
138af70bd8 Merged the Text::GlyphQuads cooordinate arrays 2017-02-28 16:34:33 +00:00
Robert Osfield
e5685dfca5 Removed old code paths 2017-02-27 15:15:37 +00:00
Robert Osfield
80c96cd54f Added option for combining the GlyphQuad::backdropcoords into the GlyphQuad::coords. 2017-02-27 11:53:42 +00:00
Robert Osfield
8adbf322a0 Scaled back the primitives sets set up so they match the requirements of the osgText::Text accordinging to the BackdropType 2017-02-24 18:25:16 +00:00
Robert Osfield
a84a6bd309 Moved glyph quad setup into dedicated method 2017-02-24 17:08:48 +00:00
Robert Osfield
cefecaec10 Removed unused lineNumber 2017-02-24 11:17:22 +00:00
Robert Osfield
aa621e1a4a Grouped GlyphQuad setup 2017-02-24 11:08:15 +00:00
Robert Osfield
4c032723ba Fixed indentation 2017-02-24 10:40:52 +00:00
Robert Osfield
93f28d4eee Moved to use of single vector of DrawElementsUShort for backdrops and foreground text quads 2017-02-24 10:07:01 +00:00
Robert Osfield
22b8a5cc0f Added missing relaseGLObjects()/resizeGLObjects().
Reordered calls to make it easier to read and see patterns.
2017-02-23 18:36:35 +00:00
Robert Osfield
b5048d3b74 Cleaned up types 2017-02-23 18:14:36 +00:00
Robert Osfield
8ff17ddf52 Restructed and unified the position computation 2017-02-23 15:45:43 +00:00
Robert Osfield
7b3ecefcfc Removed the old code paths 2017-02-22 14:14:03 +00:00
Robert Osfield
f816436771 Removed the unncessary array. 2017-02-22 12:41:45 +00:00
Robert Osfield
04d23659b3 Added the option for changing the type of the GlyphQuads::Coords 2017-02-22 12:07:43 +00:00
Robert Osfield
f8dc5c4988 Fixed FadeText when using NEW_APPROACH 2017-02-21 17:47:54 +00:00
Robert Osfield
cd991eaa97 Refactored the computation of the transforms for the osgText::Text 2017-02-21 17:07:53 +00:00
Robert Osfield
0f3e61146d Refactored osgText so that it no longer uses GLBeginEndAdapter 2016-10-11 11:29:29 +01:00
Robert Osfield
53cdacd926 Refactored Text3D so that it no longer depends upon GLBeginEndAdapter 2016-10-11 11:29:29 +01:00
Robert Osfield
e3c663bb02 Removed deprecated code paths and moved implementations into headers 2016-10-11 11:29:29 +01:00
Robert Osfield
5fdf9829bb Removed dead code 2016-06-23 07:52:14 +01:00
Robert Osfield
14805dc8b9 Restructed setting of vertex array to avoid possible reference of null 2016-06-23 07:47:40 +01:00
Robert Osfield
6f68915425 Fixed unused parameter warning. 2016-06-08 09:38:22 +01:00
Robert Osfield
9dee2ecf33 Fixed redundent checks and clean up clone usage 2016-06-02 14:36:38 +01:00
Robert Osfield
8f20bc9147 Fixed shadows warnings 2016-05-25 10:10:43 +01:00
Robert Osfield
92ffa85917 Fixed line endings 2016-05-25 10:09:18 +01:00
Robert Osfield
be98c884bd From Ognjen Kostic, "Some android phones have no support for OES_element_index_uint extension that is required if glDrawElements is to be called with GL_UNSIGNED_INT for element type.
In OSG 3.4, osgText::Text( ::_quadIndices) uses DrawElementsUInt that will fail on these devices and no text will appear - tested on Samsung Galaxy Trend 2 SM-G313HN.

When DrawElementsUInt is replaced with DrawElementsUShort it works, although I'm not sure if this can cause other problems with some fonts.

Fix:
- In include\osgText\Text, line 316:
        replace: "osg::ref_ptr< osg::DrawElementsUInt > _quadIndices;"
        with:    "osg::ref_ptr< osg::DrawElementsUShort > _quadIndices;"

- In src\osgText\Text.cpp, line 2094:
        replace: "_quadIndices = new DrawElementsUInt(PrimitiveSet::TRIANGLES);"
        with:    "_quadIndices = new DrawElementsUShort(PrimitiveSet::TRIANGLES);"
"
2016-03-01 10:21:14 +00:00
Robert Osfield
67202b2662 From Romain Ouabdelkader, "This is a fix for osgText to calculate kerning and to load glyph3D with the text's font resolution.
Font::getKerning(...), Font::getGlyph3D(...) doesn't ask for a font resolution so it uses the last font resolution requested by Font:: getGlyph(...).
This can leads to different results depending of the precedent call to Font::getGlyph(...).
See http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2016-January/271952.html for more infos.

This fix adds a font resolution parameter to Font::getKerning(...), Font::getGlyph3D(...) and to the font implementations.
This was made under the base revision r15182."
2016-02-15 13:30:39 +00:00
Robert Osfield
4deca2d38b From Jannik Heller and Robert Osfield, introduced ReadResult/WriteResult::statusMessage() method that creates a std::string from the stutus value and message string. 2016-01-25 12:23:04 +00:00
Robert Osfield
55a8f4abbc Renamed DrawableUpdate/Event/Cull callbacks to use new include/osg/Callback versions 2016-01-19 11:39:28 +00:00
Robert Osfield
dd996a3289 Introduced CMake option OSG_PROVIDE_READFILE option that defaults to ON, but when switched to OFF disables the building of the osgDB::read*File() methods,
forcing users to use osgDB::readRef*File() methods.  The later is preferable as it closes a potential threading bug when using paging databases in conjunction
with the osgDB::Registry Object Cache.  This threading bug occurs when one thread gets an object from the Cache via an osgDB::read*File() call where only
a pointer to the object is passed back, so taking a reference to the object is delayed till it gets reassigned to a ref_ptr<>, but at the same time another
thread calls a flush of the Object Cache deleting this object as it's referenceCount is now zero.  Using osgDB::readREf*File() makes sure the a ref_ptr<> is
passed back and the referenceCount never goes to zero.

To ensure the OSG builds when OSG_PROVIDE_READFILE is to OFF the many cases of osgDB::read*File() usage had to be replaced with a ref_ptr<> osgDB::readRef*File()
usage.  The avoid this change causing lots of other client code to be rewritten to handle the use of ref_ptr<> in place of C pointer I introduced a serious of
templte methods in various class to adapt ref_ptr<> to the underly C pointer to be passed to old OSG API's, example of this is found in include/osg/Group:

    bool addChild(Node* child); // old method which can only be used with a Node*

    tempalte<class T> bool addChild(const osg::ref_ptr<T>& child) { return addChild(child.get()); } // adapter template method

These changes together cover 149 modified files, so it's a large submission. This extent of changes are warrent to make use of the Object Cache
and multi-threaded loaded more robust.



git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15164 16af8721-9629-0410-8352-f15c8da7e697
2015-10-22 13:42:19 +00:00
Robert Osfield
cd09242520 Added checks for the validity of chached coordinate arrays.
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15060 16af8721-9629-0410-8352-f15c8da7e697
2015-08-06 15:03:05 +00:00
Robert Osfield
b908ced20c Added check to catch cases where the backdrop coordinate cache is too small for the number of contexts being computed.
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14961 16af8721-9629-0410-8352-f15c8da7e697
2015-07-16 11:01:35 +00:00