diff --git a/panda/src/collide/collisionInvSphere.cxx b/panda/src/collide/collisionInvSphere.cxx index 8df5b0f936..18d335df13 100644 --- a/panda/src/collide/collisionInvSphere.cxx +++ b/panda/src/collide/collisionInvSphere.cxx @@ -328,8 +328,7 @@ fill_viz_geom() { strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); _viz_geom->add_geom(geom, get_solid_viz_state()); diff --git a/panda/src/collide/collisionLine.cxx b/panda/src/collide/collisionLine.cxx index 6be25dcd4a..455379e96b 100644 --- a/panda/src/collide/collisionLine.cxx +++ b/panda/src/collide/collisionLine.cxx @@ -100,8 +100,7 @@ fill_viz_geom() { line->add_next_vertices(num_points); line->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(line); _viz_geom->add_geom(geom, get_other_viz_state()); diff --git a/panda/src/collide/collisionPlane.cxx b/panda/src/collide/collisionPlane.cxx index 458d4d8f02..ed21dc0a30 100644 --- a/panda/src/collide/collisionPlane.cxx +++ b/panda/src/collide/collisionPlane.cxx @@ -343,12 +343,10 @@ fill_viz_geom() { border->add_vertex(0); border->close_primitive(); - PT(Geom) geom1 = new Geom; - geom1->set_vertex_data(vdata); + PT(Geom) geom1 = new Geom(vdata); geom1->add_primitive(body); - PT(Geom) geom2 = new Geom; - geom2->set_vertex_data(vdata); + PT(Geom) geom2 = new Geom(vdata); geom2->add_primitive(border); _viz_geom->add_geom(geom1, get_solid_viz_state()); diff --git a/panda/src/collide/collisionPolygon.cxx b/panda/src/collide/collisionPolygon.cxx index 7068fc38d2..59d49274e3 100644 --- a/panda/src/collide/collisionPolygon.cxx +++ b/panda/src/collide/collisionPolygon.cxx @@ -831,12 +831,10 @@ draw_polygon(GeomNode *viz_geom_node, GeomNode *bounds_viz_geom_node, border->add_vertex(0); border->close_primitive(); - PT(Geom) geom1 = new Geom; - geom1->set_vertex_data(vdata); + PT(Geom) geom1 = new Geom(vdata); geom1->add_primitive(body); - PT(Geom) geom2 = new Geom; - geom2->set_vertex_data(vdata); + PT(Geom) geom2 = new Geom(vdata); geom2->add_primitive(border); viz_geom_node->add_geom(geom1, ((CollisionPolygon *)this)->get_solid_viz_state()); diff --git a/panda/src/collide/collisionRay.cxx b/panda/src/collide/collisionRay.cxx index de3b16832e..1126c9af6a 100644 --- a/panda/src/collide/collisionRay.cxx +++ b/panda/src/collide/collisionRay.cxx @@ -172,8 +172,7 @@ fill_viz_geom() { line->add_next_vertices(num_points); line->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(line); _viz_geom->add_geom(geom, get_other_viz_state()); diff --git a/panda/src/collide/collisionSegment.cxx b/panda/src/collide/collisionSegment.cxx index 1a61849b48..4b60123bcb 100644 --- a/panda/src/collide/collisionSegment.cxx +++ b/panda/src/collide/collisionSegment.cxx @@ -170,8 +170,7 @@ fill_viz_geom() { line->add_next_vertices(2); line->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(line); _viz_geom->add_geom(geom, get_other_viz_state()); diff --git a/panda/src/collide/collisionSphere.cxx b/panda/src/collide/collisionSphere.cxx index 0e86b12031..81c8e3c899 100644 --- a/panda/src/collide/collisionSphere.cxx +++ b/panda/src/collide/collisionSphere.cxx @@ -347,8 +347,7 @@ fill_viz_geom() { strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); _viz_geom->add_geom(geom, get_solid_viz_state()); diff --git a/panda/src/collide/collisionTube.cxx b/panda/src/collide/collisionTube.cxx index 64083b67be..91806c9804 100644 --- a/panda/src/collide/collisionTube.cxx +++ b/panda/src/collide/collisionTube.cxx @@ -428,8 +428,7 @@ fill_viz_geom() { strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); // Now transform the vertices to their actual location. diff --git a/panda/src/collide/collisionVisualizer.cxx b/panda/src/collide/collisionVisualizer.cxx index 99073a3ce8..8816448820 100644 --- a/panda/src/collide/collisionVisualizer.cxx +++ b/panda/src/collide/collisionVisualizer.cxx @@ -206,8 +206,7 @@ cull_callback(CullTraverser *trav, CullTraverserData &data) { points->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(point_vdata); + PT(Geom) geom = new Geom(point_vdata); geom->add_primitive(points); CullableObject *object = @@ -235,8 +234,7 @@ cull_callback(CullTraverser *trav, CullTraverserData &data) { lines->add_next_vertices(2); lines->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(line_vdata); + PT(Geom) geom = new Geom(line_vdata); geom->add_primitive(lines); CullableObject *object = diff --git a/panda/src/distort/projectionScreen.cxx b/panda/src/distort/projectionScreen.cxx index e6567b0c91..b74205ec1f 100644 --- a/panda/src/distort/projectionScreen.cxx +++ b/panda/src/distort/projectionScreen.cxx @@ -253,8 +253,7 @@ generate_screen(const NodePath &projector, const string &screen_name, strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); geom_node->add_geom(geom); diff --git a/panda/src/egg2pg/eggLoader.cxx b/panda/src/egg2pg/eggLoader.cxx index f1ce83b45c..8d82a78d62 100644 --- a/panda/src/egg2pg/eggLoader.cxx +++ b/panda/src/egg2pg/eggLoader.cxx @@ -354,8 +354,7 @@ make_polyset(EggBin *egg_bin, PandaNode *parent, const LMatrix4d *transform, nassertv(vertex_data != (GeomVertexData *)NULL); // And create a Geom to hold the primitives. - PT(Geom) geom = new Geom; - geom->set_vertex_data(vertex_data); + PT(Geom) geom = new Geom(vertex_data); // Add each new primitive to the Geom. Primitives::const_iterator pi; @@ -566,8 +565,7 @@ show_normals(EggVertexPool *vertex_pool, GeomNode *geom_node) { } } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vertex_data); + PT(Geom) geom = new Geom(vertex_data); geom->add_primitive(primitive); geom_node->add_geom(geom); } diff --git a/panda/src/framework/windowFramework.cxx b/panda/src/framework/windowFramework.cxx index af43c91a8b..92e86b1170 100644 --- a/panda/src/framework/windowFramework.cxx +++ b/panda/src/framework/windowFramework.cxx @@ -645,8 +645,7 @@ load_default_model(const NodePath &parent) { tri->add_consecutive_vertices(0, 3); tri->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(tri); geomnode->add_geom(geom, state); @@ -1034,8 +1033,7 @@ load_image_as_model(const Filename &filename) { strip->add_consecutive_vertices(0, 4); strip->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); card_node->add_geom(geom); diff --git a/panda/src/gobj/geom.cxx b/panda/src/gobj/geom.cxx index 3a759e73e9..15b738da13 100644 --- a/panda/src/gobj/geom.cxx +++ b/panda/src/gobj/geom.cxx @@ -35,7 +35,8 @@ TypeHandle Geom::_type_handle; // Description: //////////////////////////////////////////////////////////////////// Geom:: -Geom() { +Geom(const GeomVertexData *data) { + set_vertex_data(data); } //////////////////////////////////////////////////////////////////// @@ -1067,7 +1068,7 @@ write_datagram(BamWriter *manager, Datagram &dg) { //////////////////////////////////////////////////////////////////// TypedWritable *Geom:: make_from_bam(const FactoryParams ¶ms) { - Geom *object = new Geom; + Geom *object = new Geom(NULL); DatagramIterator scan; BamReader *manager; diff --git a/panda/src/gobj/geom.h b/panda/src/gobj/geom.h index 8b7fb6d252..6cf52a736d 100644 --- a/panda/src/gobj/geom.h +++ b/panda/src/gobj/geom.h @@ -53,7 +53,7 @@ class PreparedGraphicsObjects; //////////////////////////////////////////////////////////////////// class EXPCL_PANDA Geom : public TypedWritableReferenceCount, public BoundedObject, public GeomEnums { PUBLISHED: - Geom(); + Geom(const GeomVertexData *data); Geom(const Geom ©); void operator = (const Geom ©); virtual ~Geom(); diff --git a/panda/src/gobj/lens.cxx b/panda/src/gobj/lens.cxx index 317ca75b6d..5a62ec9ec4 100644 --- a/panda/src/gobj/lens.cxx +++ b/panda/src/gobj/lens.cxx @@ -956,8 +956,7 @@ make_geometry() { line->add_vertex(num_segments * (4 * 2) + 1); line->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(_geom_data); + PT(Geom) geom = new Geom(_geom_data); geom->add_primitive(line); return geom.p(); diff --git a/panda/src/grutil/cardMaker.cxx b/panda/src/grutil/cardMaker.cxx index 588fd8e9fc..73fa19ca38 100644 --- a/panda/src/grutil/cardMaker.cxx +++ b/panda/src/grutil/cardMaker.cxx @@ -115,8 +115,7 @@ generate() { strip->add_next_vertices(4); strip->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); gnode->add_geom(geom); diff --git a/panda/src/grutil/lineSegs.cxx b/panda/src/grutil/lineSegs.cxx index bc492428df..2d70f31f31 100644 --- a/panda/src/grutil/lineSegs.cxx +++ b/panda/src/grutil/lineSegs.cxx @@ -256,14 +256,12 @@ create(GeomNode *previous, bool dynamic) { } if (lines->get_num_vertices() != 0) { - PT(Geom) geom = new Geom; - geom->set_vertex_data(_created_data); + PT(Geom) geom = new Geom(_created_data); geom->add_primitive(lines); previous->add_geom(geom, state); } if (points->get_num_vertices() != 0) { - PT(Geom) geom = new Geom; - geom->set_vertex_data(_created_data); + PT(Geom) geom = new Geom(_created_data); geom->add_primitive(points); previous->add_geom(geom, state); } diff --git a/panda/src/parametrics/ropeNode.cxx b/panda/src/parametrics/ropeNode.cxx index 2eec0c488b..a1a10bea14 100644 --- a/panda/src/parametrics/ropeNode.cxx +++ b/panda/src/parametrics/ropeNode.cxx @@ -350,8 +350,7 @@ render_thread(CullTraverser *trav, CullTraverserData &data, strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CPT(RenderAttrib) thick = RenderModeAttrib::make(RenderModeAttrib::M_unchanged, get_thickness()); @@ -396,8 +395,7 @@ render_tape(CullTraverser *trav, CullTraverserData &data, strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CullableObject *object = new CullableObject(geom, data._state, @@ -446,8 +444,7 @@ render_billboard(CullTraverser *trav, CullTraverserData &data, strip->close_primitive(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CullableObject *object = new CullableObject(geom, data._state, @@ -503,8 +500,7 @@ render_tube(CullTraverser *trav, CullTraverserData &data, vi += (int)segment.size(); } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CullableObject *object = new CullableObject(geom, data._state, diff --git a/panda/src/parametrics/sheetNode.cxx b/panda/src/parametrics/sheetNode.cxx index ad92a76097..a873b3344d 100644 --- a/panda/src/parametrics/sheetNode.cxx +++ b/panda/src/parametrics/sheetNode.cxx @@ -326,8 +326,7 @@ render_sheet(CullTraverser *trav, CullTraverserData &data, } } - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CullableObject *object = new CullableObject(geom, data._state, diff --git a/panda/src/particlesystem/lineParticleRenderer.cxx b/panda/src/particlesystem/lineParticleRenderer.cxx index e8da583cf1..07871da9ae 100644 --- a/panda/src/particlesystem/lineParticleRenderer.cxx +++ b/panda/src/particlesystem/lineParticleRenderer.cxx @@ -133,12 +133,11 @@ resize_pool(int new_size) { void LineParticleRenderer:: init_geoms() { - PT(Geom) geom = new Geom; - _line_primitive = geom; _vdata = new GeomVertexData ("particles", GeomVertexFormat::get_v3cp(), Geom::UH_dynamic); - geom->set_vertex_data(_vdata); + PT(Geom) geom = new Geom(_vdata); + _line_primitive = geom; _lines = new GeomLines(Geom::UH_dynamic); geom->add_primitive(_lines); diff --git a/panda/src/particlesystem/pointParticleRenderer.cxx b/panda/src/particlesystem/pointParticleRenderer.cxx index 65e50e8daf..da792797ef 100644 --- a/panda/src/particlesystem/pointParticleRenderer.cxx +++ b/panda/src/particlesystem/pointParticleRenderer.cxx @@ -108,12 +108,11 @@ resize_pool(int new_size) { void PointParticleRenderer:: init_geoms() { - PT(Geom) geom = new Geom; - _point_primitive = geom; _vdata = new GeomVertexData ("particles", GeomVertexFormat::get_v3cp(), Geom::UH_dynamic); - geom->set_vertex_data(_vdata); + PT(Geom) geom = new Geom(_vdata); + _point_primitive = geom; _points = new GeomPoints(Geom::UH_dynamic); geom->add_primitive(_points); diff --git a/panda/src/particlesystem/sparkleParticleRenderer.cxx b/panda/src/particlesystem/sparkleParticleRenderer.cxx index 66040fa2fd..0d15ad6b45 100644 --- a/panda/src/particlesystem/sparkleParticleRenderer.cxx +++ b/panda/src/particlesystem/sparkleParticleRenderer.cxx @@ -129,12 +129,11 @@ resize_pool(int new_size) { //////////////////////////////////////////////////////////////////// void SparkleParticleRenderer:: init_geoms() { - PT(Geom) geom = new Geom; - _line_primitive = geom; _vdata = new GeomVertexData ("particles", GeomVertexFormat::get_v3cp(), Geom::UH_dynamic); - geom->set_vertex_data(_vdata); + PT(Geom) geom = new Geom(_vdata); + _line_primitive = geom; _lines = new GeomLines(Geom::UH_dynamic); geom->add_primitive(_lines); diff --git a/panda/src/particlesystem/spriteParticleRenderer.cxx b/panda/src/particlesystem/spriteParticleRenderer.cxx index a0a12f9963..b17d7a6e76 100644 --- a/panda/src/particlesystem/spriteParticleRenderer.cxx +++ b/panda/src/particlesystem/spriteParticleRenderer.cxx @@ -498,10 +498,9 @@ init_geoms() { // For each frame of the animation... for (j = 0; j < _anim_size[i]; ++j) { _ttl_count[i] = new int[_anim_size[i]]; - PT(Geom) geom = new Geom; - _sprite_primitive[i].push_back((Geom*)geom); _vdata[i].push_back(new GeomVertexData("particles", format, Geom::UH_dynamic)); - geom->set_vertex_data(_vdata[i][j]); + PT(Geom) geom = new Geom(_vdata[i][j]); + _sprite_primitive[i].push_back((Geom*)geom); _sprites[i].push_back(new GeomPoints(Geom::UH_dynamic)); geom->add_primitive(_sprites[i][j]); diff --git a/panda/src/pgraph/cullTraverser.cxx b/panda/src/pgraph/cullTraverser.cxx index 54b1a2f6cd..1119b2f0d5 100644 --- a/panda/src/pgraph/cullTraverser.cxx +++ b/panda/src/pgraph/cullTraverser.cxx @@ -333,8 +333,7 @@ make_bounds_viz(const BoundingVolume &vol) { strip->close_primitive(); } - geom = new Geom; - geom->set_vertex_data(vdata); + geom = new Geom(vdata); geom->add_primitive(strip); } else { @@ -398,8 +397,7 @@ make_tight_bounds_viz(PandaNode *node) { strip->add_vertex(1); strip->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); geom = geom.p(); } diff --git a/panda/src/pgraph/cullableObject.cxx b/panda/src/pgraph/cullableObject.cxx index 145fb4a22a..60065cd67f 100644 --- a/panda/src/pgraph/cullableObject.cxx +++ b/panda/src/pgraph/cullableObject.cxx @@ -250,8 +250,7 @@ munge_points_to_quads(const CullTraverser *traverser) { GeomVertexWriter new_texcoord(new_data, InternalName::get_texcoord()); int new_vi = 0; - PT(Geom) new_geom = new Geom(); - new_geom->set_vertex_data(new_data); + PT(Geom) new_geom = new Geom(new_data); const LMatrix4f &modelview = _modelview_transform->get_mat(); diff --git a/panda/src/pgraph/portalClipper.cxx b/panda/src/pgraph/portalClipper.cxx index 59865029bf..1ef823a9bc 100755 --- a/panda/src/pgraph/portalClipper.cxx +++ b/panda/src/pgraph/portalClipper.cxx @@ -45,7 +45,6 @@ TypeHandle PortalClipper::_type_handle; PortalClipper:: PortalClipper(GeometricBoundingVolume *frustum, SceneSetup *scene_setup) { _previous = new GeomNode("my_frustum"); - _geom = new Geom; _view_frustum = _reduced_frustum = DCAST(BoundingHexahedron, frustum); @@ -204,14 +203,12 @@ draw_lines() { } if (lines->get_num_vertices() != 0) { - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(lines); _previous->add_geom(geom, state); } if (points->get_num_vertices() != 0) { - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(points); _previous->add_geom(geom, state); } diff --git a/panda/src/pgraph/portalClipper.h b/panda/src/pgraph/portalClipper.h index fa96e2ed75..4f0e13e641 100755 --- a/panda/src/pgraph/portalClipper.h +++ b/panda/src/pgraph/portalClipper.h @@ -124,7 +124,6 @@ private: float _thick; PT(GeomVertexData) _created_data; - PT(Geom) _geom; BoundingHexahedron *_view_frustum; BoundingHexahedron *_reduced_frustum; diff --git a/panda/src/pgui/pgFrameStyle.cxx b/panda/src/pgui/pgFrameStyle.cxx index 0b3f9c0da4..da2eb91366 100644 --- a/panda/src/pgui/pgFrameStyle.cxx +++ b/panda/src/pgui/pgFrameStyle.cxx @@ -218,8 +218,7 @@ generate_flat_geom(const LVecBase4f &frame) { strip->add_next_vertices(4); strip->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); gnode->add_geom(geom); @@ -389,8 +388,7 @@ generate_bevel_geom(const LVecBase4f &frame, bool in) { strip->close_primitive(); strip->set_shade_model(Geom::SM_flat_last_vertex); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CPT(RenderState) flat_state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat)); @@ -631,8 +629,7 @@ generate_groove_geom(const LVecBase4f &frame, bool in) { strip->set_shade_model(Geom::SM_flat_last_vertex); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(strip); CPT(RenderState) flat_state = RenderState::make(ShadeModelAttrib::make(ShadeModelAttrib::M_flat)); diff --git a/panda/src/text/dynamicTextGlyph.cxx b/panda/src/text/dynamicTextGlyph.cxx index 89ca9cc777..6a3e14f3e8 100644 --- a/panda/src/text/dynamicTextGlyph.cxx +++ b/panda/src/text/dynamicTextGlyph.cxx @@ -22,7 +22,6 @@ #include "dynamicTextPage.h" #include "geomTextGlyph.h" -#include "geomTextGlyph.h" #include "geomVertexData.h" #include "geomVertexFormat.h" #include "geomTriangles.h" @@ -151,8 +150,7 @@ make_geom(int bitmap_top, int bitmap_left, float advance, float poly_margin, tris->add_vertex(3); tris->close_primitive(); - PT(Geom) geom = new GeomTextGlyph(this); - geom->set_vertex_data(vdata); + PT(Geom) geom = new GeomTextGlyph(this, vdata); geom->add_primitive(tris); _geom = geom; diff --git a/panda/src/text/geomTextGlyph.I b/panda/src/text/geomTextGlyph.I index 18a83cf6ed..804e02d087 100644 --- a/panda/src/text/geomTextGlyph.I +++ b/panda/src/text/geomTextGlyph.I @@ -23,7 +23,8 @@ // Description: //////////////////////////////////////////////////////////////////// INLINE GeomTextGlyph:: -GeomTextGlyph(DynamicTextGlyph *glyph) : +GeomTextGlyph(DynamicTextGlyph *glyph, const GeomVertexData *data) : + Geom(data), _glyph(glyph) { if (_glyph != (DynamicTextGlyph *)NULL) { diff --git a/panda/src/text/geomTextGlyph.cxx b/panda/src/text/geomTextGlyph.cxx index 2c980943fd..1ea55ee0c5 100644 --- a/panda/src/text/geomTextGlyph.cxx +++ b/panda/src/text/geomTextGlyph.cxx @@ -87,7 +87,8 @@ register_with_read_factory() { //////////////////////////////////////////////////////////////////// TypedWritable* GeomTextGlyph:: make_GeomTextGlyph(const FactoryParams ¶ms) { - GeomTextGlyph *me = new GeomTextGlyph((DynamicTextGlyph *)NULL); + GeomTextGlyph *me = new GeomTextGlyph((DynamicTextGlyph *)NULL, + (GeomVertexData *)NULL); DatagramIterator scan; BamReader *manager; diff --git a/panda/src/text/geomTextGlyph.h b/panda/src/text/geomTextGlyph.h index f2feb687ef..cedd1c6019 100644 --- a/panda/src/text/geomTextGlyph.h +++ b/panda/src/text/geomTextGlyph.h @@ -37,7 +37,8 @@ //////////////////////////////////////////////////////////////////// class EXPCL_PANDA GeomTextGlyph : public Geom { public: - INLINE GeomTextGlyph(DynamicTextGlyph *glyph); + INLINE GeomTextGlyph(DynamicTextGlyph *glyph, + const GeomVertexData *data); INLINE GeomTextGlyph(const GeomTextGlyph ©); void operator = (const GeomTextGlyph ©); virtual ~GeomTextGlyph(); diff --git a/panda/src/text/textNode.cxx b/panda/src/text/textNode.cxx index 30d3dbc225..fe4a2effbc 100644 --- a/panda/src/text/textNode.cxx +++ b/panda/src/text/textNode.cxx @@ -640,16 +640,14 @@ make_frame() { frame->add_vertex(0); frame->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(frame); frame_node->add_geom(geom, state); if (get_frame_corners()) { PT(GeomPoints) corners = new GeomPoints(get_usage_hint()); corners->add_consecutive_vertices(0, 4); - PT(Geom) geom2 = new Geom; - geom2->set_vertex_data(vdata); + PT(Geom) geom2 = new Geom(vdata); geom2->add_primitive(corners); frame_node->add_geom(geom2, state); } @@ -691,8 +689,7 @@ make_card() { card->add_consecutive_vertices(0, 4); card->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(card); card_node->add_geom(geom); @@ -798,8 +795,7 @@ make_card_with_border() { card->add_consecutive_vertices(8, 8); card->close_primitive(); - PT(Geom) geom = new Geom; - geom->set_vertex_data(vdata); + PT(Geom) geom = new Geom(vdata); geom->add_primitive(card); card_node->add_geom(geom);