re-active Draw:Primitive

This commit is contained in:
David Rose 2006-03-02 00:18:50 +00:00
parent e3b0ae1bc3
commit b37791b9b0
6 changed files with 25 additions and 1 deletions

View File

@ -75,7 +75,7 @@ PStatCollector GraphicsStateGuardian::_vertices_indexed_tristrip_pcollector("Ver
PStatCollector GraphicsStateGuardian::_state_pcollector("State changes");
PStatCollector GraphicsStateGuardian::_transform_state_pcollector("State changes:Transforms");
PStatCollector GraphicsStateGuardian::_texture_state_pcollector("State changes:Textures");
PStatCollector GraphicsStateGuardian::_draw_primitive_pcollector("Draw:Primitive");
PStatCollector GraphicsStateGuardian::_draw_primitive_pcollector("Draw:Primitive:Draw");
PStatCollector GraphicsStateGuardian::_clear_pcollector("Draw:Clear");
PStatCollector GraphicsStateGuardian::_flush_pcollector("Draw:Flush");

View File

@ -898,6 +898,7 @@ begin_draw_primitives(const Geom *geom, const GeomMunger *munger,
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_triangles(const GeomTriangles *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
_vertices_tri_pcollector.add_level(primitive->get_num_vertices());
_primitive_batches_tri_pcollector.add_level(1);
if (primitive->is_indexed()) {
@ -954,6 +955,7 @@ draw_triangles(const GeomTriangles *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_tristrips(const GeomTristrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
if (connect_triangle_strips && _current_fill_mode != RenderModeAttrib::M_wireframe) {
// One long triangle strip, connected by the degenerate vertices
// that have already been set up within the primitive.
@ -1103,6 +1105,7 @@ draw_tristrips(const GeomTristrips *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_trifans(const GeomTrifans *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
CPTA_int ends = primitive->get_ends();
_primitive_batches_trifan_pcollector.add_level(ends.size());
@ -1201,6 +1204,7 @@ draw_trifans(const GeomTrifans *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_lines(const GeomLines *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
_vertices_other_pcollector.add_level(primitive->get_num_vertices());
_primitive_batches_other_pcollector.add_level(1);
@ -1258,6 +1262,7 @@ draw_lines(const GeomLines *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_linestrips(const GeomLinestrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
}
////////////////////////////////////////////////////////////////////
@ -1267,6 +1272,7 @@ draw_linestrips(const GeomLinestrips *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian8::
draw_points(const GeomPoints *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
_vertices_other_pcollector.add_level(primitive->get_num_vertices());
_primitive_batches_other_pcollector.add_level(1);

View File

@ -1373,6 +1373,7 @@ data = _vertex_data -> get_array (first_index);
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_triangles(const GeomTriangles *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
// DBG_SH5 dxgsg9_cat.debug ( ) << "draw_triangles 1\n"; DBG_E
@ -1444,6 +1445,7 @@ draw_triangles(const GeomTriangles *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_tristrips(const GeomTristrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
DBG_SH5 dxgsg9_cat.debug ( ) << "draw_tristrips\n"; DBG_E
@ -1605,6 +1607,7 @@ draw_tristrips(const GeomTristrips *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_trifans(const GeomTrifans *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
DBG_SH5 dxgsg9_cat.debug ( ) << "draw_trifans\n"; DBG_E
@ -1706,6 +1709,7 @@ draw_trifans(const GeomTrifans *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_lines(const GeomLines *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
_vertices_other_pcollector.add_level(primitive->get_num_vertices());
_primitive_batches_other_pcollector.add_level(1);
@ -1764,6 +1768,7 @@ draw_lines(const GeomLines *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_linestrips(const GeomLinestrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
}
////////////////////////////////////////////////////////////////////
@ -1773,6 +1778,7 @@ draw_linestrips(const GeomLinestrips *primitive) {
////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian9::
draw_points(const GeomPoints *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
_vertices_other_pcollector.add_level(primitive->get_num_vertices());
_primitive_batches_other_pcollector.add_level(1);

View File

@ -1642,6 +1642,8 @@ disable_standard_vertex_arrays()
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_triangles(const GeomTriangles *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
#ifndef NDEBUG
if (GLCAT.is_spam()) {
GLCAT.spam() << "draw_triangles: " << *primitive << "\n";
@ -1684,6 +1686,7 @@ draw_triangles(const GeomTriangles *primitive) {
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_tristrips(const GeomTristrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
report_my_gl_errors();
@ -1766,6 +1769,7 @@ draw_tristrips(const GeomTristrips *primitive) {
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_trifans(const GeomTrifans *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
#ifndef NDEBUG
if (GLCAT.is_spam()) {
GLCAT.spam() << "draw_trifans: " << *primitive << "\n";
@ -1822,6 +1826,7 @@ draw_trifans(const GeomTrifans *primitive) {
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_lines(const GeomLines *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
#ifndef NDEBUG
if (GLCAT.is_spam()) {
GLCAT.spam() << "draw_lines: " << *primitive << "\n";
@ -1862,6 +1867,7 @@ draw_lines(const GeomLines *primitive) {
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_linestrips(const GeomLinestrips *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
#ifndef NDEBUG
if (GLCAT.is_spam()) {
GLCAT.spam() << "draw_linestrips: " << *primitive << "\n";
@ -1877,6 +1883,7 @@ draw_linestrips(const GeomLinestrips *primitive) {
////////////////////////////////////////////////////////////////////
void CLP(GraphicsStateGuardian)::
draw_points(const GeomPoints *primitive) {
PStatTimer timer(_draw_primitive_pcollector);
#ifndef NDEBUG
if (GLCAT.is_spam()) {
GLCAT.spam() << "draw_points: " << *primitive << "\n";

View File

@ -28,6 +28,8 @@
#include "boundingSphere.h"
UpdateSeq Geom::_next_modified;
PStatCollector Geom::_draw_primitive_setup_pcollector("Draw:Primitive:Setup");
TypeHandle Geom::_type_handle;
////////////////////////////////////////////////////////////////////
@ -1090,6 +1092,7 @@ check_will_be_valid(const GeomVertexData *vertex_data) const {
void Geom::
do_draw(GraphicsStateGuardianBase *gsg, const GeomMunger *munger,
const GeomVertexData *vertex_data, const Geom::CData *cdata) const {
PStatTimer timer(_draw_primitive_setup_pcollector);
if (gsg->begin_draw_primitives(this, munger, vertex_data)) {
Primitives::const_iterator pi;
for (pi = cdata->_primitives.begin();

View File

@ -38,6 +38,7 @@
#include "indirectLess.h"
#include "pset.h"
#include "boundingVolume.h"
#include "pStatCollector.h"
class GeomContext;
class PreparedGraphicsObjects;
@ -256,6 +257,7 @@ private:
Contexts _contexts;
static UpdateSeq _next_modified;
static PStatCollector _draw_primitive_setup_pcollector;
public:
static void register_with_read_factory();