mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
callbacks working
This commit is contained in:
parent
aee00fc3de
commit
7b8edf65b4
@ -396,7 +396,8 @@ extract_archive() {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void P3DPackage::
|
||||
report_done(bool success) {
|
||||
cerr << "report_done(" << success << ")\n";
|
||||
cerr << "report_done(" << success << "), "
|
||||
<< _callbacks.size() << " callbacks\n";
|
||||
if (success) {
|
||||
_ready = true;
|
||||
_failed = false;
|
||||
@ -503,6 +504,15 @@ stream_hex(ostream &out, const unsigned char *source, size_t size) {
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: P3DPackage::Callback::package_ready
|
||||
// Access: Public
|
||||
// Description:
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void P3DPackage::Callback::
|
||||
package_ready(P3DPackage *package, bool success) {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: P3DPackage::Download::Constructor
|
||||
// Access: Public
|
||||
|
@ -141,7 +141,7 @@ start_instance(P3DInstance *inst) {
|
||||
start_p3dpython();
|
||||
} else {
|
||||
// Otherwise, set a callback, so we'll know when it is ready.
|
||||
if (_panda3d_callback != NULL) {
|
||||
if (_panda3d_callback == NULL) {
|
||||
_panda3d_callback = new PackageCallback(this);
|
||||
_panda3d->set_callback(_panda3d_callback);
|
||||
}
|
||||
@ -635,7 +635,8 @@ posix_create_process(const string &program, const string &start_dir,
|
||||
// Description:
|
||||
////////////////////////////////////////////////////////////////////
|
||||
P3DSession::PackageCallback::
|
||||
PackageCallback(P3DSession *session) {
|
||||
PackageCallback(P3DSession *session) : _session(session)
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@ -645,5 +646,15 @@ PackageCallback(P3DSession *session) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void P3DSession::PackageCallback::
|
||||
package_ready(P3DPackage *package, bool success) {
|
||||
if (this == _session->_panda3d_callback) {
|
||||
_session->_panda3d_callback = NULL;
|
||||
if (package == _session->_panda3d) {
|
||||
_session->start_p3dpython();
|
||||
} else {
|
||||
cerr << "Unexpected panda3d package: " << package << "\n";
|
||||
}
|
||||
} else {
|
||||
cerr << "Unexpected callback for P3DSession\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user