diff --git a/direct/src/p3d/panda3d.pdef b/direct/src/p3d/panda3d.pdef index 8317d0442b..58695f9e8f 100644 --- a/direct/src/p3d/panda3d.pdef +++ b/direct/src/p3d/panda3d.pdef @@ -291,6 +291,39 @@ class egg(package): plugin-path $EGG_ROOT load-file-type egg pandaegg load-file-type p3ptloader + +# These are excerpted from the default Confauto.prc file. +egg-object-type-portal portal { 1 } +egg-object-type-polylight polylight { 1 } +egg-object-type-seq24 { 1 } fps { 24 } +egg-object-type-seq12 { 1 } fps { 12 } +egg-object-type-indexed indexed { 1 } +egg-object-type-seq10 { 1 } fps { 10 } +egg-object-type-seq8 { 1 } fps { 8 } +egg-object-type-seq6 { 1 } fps { 6 } +egg-object-type-seq4 { 1 } fps { 4 } +egg-object-type-seq2 { 1 } fps { 2 } + +egg-object-type-binary alpha { binary } +egg-object-type-dual alpha { dual } +egg-object-type-glass alpha { blend_no_occlude } + +egg-object-type-model { 1 } +egg-object-type-dcs { 1 } +egg-object-type-notouch { no_touch } + +egg-object-type-barrier { Polyset descend } +egg-object-type-sphere { Sphere descend } +egg-object-type-invsphere { InvSphere descend } +egg-object-type-tube { Tube descend } +egg-object-type-trigger { Polyset descend intangible } +egg-object-type-trigger-sphere { Sphere descend intangible } +egg-object-type-floor { Polyset descend level } +egg-object-type-dupefloor { Polyset keep descend level } +egg-object-type-bubble { Sphere keep descend } +egg-object-type-ghost collide-mask { 0 } +egg-object-type-glow blend { add } +egg-object-type-direct-widget collide-mask { 0x80000000 } { Polyset descend } """) class ode(package): diff --git a/panda/src/pipeline/pipeline.cxx b/panda/src/pipeline/pipeline.cxx index b62d45519f..bcd555f003 100644 --- a/panda/src/pipeline/pipeline.cxx +++ b/panda/src/pipeline/pipeline.cxx @@ -24,22 +24,23 @@ Pipeline *Pipeline::_render_pipeline = (Pipeline *)NULL; */ Pipeline:: Pipeline(const string &name, int num_stages) : - Namable(name) + Namable(name), #ifdef THREADED_PIPELINE - , _lock("Pipeline") + _num_stages(num_stages), + _lock("Pipeline") +#else + _num_stages(1) #endif { #ifdef THREADED_PIPELINE - -/* - * We maintain all of the cyclers in the world on one of two linked lists. - * Cyclers that are "clean", which is to say, they have the same value across - * all pipeline stages, are stored on the _clean list. Cyclers that are - * "dirty", which have different values across some pipeline stages, are - * stored instead on the _dirty list. Cyclers can move themselves from clean - * to dirty by calling add_dirty_cycler(), and cyclers get moved from dirty to - * clean during cycle(). - */ + // We maintain all of the cyclers in the world on one of two linked + // lists. Cyclers that are "clean", which is to say, they have the + // same value across all pipeline stages, are stored on the _clean + // list. Cyclers that are "dirty", which have different values + // across some pipeline stages, are stored instead on the _dirty + // list. Cyclers can move themselves from clean to dirty by calling + // add_dirty_cycler(), and cyclers get moved from dirty to clean + // during cycle(). // To visit each cycler once requires traversing both lists. _clean.make_head(); @@ -53,9 +54,15 @@ Pipeline(const string &name, int num_stages) : // This flag is true only during the call to cycle(). _cycling = false; +#else + if (num_stages != 1) { + pipeline_cat.warning() + << "Requested " << num_stages + << " pipeline stages but multithreaded render pipelines not enabled in build.\n"; + } #endif // THREADED_PIPELINE - set_num_stages(num_stages); + nassertv(num_stages >= 1); } /**