mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
new pgraph bam
This commit is contained in:
parent
65395b9721
commit
d6ed3f9092
@ -18,13 +18,14 @@
|
|||||||
|
|
||||||
#include "eggToBam.h"
|
#include "eggToBam.h"
|
||||||
|
|
||||||
#include <config_util.h>
|
#include "config_util.h"
|
||||||
#include <bamFile.h>
|
#include "bamFile.h"
|
||||||
#include <nodePath.h>
|
#include "nodePath.h"
|
||||||
#include <load_egg_file.h>
|
#include "load_egg_file.h"
|
||||||
#include <config_egg2sg.h>
|
#include "qpload_egg_file.h"
|
||||||
#include <config_gobj.h>
|
#include "config_egg2sg.h"
|
||||||
#include <config_chan.h>
|
#include "config_gobj.h"
|
||||||
|
#include "config_chan.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: EggToBam::Constructor
|
// Function: EggToBam::Constructor
|
||||||
@ -43,6 +44,13 @@ EggToBam() :
|
|||||||
// provide it as an option to the user.
|
// provide it as an option to the user.
|
||||||
remove_option("f");
|
remove_option("f");
|
||||||
|
|
||||||
|
add_option
|
||||||
|
("p", "", 0,
|
||||||
|
"Writes a pgraph-style bam file, with the new scene graph code, "
|
||||||
|
"suitable for loading in pview (but won't work in demo). This is "
|
||||||
|
"a temporary hack.",
|
||||||
|
&EggToBam::dispatch_none, &_pgraph_style);
|
||||||
|
|
||||||
add_option
|
add_option
|
||||||
("tp", "path", 0,
|
("tp", "path", 0,
|
||||||
"Add the indicated colon-delimited paths to the texture-path. This "
|
"Add the indicated colon-delimited paths to the texture-path. This "
|
||||||
@ -137,34 +145,69 @@ run() {
|
|||||||
_data.set_coordinate_system(CS_zup_right);
|
_data.set_coordinate_system(CS_zup_right);
|
||||||
}
|
}
|
||||||
|
|
||||||
PT_NamedNode root = load_egg_data(_data);
|
if (_pgraph_style) {
|
||||||
if (root == (NamedNode *)NULL) {
|
// New style scene graph.
|
||||||
nout << "Unable to build scene graph from egg file.\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_ls) {
|
PT(PandaNode) root = qpload_egg_data(_data);
|
||||||
// If we wanted to list the contents, we need a NodePath.
|
if (root == (PandaNode *)NULL) {
|
||||||
NodePath np(root);
|
nout << "Unable to build scene graph from egg file.\n";
|
||||||
np.ls();
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This should be guaranteed because we pass false to the
|
if (_ls) {
|
||||||
// constructor, above.
|
root->ls();
|
||||||
nassertv(has_output_filename());
|
}
|
||||||
|
|
||||||
|
// This should be guaranteed because we pass false to the
|
||||||
|
// constructor, above.
|
||||||
|
nassertv(has_output_filename());
|
||||||
|
|
||||||
|
Filename filename = get_output_filename();
|
||||||
|
filename.make_dir();
|
||||||
|
nout << "Writing " << filename << "\n";
|
||||||
|
BamFile bam_file;
|
||||||
|
if (!bam_file.open_write(filename)) {
|
||||||
|
nout << "Error in writing.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bam_file.write_object(root)) {
|
||||||
|
nout << "Error in writing.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
Filename filename = get_output_filename();
|
} else {
|
||||||
filename.make_dir();
|
// Old style scene graph.
|
||||||
nout << "Writing " << filename << "\n";
|
|
||||||
BamFile bam_file;
|
|
||||||
if (!bam_file.open_write(filename)) {
|
|
||||||
nout << "Error in writing.\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bam_file.write_object(root)) {
|
PT_NamedNode root = load_egg_data(_data);
|
||||||
nout << "Error in writing.\n";
|
if (root == (NamedNode *)NULL) {
|
||||||
exit(1);
|
nout << "Unable to build scene graph from egg file.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_ls) {
|
||||||
|
// If we wanted to list the contents, we need a NodePath.
|
||||||
|
NodePath np(root);
|
||||||
|
np.ls();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This should be guaranteed because we pass false to the
|
||||||
|
// constructor, above.
|
||||||
|
nassertv(has_output_filename());
|
||||||
|
|
||||||
|
Filename filename = get_output_filename();
|
||||||
|
filename.make_dir();
|
||||||
|
nout << "Writing " << filename << "\n";
|
||||||
|
BamFile bam_file;
|
||||||
|
if (!bam_file.open_write(filename)) {
|
||||||
|
nout << "Error in writing.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bam_file.write_object(root)) {
|
||||||
|
nout << "Error in writing.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,9 +19,9 @@
|
|||||||
#ifndef EGGTOBAM_H
|
#ifndef EGGTOBAM_H
|
||||||
#define EGGTOBAM_H
|
#define EGGTOBAM_H
|
||||||
|
|
||||||
#include <pandatoolbase.h>
|
#include "pandatoolbase.h"
|
||||||
|
|
||||||
#include <eggToSomething.h>
|
#include "eggToSomething.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Class : EggToBam
|
// Class : EggToBam
|
||||||
@ -33,6 +33,7 @@ public:
|
|||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
|
||||||
|
bool _pgraph_style;
|
||||||
bool _keep_paths;
|
bool _keep_paths;
|
||||||
bool _has_egg_flatten;
|
bool _has_egg_flatten;
|
||||||
int _egg_flatten;
|
int _egg_flatten;
|
||||||
|
@ -536,6 +536,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void EggFile::
|
void EggFile::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_string(get_name());
|
datagram.add_string(get_name());
|
||||||
|
|
||||||
// We don't write out _data; that needs to be reread each session.
|
// We don't write out _data; that needs to be reread each session.
|
||||||
@ -570,9 +571,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int EggFile::
|
int EggFile::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= _num_textures + 1, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
_textures.reserve(_num_textures);
|
_textures.reserve(_num_textures);
|
||||||
@ -619,6 +619,7 @@ make_EggFile(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void EggFile::
|
void EggFile::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
set_name(scan.get_string());
|
set_name(scan.get_string());
|
||||||
_current_directory = FilenameUnifier::get_bam_filename(scan.get_string());
|
_current_directory = FilenameUnifier::get_bam_filename(scan.get_string());
|
||||||
_source_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
_source_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
||||||
|
@ -100,7 +100,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -410,6 +410,7 @@ output_filename(ostream &out) const {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void ImageFile::
|
void ImageFile::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
_properties.write_datagram(writer, datagram);
|
_properties.write_datagram(writer, datagram);
|
||||||
datagram.add_string(FilenameUnifier::make_bam_filename(_filename));
|
datagram.add_string(FilenameUnifier::make_bam_filename(_filename));
|
||||||
datagram.add_string(FilenameUnifier::make_bam_filename(_alpha_filename));
|
datagram.add_string(FilenameUnifier::make_bam_filename(_alpha_filename));
|
||||||
@ -427,6 +428,7 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void ImageFile::
|
void ImageFile::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
_properties.fillin(scan, manager);
|
_properties.fillin(scan, manager);
|
||||||
_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
||||||
_alpha_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
_alpha_filename = FilenameUnifier::get_bam_filename(scan.get_string());
|
||||||
|
@ -600,6 +600,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PaletteGroup::
|
void PaletteGroup::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_string(get_name());
|
datagram.add_string(get_name());
|
||||||
datagram.add_string(_dirname);
|
datagram.add_string(_dirname);
|
||||||
_dependent.write_datagram(writer, datagram);
|
_dependent.write_datagram(writer, datagram);
|
||||||
@ -631,9 +632,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int PaletteGroup::
|
int PaletteGroup::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= _num_placements + _num_pages, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < _num_placements; i++) {
|
for (i = 0; i < _num_placements; i++) {
|
||||||
@ -711,6 +711,7 @@ make_PaletteGroup(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PaletteGroup::
|
void PaletteGroup::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
set_name(scan.get_string());
|
set_name(scan.get_string());
|
||||||
_dirname = scan.get_string();
|
_dirname = scan.get_string();
|
||||||
_dependent.fillin(scan, manager);
|
_dependent.fillin(scan, manager);
|
||||||
|
@ -108,7 +108,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
virtual void finalize();
|
virtual void finalize();
|
||||||
|
|
||||||
|
@ -279,6 +279,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PaletteGroups::
|
void PaletteGroups::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_uint32(_groups.size());
|
datagram.add_uint32(_groups.size());
|
||||||
|
|
||||||
Groups::const_iterator gi;
|
Groups::const_iterator gi;
|
||||||
@ -297,14 +298,14 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int PaletteGroups::
|
int PaletteGroups::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr(_num_groups == (int)p_list.size(), 0);
|
int pi = TypedWritable::complete_pointers(p_list, manager);
|
||||||
for (int i = 0; i < _num_groups; i++) {
|
for (int i = 0; i < _num_groups; i++) {
|
||||||
PaletteGroup *group;
|
PaletteGroup *group;
|
||||||
DCAST_INTO_R(group, p_list[i], i);
|
DCAST_INTO_R(group, p_list[pi++], i);
|
||||||
_groups.insert(group);
|
_groups.insert(group);
|
||||||
}
|
}
|
||||||
return 0;
|
return pi;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -335,6 +336,7 @@ make_PaletteGroups(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PaletteGroups::
|
void PaletteGroups::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
_num_groups = scan.get_int32();
|
_num_groups = scan.get_int32();
|
||||||
manager->read_pointers(scan, this, _num_groups);
|
manager->read_pointers(scan, this, _num_groups);
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -791,9 +791,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int PaletteImage::
|
int PaletteImage::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= _num_placements + 1, 0);
|
int index = ImageFile::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
_placements.reserve(_num_placements);
|
_placements.reserve(_num_placements);
|
||||||
|
@ -106,7 +106,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -270,6 +270,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PalettePage::
|
void PalettePage::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_string(get_name());
|
datagram.add_string(get_name());
|
||||||
|
|
||||||
writer->write_pointer(datagram, _group);
|
writer->write_pointer(datagram, _group);
|
||||||
@ -294,9 +295,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int PalettePage::
|
int PalettePage::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= 1 + _num_images, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
if (p_list[index] != (TypedWritable *)NULL) {
|
if (p_list[index] != (TypedWritable *)NULL) {
|
||||||
DCAST_INTO_R(_group, p_list[index], index);
|
DCAST_INTO_R(_group, p_list[index], index);
|
||||||
@ -343,6 +343,7 @@ make_PalettePage(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void PalettePage::
|
void PalettePage::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
set_name(scan.get_string());
|
set_name(scan.get_string());
|
||||||
|
|
||||||
manager->read_pointer(scan, this); // _group
|
manager->read_pointer(scan, this); // _group
|
||||||
|
@ -73,7 +73,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -862,6 +862,8 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void Palettizer::
|
void Palettizer::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
|
|
||||||
datagram.add_int32(_pi_version);
|
datagram.add_int32(_pi_version);
|
||||||
datagram.add_string(_map_dirname);
|
datagram.add_string(_map_dirname);
|
||||||
datagram.add_string(FilenameUnifier::make_bam_filename(_shadow_dirname));
|
datagram.add_string(FilenameUnifier::make_bam_filename(_shadow_dirname));
|
||||||
@ -916,9 +918,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int Palettizer::
|
int Palettizer::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= 4 + _num_egg_files + _num_groups + _num_textures, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
if (p_list[index] != (TypedWritable *)NULL) {
|
if (p_list[index] != (TypedWritable *)NULL) {
|
||||||
DCAST_INTO_R(_color_type, p_list[index], index);
|
DCAST_INTO_R(_color_type, p_list[index], index);
|
||||||
@ -993,6 +994,8 @@ make_Palettizer(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void Palettizer::
|
void Palettizer::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
|
|
||||||
_read_pi_version = scan.get_int32();
|
_read_pi_version = scan.get_int32();
|
||||||
_map_dirname = scan.get_string();
|
_map_dirname = scan.get_string();
|
||||||
_shadow_dirname = FilenameUnifier::get_bam_filename(scan.get_string());
|
_shadow_dirname = FilenameUnifier::get_bam_filename(scan.get_string());
|
||||||
|
@ -136,7 +136,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -201,11 +201,11 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int SourceTextureImage::
|
int SourceTextureImage::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr(p_list.size() >= 1, 0);
|
int pi = ImageFile::complete_pointers(p_list, manager);
|
||||||
|
|
||||||
DCAST_INTO_R(_texture, p_list[0], 0);
|
DCAST_INTO_R(_texture, p_list[pi++], pi);
|
||||||
return 1;
|
return pi;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -56,7 +56,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -1172,9 +1172,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int TextureImage::
|
int TextureImage::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= _num_placement * 2 + _num_sources + _num_dests, 0);
|
int index = ImageFile::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < _num_placement; i++) {
|
for (i = 0; i < _num_placement; i++) {
|
||||||
|
@ -136,7 +136,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -931,6 +931,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TexturePlacement::
|
void TexturePlacement::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
writer->write_pointer(datagram, _texture);
|
writer->write_pointer(datagram, _texture);
|
||||||
writer->write_pointer(datagram, _group);
|
writer->write_pointer(datagram, _group);
|
||||||
writer->write_pointer(datagram, _image);
|
writer->write_pointer(datagram, _image);
|
||||||
@ -962,13 +963,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int TexturePlacement::
|
int TexturePlacement::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= 3 + _num_references, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
if (Palettizer::_read_pi_version >= 2) {
|
|
||||||
nassertr((int)p_list.size() >= 4 + _num_references, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
if (p_list[index] != (TypedWritable *)NULL) {
|
if (p_list[index] != (TypedWritable *)NULL) {
|
||||||
DCAST_INTO_R(_texture, p_list[index], index);
|
DCAST_INTO_R(_texture, p_list[index], index);
|
||||||
@ -1031,6 +1027,8 @@ make_TexturePlacement(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TexturePlacement::
|
void TexturePlacement::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
|
|
||||||
manager->read_pointer(scan, this); // _texture
|
manager->read_pointer(scan, this); // _texture
|
||||||
manager->read_pointer(scan, this); // _group
|
manager->read_pointer(scan, this); // _group
|
||||||
manager->read_pointer(scan, this); // _image
|
manager->read_pointer(scan, this); // _image
|
||||||
|
@ -119,7 +119,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -101,6 +101,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TexturePosition::
|
void TexturePosition::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_int32(_margin);
|
datagram.add_int32(_margin);
|
||||||
datagram.add_int32(_x);
|
datagram.add_int32(_x);
|
||||||
datagram.add_int32(_y);
|
datagram.add_int32(_y);
|
||||||
@ -142,6 +143,7 @@ make_TexturePosition(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TexturePosition::
|
void TexturePosition::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
_margin = scan.get_int32();
|
_margin = scan.get_int32();
|
||||||
_x = scan.get_int32();
|
_x = scan.get_int32();
|
||||||
_y = scan.get_int32();
|
_y = scan.get_int32();
|
||||||
|
@ -605,6 +605,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TextureProperties::
|
void TextureProperties::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
datagram.add_bool(_got_num_channels);
|
datagram.add_bool(_got_num_channels);
|
||||||
datagram.add_int32(_num_channels);
|
datagram.add_int32(_num_channels);
|
||||||
datagram.add_int32((int)_format);
|
datagram.add_int32((int)_format);
|
||||||
@ -625,9 +626,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int TextureProperties::
|
int TextureProperties::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr(p_list.size() >= 2, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
if (p_list[index] != (TypedWritable *)NULL) {
|
if (p_list[index] != (TypedWritable *)NULL) {
|
||||||
DCAST_INTO_R(_color_type, p_list[index], index);
|
DCAST_INTO_R(_color_type, p_list[index], index);
|
||||||
@ -670,6 +670,7 @@ make_TextureProperties(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TextureProperties::
|
void TextureProperties::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
_got_num_channels = scan.get_bool();
|
_got_num_channels = scan.get_bool();
|
||||||
_num_channels = scan.get_int32();
|
_num_channels = scan.get_int32();
|
||||||
_format = (EggTexture::Format)scan.get_int32();
|
_format = (EggTexture::Format)scan.get_int32();
|
||||||
|
@ -77,7 +77,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -688,6 +688,7 @@ register_with_read_factory() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TextureReference::
|
void TextureReference::
|
||||||
write_datagram(BamWriter *writer, Datagram &datagram) {
|
write_datagram(BamWriter *writer, Datagram &datagram) {
|
||||||
|
TypedWritable::write_datagram(writer, datagram);
|
||||||
writer->write_pointer(datagram, _egg_file);
|
writer->write_pointer(datagram, _egg_file);
|
||||||
|
|
||||||
// We don't write _egg_tex or _egg_data; that's specific to the
|
// We don't write _egg_tex or _egg_data; that's specific to the
|
||||||
@ -720,9 +721,8 @@ write_datagram(BamWriter *writer, Datagram &datagram) {
|
|||||||
// number of pointers processed from the list.
|
// number of pointers processed from the list.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int TextureReference::
|
int TextureReference::
|
||||||
complete_pointers(vector_typedWritable &p_list, BamReader *manager) {
|
complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||||
nassertr((int)p_list.size() >= 3, 0);
|
int index = TypedWritable::complete_pointers(p_list, manager);
|
||||||
int index = 0;
|
|
||||||
|
|
||||||
if (p_list[index] != (TypedWritable *)NULL) {
|
if (p_list[index] != (TypedWritable *)NULL) {
|
||||||
DCAST_INTO_R(_egg_file, p_list[index], index);
|
DCAST_INTO_R(_egg_file, p_list[index], index);
|
||||||
@ -770,6 +770,7 @@ make_TextureReference(const FactoryParams ¶ms) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void TextureReference::
|
void TextureReference::
|
||||||
fillin(DatagramIterator &scan, BamReader *manager) {
|
fillin(DatagramIterator &scan, BamReader *manager) {
|
||||||
|
TypedWritable::fillin(scan, manager);
|
||||||
manager->read_pointer(scan, this); // _egg_file
|
manager->read_pointer(scan, this); // _egg_file
|
||||||
|
|
||||||
_tex_mat.read_datagram(scan);
|
_tex_mat.read_datagram(scan);
|
||||||
|
@ -105,7 +105,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
static void register_with_read_factory();
|
static void register_with_read_factory();
|
||||||
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
virtual void write_datagram(BamWriter *writer, Datagram &datagram);
|
||||||
virtual int complete_pointers(vector_typedWritable &p_list,
|
virtual int complete_pointers(TypedWritable **p_list,
|
||||||
BamReader *manager);
|
BamReader *manager);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user