LoaderOptions now required on parameter list

This commit is contained in:
David Rose 2009-04-02 21:47:52 +00:00
parent 6924727b8b
commit 48017fe9b1
2 changed files with 16 additions and 11 deletions

View File

@ -48,7 +48,7 @@ MovieTexture::
MovieTexture(PT(MovieVideo) video) : MovieTexture(PT(MovieVideo) video) :
Texture(video->get_name()) Texture(video->get_name())
{ {
do_load_one(video->open(), NULL, 0); do_load_one(video->open(), NULL, 0, LoaderOptions());
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -154,7 +154,7 @@ VideoPage() :
// Assumes the lock is already held. // Assumes the lock is already held.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void MovieTexture:: void MovieTexture::
do_recalculate_image_properties(CDWriter &cdata) { do_recalculate_image_properties(CDWriter &cdata, const LoaderOptions &options) {
int x_max = 1; int x_max = 1;
int y_max = 1; int y_max = 1;
bool alpha = false; bool alpha = false;
@ -196,7 +196,7 @@ do_recalculate_image_properties(CDWriter &cdata) {
do_reconsider_image_properties(x_max, y_max, alpha?4:3, do_reconsider_image_properties(x_max, y_max, alpha?4:3,
T_unsigned_byte, cdata->_pages.size(), T_unsigned_byte, cdata->_pages.size(),
LoaderOptions()); options);
do_set_pad_size(x_max - x_size, y_max - y_size, 0); do_set_pad_size(x_max - x_size, y_max - y_size, 0);
} }
@ -210,6 +210,7 @@ do_recalculate_image_properties(CDWriter &cdata) {
bool MovieTexture:: bool MovieTexture::
do_read_one(const Filename &fullpath, const Filename &alpha_fullpath, do_read_one(const Filename &fullpath, const Filename &alpha_fullpath,
int z, int n, int primary_file_num_channels, int alpha_file_channel, int z, int n, int primary_file_num_channels, int alpha_file_channel,
const LoaderOptions &options,
bool header_only, BamCacheRecord *record) { bool header_only, BamCacheRecord *record) {
nassertr(n == 0, false); nassertr(n == 0, false);
@ -249,7 +250,7 @@ do_read_one(const Filename &fullpath, const Filename &alpha_fullpath,
_primary_file_num_channels = primary_file_num_channels; _primary_file_num_channels = primary_file_num_channels;
_alpha_file_channel = alpha_file_channel; _alpha_file_channel = alpha_file_channel;
if (!do_load_one(color, alpha, z)) { if (!do_load_one(color, alpha, z, options)) {
return false; return false;
} }
@ -265,14 +266,15 @@ do_read_one(const Filename &fullpath, const Filename &alpha_fullpath,
// Description: Loads movie objects into the texture. // Description: Loads movie objects into the texture.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
bool MovieTexture:: bool MovieTexture::
do_load_one(PT(MovieVideoCursor) color, PT(MovieVideoCursor) alpha, int z) { do_load_one(PT(MovieVideoCursor) color, PT(MovieVideoCursor) alpha, int z,
const LoaderOptions &options) {
{ {
CDWriter cdata(_cycler); CDWriter cdata(_cycler);
cdata->_pages.resize(z+1); cdata->_pages.resize(z+1);
cdata->_pages[z]._color = color; cdata->_pages[z]._color = color;
cdata->_pages[z]._alpha = alpha; cdata->_pages[z]._alpha = alpha;
do_recalculate_image_properties(cdata); do_recalculate_image_properties(cdata, options);
} }
return true; return true;
@ -285,7 +287,8 @@ do_load_one(PT(MovieVideoCursor) color, PT(MovieVideoCursor) alpha, int z) {
// an error. // an error.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
bool MovieTexture:: bool MovieTexture::
do_load_one(const PNMImage &pnmimage, const string &name, int z, int n) { do_load_one(const PNMImage &pnmimage, const string &name, int z, int n,
const LoaderOptions &options) {
grutil_cat.error() << "You cannot load a static image into a MovieTexture\n"; grutil_cat.error() << "You cannot load a static image into a MovieTexture\n";
return false; return false;
} }
@ -450,7 +453,7 @@ do_assign(const MovieTexture &copy) {
cdata->_pages[i]._alpha = alpha[i]->get_source()->open(); cdata->_pages[i]._alpha = alpha[i]->get_source()->open();
} }
} }
do_recalculate_image_properties(cdata); do_recalculate_image_properties(cdata, LoaderOptions());
} }
} }

View File

@ -69,10 +69,12 @@ protected:
virtual bool get_keep_ram_image() const; virtual bool get_keep_ram_image() const;
virtual bool do_read_one(const Filename &fullpath, const Filename &alpha_fullpath, virtual bool do_read_one(const Filename &fullpath, const Filename &alpha_fullpath,
int z, int n, int primary_file_num_channels, int alpha_file_channel, int z, int n, int primary_file_num_channels, int alpha_file_channel,
const LoaderOptions &options,
bool header_only, BamCacheRecord *record); bool header_only, BamCacheRecord *record);
virtual bool do_load_one(const PNMImage &pnmimage, const string &name, virtual bool do_load_one(const PNMImage &pnmimage, const string &name,
int z, int n); int z, int n, const LoaderOptions &options);
bool do_load_one(PT(MovieVideoCursor) color, PT(MovieVideoCursor) alpha, int z); bool do_load_one(PT(MovieVideoCursor) color, PT(MovieVideoCursor) alpha,
int z, const LoaderOptions &options);
class VideoPage { class VideoPage {
public: public:
@ -109,7 +111,7 @@ protected:
typedef CycleDataReader<CData> CDReader; typedef CycleDataReader<CData> CDReader;
typedef CycleDataWriter<CData> CDWriter; typedef CycleDataWriter<CData> CDWriter;
void do_recalculate_image_properties(CDWriter &cdata); void do_recalculate_image_properties(CDWriter &cdata, const LoaderOptions &options);
public: public:
static void register_with_read_factory(); static void register_with_read_factory();