From c0b2468b048b01dd9ff3c1d1ba4b3cca74ade823 Mon Sep 17 00:00:00 2001 From: Nikola Milentijevic Date: Mon, 16 Mar 2015 22:24:29 +0100 Subject: [PATCH 01/10] Consolidate distance factor for 3D audio The semantics of distance factor is now same for both OpenAL and Fmod. The value is given in units per meter, and the default is 1.0. This means that Panda units are understood to be meters by default. For example, for feet one would have to set this value to 3.28. --- panda/src/audio/audioManager.h | 8 ++++---- panda/src/audiotraits/fmodAudioManager.cxx | 11 +++-------- panda/src/audiotraits/fmodAudioManager.h | 7 ++++--- panda/src/audiotraits/fmodAudioSound.cxx | 3 +++ panda/src/audiotraits/openalAudioManager.cxx | 9 ++++----- panda/src/audiotraits/openalAudioManager.h | 10 ++++++---- panda/src/audiotraits/openalAudioSound.cxx | 6 +++--- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/panda/src/audio/audioManager.h b/panda/src/audio/audioManager.h index 4c0915a67f..7fc269f688 100644 --- a/panda/src/audio/audioManager.h +++ b/panda/src/audio/audioManager.h @@ -166,10 +166,10 @@ PUBLISHED: PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz, PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz); - // Control the "relative scale that sets the distance factor" units for 3D spacialized audio. Default is 1.0 - // Fmod uses meters internally, so give a float in Units-per meter - // Don't know what Miles uses. - // Default is 1.0 which is adjust in panda to be feet. + // Control the "relative scale that sets the distance factor" units for 3D spacialized audio. + // This is a float in units-per-meter. Default value is 1.0, which means that Panda units + // are understood as meters; for e.g. feet, set 3.28. + // This factor is applied only to Fmod and OpenAL at the moment. virtual void audio_3d_set_distance_factor(PN_stdfloat factor); virtual PN_stdfloat audio_3d_get_distance_factor() const; diff --git a/panda/src/audiotraits/fmodAudioManager.cxx b/panda/src/audiotraits/fmodAudioManager.cxx index 3a6a4a82e4..1ee2ffc4d4 100644 --- a/panda/src/audiotraits/fmodAudioManager.cxx +++ b/panda/src/audiotraits/fmodAudioManager.cxx @@ -45,15 +45,8 @@ pset FmodAudioManager::_all_managers; bool FmodAudioManager::_system_is_valid = false; -// This sets the distance factor for 3D audio to use feet. -// FMOD uses meters by default. -// Since Panda use feet we need to compensate for that with a factor of 3.28 -// -// This can be overwritten. You just need to call -// audio_3d_set_distance_factor(PN_stdfloat factor) and set your new factor. - PN_stdfloat FmodAudioManager::_doppler_factor = 1; -PN_stdfloat FmodAudioManager::_distance_factor = 3.28; +PN_stdfloat FmodAudioManager::_distance_factor = 1; PN_stdfloat FmodAudioManager::_drop_off_factor = 1; @@ -110,6 +103,8 @@ FmodAudioManager() { _up.y = 0; _up.z = 0; + _active = true; + _saved_outputtype = FMOD_OUTPUTTYPE_AUTODETECT; if (_system == (FMOD::System *)NULL) { diff --git a/panda/src/audiotraits/fmodAudioManager.h b/panda/src/audiotraits/fmodAudioManager.h index d43933dc4c..cde625c443 100644 --- a/panda/src/audiotraits/fmodAudioManager.h +++ b/panda/src/audiotraits/fmodAudioManager.h @@ -132,9 +132,10 @@ class EXPCL_FMOD_AUDIO FmodAudioManager : public AudioManager { PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz, PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz); - // Control the "relative distance factor" for 3D spacialized audio. Default is 1.0 - // Fmod uses meters internally, so give a float in Units-per meter - // Don't know what Miles uses. + // Control the "relative scale that sets the distance factor" units for 3D spacialized audio. + // This is a float in units-per-meter. Default value is 1.0, which means that Panda units + // are understood as meters; for e.g. feet, set 3.28. + // This factor is applied only to Fmod and OpenAL at the moment. virtual void audio_3d_set_distance_factor(PN_stdfloat factor); virtual PN_stdfloat audio_3d_get_distance_factor() const; diff --git a/panda/src/audiotraits/fmodAudioSound.cxx b/panda/src/audiotraits/fmodAudioSound.cxx index 4b9446f38d..4a5c788d9c 100644 --- a/panda/src/audiotraits/fmodAudioSound.cxx +++ b/panda/src/audiotraits/fmodAudioSound.cxx @@ -59,6 +59,9 @@ FmodAudioSound(AudioManager *manager, Filename file_name, bool positional) { _velocity.y = 0; _velocity.z = 0; + _min_dist = 1.0; + _max_dist = 1000000000.0; + //Play Rate Variable _playrate = 1; diff --git a/panda/src/audiotraits/openalAudioManager.cxx b/panda/src/audiotraits/openalAudioManager.cxx index e87ebee5f0..d3be9016f9 100644 --- a/panda/src/audiotraits/openalAudioManager.cxx +++ b/panda/src/audiotraits/openalAudioManager.cxx @@ -97,7 +97,7 @@ OpenALAudioManager() { _is_valid = true; //Init 3D attributes - _distance_factor = 3.28; + _distance_factor = 1; _drop_off_factor = 1; _position[0] = 0; @@ -664,11 +664,10 @@ audio_3d_get_listener_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat * //////////////////////////////////////////////////////////////////// // Function: OpenALAudioManager::audio_3d_set_distance_factor // Access: Public -// Description: Set units per foot +// Description: Set value in units per meter // WARNING: OpenAL has no distance factor but we use this as a scale // on the min/max distances of sounds to preserve FMOD compatibility. // Also, adjusts the speed of sound to compensate for unit difference. -// OpenAL's default speed of sound is 343.3 m/s == 1126.3 ft/s //////////////////////////////////////////////////////////////////// void OpenALAudioManager:: audio_3d_set_distance_factor(PN_stdfloat factor) { @@ -680,7 +679,7 @@ audio_3d_set_distance_factor(PN_stdfloat factor) { alGetError(); // clear errors if (_distance_factor>0) { - alSpeedOfSound(1126.3*_distance_factor); + alSpeedOfSound(343.3*_distance_factor); al_audio_errcheck("alSpeedOfSound()"); // resets the doppler factor to the correct setting in case it was set to 0.0 by a distance_factor<=0.0 alDopplerFactor(_doppler_factor); @@ -701,7 +700,7 @@ audio_3d_set_distance_factor(PN_stdfloat factor) { //////////////////////////////////////////////////////////////////// // Function: OpenALAudioManager::audio_3d_get_distance_factor // Access: Public -// Description: Sets units per foot +// Description: Get value in units per meter //////////////////////////////////////////////////////////////////// PN_stdfloat OpenALAudioManager:: audio_3d_get_distance_factor() const { diff --git a/panda/src/audiotraits/openalAudioManager.h b/panda/src/audiotraits/openalAudioManager.h index 0dcc0e07e2..787069fe5e 100644 --- a/panda/src/audiotraits/openalAudioManager.h +++ b/panda/src/audiotraits/openalAudioManager.h @@ -88,10 +88,12 @@ class EXPCL_OPENAL_AUDIO OpenALAudioManager : public AudioManager { PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz, PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz); - // Control the "relative distance factor" for 3D spacialized audio in units-per-foot. Default is 1.0 - // OpenAL has no distance factor but we use this as a scale - // on the min/max distances of sounds to preserve FMOD compatibility. - // Also, adjusts the speed of sound to compensate for unit difference. + // Control the "relative scale that sets the distance factor" units for 3D spacialized audio. + // This is a float in units-per-meter. Default value is 1.0, which means that Panda units + // are understood as meters; for e.g. feet, set 3.28. + // This factor is applied only to Fmod and OpenAL at the moment. + // OpenAL in fact has no distance factor like Fmod, but works with the speed of sound instead, + // so we use this factor to scale the speed of sound. virtual void audio_3d_set_distance_factor(PN_stdfloat factor); virtual PN_stdfloat audio_3d_get_distance_factor() const; diff --git a/panda/src/audiotraits/openalAudioSound.cxx b/panda/src/audiotraits/openalAudioSound.cxx index eb34d24973..a5cecd7601 100644 --- a/panda/src/audiotraits/openalAudioSound.cxx +++ b/panda/src/audiotraits/openalAudioSound.cxx @@ -53,7 +53,7 @@ OpenALAudioSound(OpenALAudioManager* manager, _balance(0), _play_rate(1.0), _positional(positional), - _min_dist(3.28f), + _min_dist(1.0f), _max_dist(1000000000.0f), _drop_off_factor(1.0f), _length(0.0), @@ -745,7 +745,7 @@ set_3d_min_distance(PN_stdfloat dist) { _manager->make_current(); alGetError(); // clear errors - alSourcef(_source,AL_REFERENCE_DISTANCE,_min_dist*_manager->audio_3d_get_distance_factor()); + alSourcef(_source,AL_REFERENCE_DISTANCE,_min_dist); al_audio_errcheck("alSourcefv(_source,AL_REFERENCE_DISTANCE)"); } } @@ -774,7 +774,7 @@ set_3d_max_distance(PN_stdfloat dist) { _manager->make_current(); alGetError(); // clear errors - alSourcef(_source,AL_MAX_DISTANCE,_max_dist*_manager->audio_3d_get_distance_factor()); + alSourcef(_source,AL_MAX_DISTANCE,_max_dist); al_audio_errcheck("alSourcefv(_source,AL_MAX_DISTANCE)"); } } From e9fa116d170c55b0a00537e8d438acbd3fd0b6e9 Mon Sep 17 00:00:00 2001 From: Ed Swartz Date: Mon, 11 May 2015 12:10:18 -0500 Subject: [PATCH 02/10] Dynamically adjust camera clip range in pview --- panda/src/testbed/pview.cxx | 111 ++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/panda/src/testbed/pview.cxx b/panda/src/testbed/pview.cxx index e92df5d220..acbac1bbcb 100644 --- a/panda/src/testbed/pview.cxx +++ b/panda/src/testbed/pview.cxx @@ -27,6 +27,9 @@ #include "panda_getopt.h" #include "preprocess_argv.h" #include "graphicsPipeSelection.h" +#include "asyncTaskManager.h" +#include "asyncTask.h" +#include "boundingSphere.h" // By including checkPandaVersion.h, we guarantee that runtime // attempts to run pview will fail if it inadvertently links with the @@ -234,6 +237,111 @@ report_version() { nout << "\n"; } +// Task that dynamically adjusts the camera len's near/far clipping +// planes to ensure the user can zoom in as close as needed to a model. +// +// Code adapted from WindowFramework::center_trackball(), but +// without moving the camera. When the camera is inside the model, +// the near clip is set to near-zero. +// +class AdjustCameraClipPlanesTask : public AsyncTask { +public: + AdjustCameraClipPlanesTask(const string &name, Camera *camera) : + AsyncTask(name), _camera(camera), _lens(camera->get_lens(0)), _sphere(NULL) + { + NodePath np = framework.get_models(); + PT(BoundingVolume) volume = np.get_bounds(); + + // We expect at least a geometric bounding volume around the world. + nassertv(volume != (BoundingVolume *)NULL); + nassertv(volume->is_of_type(GeometricBoundingVolume::get_class_type())); + CPT(GeometricBoundingVolume) gbv = DCAST(GeometricBoundingVolume, volume); + + if (np.has_parent()) { + CPT(TransformState) net_transform = np.get_parent().get_net_transform(); + PT(GeometricBoundingVolume) new_gbv = DCAST(GeometricBoundingVolume, gbv->make_copy()); + new_gbv->xform(net_transform->get_mat()); + gbv = new_gbv; + } + + // Determine the bounding sphere around the object. + if (gbv->is_infinite()) { + framework_cat.warning() + << "Infinite bounding volume for " << np << "\n"; + return; + } + + if (gbv->is_empty()) { + framework_cat.warning() + << "Empty bounding volume for " << np << "\n"; + return; + } + + // The BoundingVolume might be a sphere (it's likely), but since it + // might not, we'll take no chances and make our own sphere. + _sphere = new BoundingSphere(gbv->get_approx_center(), 0.0f); + if (!_sphere->extend_by(gbv)) { + framework_cat.warning() + << "Cannot determine bounding volume of " << np << "\n"; + return; + } + } + ALLOC_DELETED_CHAIN(AdjustCameraClipPlanesTask); + + virtual DoneStatus do_task() { + if (!_sphere) { + return DS_done; + } + + if (framework.get_num_windows() == 0) { + return DS_cont; + } + + WindowFramework *wf = framework.get_window(0); + if (!wf) { + return DS_cont; + } + + // Get current camera position. + NodePath cameraNP = wf->get_camera_group(); + LPoint3 pos = cameraNP.get_pos(); + + // See how far or close the camera is + LPoint3 center = _sphere->get_center(); + PN_stdfloat radius = _sphere->get_radius(); + + PN_stdfloat min_distance = 0.001 * radius; + + // Choose a suitable distance to view the whole volume in our frame. + // This is based on the camera lens in use. + PN_stdfloat distance; + CPT(GeometricBoundingVolume) gbv = DCAST(GeometricBoundingVolume, _sphere); + if (gbv->contains(pos)) { + // See as up-close to the model as possible + distance = min_distance; + } else { + // View from a distance + distance = (center - pos).length(); + } + + // Ensure the far plane is far enough back to see the entire object. + PN_stdfloat ideal_far_plane = distance + radius * 1.5; + _lens->set_far(max(_lens->get_default_far(), ideal_far_plane)); + + // And that the near plane is far enough forward, but if inside + // the sphere, keep above 0. + PN_stdfloat ideal_near_plane = max(min_distance * 10, distance - radius); + _lens->set_near(min(_lens->get_default_near(), ideal_near_plane)); + + return DS_cont; + } + + Camera *_camera; + Lens *_lens; + PT(BoundingSphere) _sphere; +}; + + int main(int argc, char **argv) { // A call to pystub() to force libpystub.so to be linked in. @@ -389,6 +497,9 @@ main(int argc, char **argv) { window->set_anim_controls(true); } + PT(AdjustCameraClipPlanesTask) task = new AdjustCameraClipPlanesTask("Adjust Camera Bounds", window->get_camera(0)); + framework.get_task_mgr().add(task); + framework.enable_default_keys(); framework.define_key("shift-w", "open a new window", event_W, NULL); framework.define_key("shift-f", "flatten hierarchy", event_F, NULL); From 0493b07f45a13ebab825cf8490ef3ee1d88a52c2 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 7 Oct 2017 12:24:28 +0200 Subject: [PATCH 03/10] ppython: fix compile error on clang 4 --- direct/src/directbase/ppython.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/direct/src/directbase/ppython.cxx b/direct/src/directbase/ppython.cxx index 65f1272c8a..63ab21f3e9 100644 --- a/direct/src/directbase/ppython.cxx +++ b/direct/src/directbase/ppython.cxx @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) { int sts = 0; PyObject* m = PyImport_ImportModule(IMPORT_MODULE_STR); - if (m <= 0) { + if (m == 0) { PyErr_Print(); sts = 1; } From 0c0f9adab97afdc09728f8e79646c8c3943b36a8 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 31 Oct 2017 15:45:55 +0100 Subject: [PATCH 04/10] Support coroutines and async/await in the task manager and loader --- direct/src/showbase/Loader.py | 153 +++++--- direct/src/task/Task.py | 10 + dtool/src/interrogate/functionRemap.cxx | 2 +- .../interfaceMakerPythonNative.cxx | 40 +- dtool/src/interrogatedb/py_panda.cxx | 73 ++++ dtool/src/interrogatedb/py_panda.h | 6 + dtool/src/pystub/pystub.cxx | 2 + makepanda/makepanda.py | 2 + panda/src/audio/audioLoadRequest.I | 17 +- panda/src/audio/audioLoadRequest.h | 2 + panda/src/event/asyncTask.I | 1 + panda/src/event/asyncTask.h | 10 + panda/src/event/asyncTaskChain.cxx | 24 +- panda/src/event/asyncTaskChain.h | 1 + panda/src/event/asyncTaskManager.h | 1 + panda/src/event/asyncTask_ext.cxx | 75 ++++ panda/src/event/asyncTask_ext.h | 35 ++ panda/src/event/pythonTask.I | 49 +++ panda/src/event/pythonTask.cxx | 350 +++++++++++++++--- panda/src/event/pythonTask.h | 30 +- panda/src/pgraph/modelFlattenRequest.I | 18 +- panda/src/pgraph/modelFlattenRequest.h | 4 +- panda/src/pgraph/modelLoadRequest.I | 10 + panda/src/pgraph/modelLoadRequest.h | 8 +- panda/src/pgraph/modelSaveRequest.I | 10 + panda/src/pgraph/modelSaveRequest.h | 7 +- 26 files changed, 821 insertions(+), 119 deletions(-) create mode 100755 panda/src/event/asyncTask_ext.cxx create mode 100755 panda/src/event/asyncTask_ext.h diff --git a/direct/src/showbase/Loader.py b/direct/src/showbase/Loader.py index 9edde2a9b7..64fa593940 100644 --- a/direct/src/showbase/Loader.py +++ b/direct/src/showbase/Loader.py @@ -21,31 +21,103 @@ class Loader(DirectObject): loaderIndex = 0 class Callback: - def __init__(self, numObjects, gotList, callback, extraArgs): + """Returned by loadModel when used asynchronously. This class is + modelled after Future, and can be awaited.""" + + # This indicates that this class behaves like a Future. + _asyncio_future_blocking = False + + def __init__(self, loader, numObjects, gotList, callback, extraArgs): + self._loader = loader self.objects = [None] * numObjects self.gotList = gotList self.callback = callback self.extraArgs = extraArgs - self.numRemaining = numObjects - self.cancelled = False self.requests = set() + self.requestList = [] def gotObject(self, index, object): self.objects[index] = object - self.numRemaining -= 1 - if self.numRemaining == 0: - if self.gotList: - self.callback(self.objects, *self.extraArgs) - else: - self.callback(*(self.objects + self.extraArgs)) + if not self.requests: + self._loader = None + if self.callback: + if self.gotList: + self.callback(self.objects, *self.extraArgs) + else: + self.callback(*(self.objects + self.extraArgs)) + + def cancel(self): + "Cancels the request. Callback won't be called." + if self._loader: + self._loader = None + for request in self.requests: + self._loader.loader.remove(request) + del self._loader._requests[request] + self.requests = None + self.requestList = None + + def cancelled(self): + "Returns true if the request was cancelled." + return self.requestList is None + + def done(self): + "Returns true if all the requests were finished or cancelled." + return not self.requests + + def result(self): + assert not self.requests, "Result is not ready." + if self.gotList: + return self.objects + else: + return self.objects[0] + + def exception(self): + assert self.done() and not self.cancelled() + return None + + def __await__(self): + """ Returns a generator that raises StopIteration when the loading + is complete. This allows this class to be used with 'await'.""" + if self.requests: + self._asyncio_future_blocking = True + yield self + + # This should be a simple return, but older versions of Python + # don't allow return statements with arguments. + result = self.result() + exc = StopIteration(result) + exc.value = result + raise exc + + def __aiter__(self): + """ This allows using `async for` to iterate asynchronously over + the results of this class. It does guarantee to return the + results in order, though, even though they may not be loaded in + that order. """ + requestList = self.requestList + assert requestList is not None, "Request was cancelled." + + class AsyncIter: + index = 0 + def __anext__(self): + if self.index < len(requestList): + i = self.index + self.index = i + 1 + return requestList[i] + else: + raise StopAsyncIteration + + iter = AsyncIter() + iter.objects = self.objects + return iter # special methods def __init__(self, base): self.base = base self.loader = PandaLoader.getGlobalPtr() - self.__requests = {} + self._requests = {} self.hook = "async_loader_%s" % (Loader.loaderIndex) Loader.loaderIndex += 1 @@ -180,7 +252,7 @@ class Loader(DirectObject): # requested models have been loaded, we'll invoke the # callback (passing it the models on the parameter list). - cb = Loader.Callback(len(modelList), gotList, callback, extraArgs) + cb = Loader.Callback(self, len(modelList), gotList, callback, extraArgs) i = 0 for modelPath in modelList: request = self.loader.makeAsyncRequest(Filename(modelPath), loaderOptions) @@ -189,26 +261,26 @@ class Loader(DirectObject): request.setDoneEvent(self.hook) self.loader.loadAsync(request) cb.requests.add(request) - self.__requests[request] = (cb, i) + cb.requestList.append(request) + self._requests[request] = (cb, i) i += 1 return cb def cancelRequest(self, cb): """Cancels an aysynchronous loading or flatten request issued earlier. The callback associated with the request will not be - called after cancelRequest() has been performed. """ + called after cancelRequest() has been performed. - if not cb.cancelled: - cb.cancelled = True - for request in cb.requests: - self.loader.remove(request) - del self.__requests[request] - cb.requests = None + This is now deprecated: call cb.cancel() instead. """ + + cb.cancel() def isRequestPending(self, cb): """ Returns true if an asynchronous loading or flatten request issued earlier is still pending, or false if it has completed or - been cancelled. """ + been cancelled. + + This is now deprecated: call cb.done() instead. """ return bool(cb.requests) @@ -344,7 +416,7 @@ class Loader(DirectObject): # requested models have been saved, we'll invoke the # callback (passing it the models on the parameter list). - cb = Loader.Callback(len(modelList), gotList, callback, extraArgs) + cb = Loader.Callback(self, len(modelList), gotList, callback, extraArgs) i = 0 for modelPath, node in modelList: request = self.loader.makeAsyncSaveRequest(Filename(modelPath), loaderOptions, node) @@ -353,7 +425,8 @@ class Loader(DirectObject): request.setDoneEvent(self.hook) self.loader.saveAsync(request) cb.requests.add(request) - self.__requests[request] = (cb, i) + cb.requestList.append(request) + self._requests[request] = (cb, i) i += 1 return cb @@ -880,13 +953,14 @@ class Loader(DirectObject): # requested sounds have been loaded, we'll invoke the # callback (passing it the sounds on the parameter list). - cb = Loader.Callback(len(soundList), gotList, callback, extraArgs) + cb = Loader.Callback(self, len(soundList), gotList, callback, extraArgs) for i, soundPath in enumerate(soundList): request = AudioLoadRequest(manager, soundPath, positional) request.setDoneEvent(self.hook) self.loader.loadAsync(request) cb.requests.add(request) - self.__requests[request] = (cb, i) + cb.requestList.append(request) + self._requests[request] = (cb, i) return cb def unloadSfx(self, sfx): @@ -944,14 +1018,15 @@ class Loader(DirectObject): callback = self.__asyncFlattenDone gotList = True - cb = Loader.Callback(len(modelList), gotList, callback, extraArgs) + cb = Loader.Callback(self, len(modelList), gotList, callback, extraArgs) i = 0 for model in modelList: request = ModelFlattenRequest(model.node()) request.setDoneEvent(self.hook) self.loader.loadAsync(request) cb.requests.add(request) - self.__requests[request] = (cb, i) + cb.requestList.append(request) + self._requests[request] = (cb, i) i += 1 return cb @@ -980,36 +1055,22 @@ class Loader(DirectObject): of loaded objects, and call the appropriate callback when it's time.""" - if request not in self.__requests: + if request not in self._requests: return - cb, i = self.__requests[request] - if cb.cancelled: + cb, i = self._requests[request] + if cb.cancelled(): # Shouldn't be here. - del self.__requests[request] + del self._requests[request] return cb.requests.discard(request) if not cb.requests: - del self.__requests[request] + del self._requests[request] - object = None - if hasattr(request, "getModel"): - node = request.getModel() - if node is not None: - object = NodePath(node) - - elif hasattr(request, "getSound"): - object = request.getSound() - - elif hasattr(request, "getSuccess"): - object = request.getSuccess() - - cb.gotObject(i, object) + cb.gotObject(i, request.result() or None) load_model = loadModel - cancel_request = cancelRequest - is_request_pending = isRequestPending unload_model = unloadModel save_model = saveModel load_font = loadFont diff --git a/direct/src/task/Task.py b/direct/src/task/Task.py index 215b240d16..08baa924a5 100644 --- a/direct/src/task/Task.py +++ b/direct/src/task/Task.py @@ -333,6 +333,7 @@ class TaskManager: funcOrTask - either an existing Task object (not already added to the task manager), or a callable function object. If this is a function, a new Task object will be created and returned. + You may also pass in a coroutine object. name - the name to assign to the Task. Required, unless you are passing in a Task object that already has a name. @@ -385,6 +386,15 @@ class TaskManager: task = funcOrTask elif hasattr(funcOrTask, '__call__'): task = PythonTask(funcOrTask) + if name is None: + name = getattr(funcOrTask, '__qualname__', None) or \ + getattr(funcOrTask, '__name__', None) + elif hasattr(funcOrTask, 'cr_await') or type(funcOrTask) == types.GeneratorType: + # It's a coroutine, or something emulating one. + task = PythonTask(funcOrTask) + if name is None: + name = getattr(funcOrTask, '__qualname__', None) or \ + getattr(funcOrTask, '__name__', None) else: self.notify.error( 'add: Tried to add a task that was not a Task or a func') diff --git a/dtool/src/interrogate/functionRemap.cxx b/dtool/src/interrogate/functionRemap.cxx index 5b04209c48..27ec829479 100644 --- a/dtool/src/interrogate/functionRemap.cxx +++ b/dtool/src/interrogate/functionRemap.cxx @@ -846,7 +846,7 @@ setup_properties(const InterrogateFunction &ifunc, InterfaceMaker *interface_mak } } else if (fname == "__iter__") { - if (_has_this && _parameters.size() == 1 && + if ((int)_parameters.size() == first_param && TypeManager::is_pointer(_return_type->get_new_type())) { // It receives no parameters, and returns a pointer. _flags |= F_iter; diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index e5a353eb51..4384a66253 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -499,6 +499,24 @@ get_slotted_function_def(Object *obj, Function *func, FunctionRemap *remap, } } + if (method_name == "__await__") { + def._answer_location = "am_await"; + def._wrapper_type = WT_no_params; + return true; + } + + if (method_name == "__aiter__") { + def._answer_location = "am_aiter"; + def._wrapper_type = WT_no_params; + return true; + } + + if (method_name == "__anext__") { + def._answer_location = "am_anext"; + def._wrapper_type = WT_no_params; + return true; + } + if (method_name == "operator ()") { def._answer_location = "tp_call"; def._wrapper_type = WT_none; @@ -2798,6 +2816,20 @@ write_module_class(ostream &out, Object *obj) { out << "};\n\n"; } + bool have_async = false; + if (has_parent_class || slots.count("am_await") != 0 || + slots.count("am_aiter") != 0 || + slots.count("am_anext") != 0) { + out << "#if PY_VERSION_HEX >= 0x03050000\n"; + out << "static PyAsyncMethods Dtool_AsyncMethods_" << ClassName << " = {\n"; + write_function_slot(out, 2, slots, "am_await"); + write_function_slot(out, 2, slots, "am_aiter"); + write_function_slot(out, 2, slots, "am_anext"); + out << "};\n"; + out << "#endif\n\n"; + have_async = true; + } + // Output the actual PyTypeObject definition. out << "struct Dtool_PyTypedObject Dtool_" << ClassName << " = {\n"; out << " {\n"; @@ -2819,7 +2851,13 @@ write_module_class(ostream &out, Object *obj) { write_function_slot(out, 4, slots, "tp_setattr"); // cmpfunc tp_compare; (reserved in Python 3) - out << "#if PY_MAJOR_VERSION >= 3\n"; + out << "#if PY_VERSION_HEX >= 0x03050000\n"; + if (have_async) { + out << " &Dtool_AsyncMethods_" << ClassName << ",\n"; + } else { + out << " 0, // tp_as_async\n"; + } + out << "#elif PY_MAJOR_VERSION >= 3\n"; out << " 0, // tp_reserved\n"; out << "#else\n"; if (has_hash_compare) { diff --git a/dtool/src/interrogatedb/py_panda.cxx b/dtool/src/interrogatedb/py_panda.cxx index 76c4e7cf1b..6b0c9f93a5 100644 --- a/dtool/src/interrogatedb/py_panda.cxx +++ b/dtool/src/interrogatedb/py_panda.cxx @@ -622,6 +622,10 @@ PyObject *Dtool_PyModuleInitHelper(LibraryDef *defs[], const char *modulename) { return Dtool_Raise_TypeError("PyType_Ready(Dtool_SeqMapWrapper)"); } + if (PyType_Ready(&Dtool_GeneratorWrapper_Type) < 0) { + return Dtool_Raise_TypeError("PyType_Ready(Dtool_GeneratorWrapper)"); + } + if (PyType_Ready(&Dtool_StaticProperty_Type) < 0) { return Dtool_Raise_TypeError("PyType_Ready(Dtool_StaticProperty_Type)"); } @@ -1111,6 +1115,13 @@ static int Dtool_SeqMapWrapper_setitem(PyObject *self, PyObject *key, PyObject * } } +static PyObject *Dtool_GeneratorWrapper_iternext(PyObject *self) { + Dtool_GeneratorWrapper *wrap = (Dtool_GeneratorWrapper *)self; + nassertr(wrap, nullptr); + nassertr(wrap->_iternext_func, nullptr); + return wrap->_iternext_func(wrap->_base._self); +} + static PySequenceMethods Dtool_SequenceWrapper_SequenceMethods = { Dtool_SequenceWrapper_length, 0, // sq_concat @@ -1454,4 +1465,66 @@ PyTypeObject Dtool_SeqMapWrapper_Type = { #endif }; +/** + * This variant defines only a generator interface. + */ +PyTypeObject Dtool_GeneratorWrapper_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "generator wrapper", + sizeof(Dtool_GeneratorWrapper), + 0, // tp_itemsize + Dtool_WrapperBase_dealloc, + 0, // tp_print + 0, // tp_getattr + 0, // tp_setattr +#if PY_MAJOR_VERSION >= 3 + 0, // tp_reserved +#else + 0, // tp_compare +#endif + 0, // tp_repr + 0, // tp_as_number + 0, // tp_as_sequence + 0, // tp_as_mapping + 0, // tp_hash + 0, // tp_call + 0, // tp_str + PyObject_GenericGetAttr, + PyObject_GenericSetAttr, + 0, // tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, + 0, // tp_doc + 0, // tp_traverse + 0, // tp_clear + 0, // tp_richcompare + 0, // tp_weaklistoffset + PyObject_SelfIter, + Dtool_GeneratorWrapper_iternext, + 0, // tp_methods + 0, // tp_members + 0, // tp_getset + 0, // tp_base + 0, // tp_dict + 0, // tp_descr_get + 0, // tp_descr_set + 0, // tp_dictoffset + 0, // tp_init + PyType_GenericAlloc, + 0, // tp_new + PyObject_Del, + 0, // tp_is_gc + 0, // tp_bases + 0, // tp_mro + 0, // tp_cache + 0, // tp_subclasses + 0, // tp_weaklist + 0, // tp_del +#if PY_VERSION_HEX >= 0x02060000 + 0, // tp_version_tag +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, // tp_finalize +#endif +}; + #endif // HAVE_PYTHON diff --git a/dtool/src/interrogatedb/py_panda.h b/dtool/src/interrogatedb/py_panda.h index c341bb6b33..bf6d038382 100644 --- a/dtool/src/interrogatedb/py_panda.h +++ b/dtool/src/interrogatedb/py_panda.h @@ -495,9 +495,15 @@ struct Dtool_SeqMapWrapper { objobjargproc _map_setitem_func; }; +struct Dtool_GeneratorWrapper { + Dtool_WrapperBase _base; + iternextfunc _iternext_func; +}; + EXPCL_INTERROGATEDB extern PyTypeObject Dtool_SequenceWrapper_Type; EXPCL_INTERROGATEDB extern PyTypeObject Dtool_MappingWrapper_Type; EXPCL_INTERROGATEDB extern PyTypeObject Dtool_SeqMapWrapper_Type; +EXPCL_INTERROGATEDB extern PyTypeObject Dtool_GeneratorWrapper_Type; EXPCL_INTERROGATEDB extern PyTypeObject Dtool_StaticProperty_Type; EXPCL_INTERROGATEDB PyObject *Dtool_NewStaticProperty(PyTypeObject *obj, const PyGetSetDef *getset); diff --git a/dtool/src/pystub/pystub.cxx b/dtool/src/pystub/pystub.cxx index 935b3a47b6..90cdf17715 100644 --- a/dtool/src/pystub/pystub.cxx +++ b/dtool/src/pystub/pystub.cxx @@ -115,6 +115,7 @@ extern "C" { EXPCL_PYSTUB int PyObject_IsTrue(...); EXPCL_PYSTUB int PyObject_Repr(...); EXPCL_PYSTUB int PyObject_RichCompareBool(...); + EXPCL_PYSTUB int PyObject_SelfIter(...); EXPCL_PYSTUB int PyObject_SetAttrString(...); EXPCL_PYSTUB int PyObject_Str(...); EXPCL_PYSTUB int PyObject_Type(...); @@ -336,6 +337,7 @@ int PyObject_IsInstance(...) { return 0; } int PyObject_IsTrue(...) { return 0; } int PyObject_Repr(...) { return 0; } int PyObject_RichCompareBool(...) { return 0; } +int PyObject_SelfIter(...) { return 0; } int PyObject_SetAttrString(...) { return 0; } int PyObject_Str(...) { return 0; } int PyObject_Type(...) { return 0; } diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 696cc33857..ccd3d30bd0 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -3616,6 +3616,7 @@ if (not RUNTIME): TargetAdd('p3event_composite2.obj', opts=OPTS, input='p3event_composite2.cxx') OPTS=['DIR:panda/src/event', 'PYTHON'] + TargetAdd('p3event_asyncTask_ext.obj', opts=OPTS, input='asyncTask_ext.cxx') TargetAdd('p3event_pythonTask.obj', opts=OPTS, input='pythonTask.cxx') IGATEFILES=GetDirectoryContents('panda/src/event', ["*.h", "*_composite*.cxx"]) TargetAdd('libp3event.in', opts=OPTS, input=IGATEFILES) @@ -4209,6 +4210,7 @@ if (not RUNTIME): TargetAdd('core.pyd', input='p3pipeline_pythonThread.obj') TargetAdd('core.pyd', input='p3putil_ext_composite.obj') TargetAdd('core.pyd', input='p3pnmimage_pfmFile_ext.obj') + TargetAdd('core.pyd', input='p3event_asyncTask_ext.obj') TargetAdd('core.pyd', input='p3event_pythonTask.obj') TargetAdd('core.pyd', input='p3gobj_ext_composite.obj') TargetAdd('core.pyd', input='p3pgraph_ext_composite.obj') diff --git a/panda/src/audio/audioLoadRequest.I b/panda/src/audio/audioLoadRequest.I index 21eea901c5..0daf2df619 100644 --- a/panda/src/audio/audioLoadRequest.I +++ b/panda/src/audio/audioLoadRequest.I @@ -62,11 +62,24 @@ is_ready() const { } /** - * Returns the sound that was loaded asynchronously, if any, or NULL if there - * was an error. It is an error to call this unless is_ready() returns true. + * Returns the sound that was loaded asynchronously, if any, or nullptr if + * there was an error. It is an error to call this unless is_ready() returns + * true. + * @deprecated Use result() instead. */ INLINE AudioSound *AudioLoadRequest:: get_sound() const { nassertr(_is_ready, NULL); return _sound; } + +/** + * Returns the sound that was loaded asynchronously, if any, or nullptr if + * there was an error. It is an error to call this unless is_ready() returns + * true. + */ +INLINE AudioSound *AudioLoadRequest:: +result() const { + nassertr(_is_ready, nullptr); + return _sound; +} diff --git a/panda/src/audio/audioLoadRequest.h b/panda/src/audio/audioLoadRequest.h index 7e5fb3d23b..04b63fcb31 100644 --- a/panda/src/audio/audioLoadRequest.h +++ b/panda/src/audio/audioLoadRequest.h @@ -42,6 +42,8 @@ PUBLISHED: INLINE bool is_ready() const; INLINE AudioSound *get_sound() const; + INLINE AudioSound *result() const; + protected: virtual DoneStatus do_task(); diff --git a/panda/src/event/asyncTask.I b/panda/src/event/asyncTask.I index ae411d3d7c..3b4476afb7 100644 --- a/panda/src/event/asyncTask.I +++ b/panda/src/event/asyncTask.I @@ -33,6 +33,7 @@ is_alive() const { case S_servicing: case S_sleeping: case S_active_nested: + case S_awaiting: return true; case S_inactive: diff --git a/panda/src/event/asyncTask.h b/panda/src/event/asyncTask.h index 97176df0a3..b50a4a6e54 100644 --- a/panda/src/event/asyncTask.h +++ b/panda/src/event/asyncTask.h @@ -45,6 +45,7 @@ PUBLISHED: DS_exit, // stop the enclosing sequence DS_pause, // pause, then exit (useful within a sequence) DS_interrupt, // interrupt the task manager, but run task again + DS_await, // await a different task's completion }; enum State { @@ -54,6 +55,7 @@ PUBLISHED: S_servicing_removed, // Still servicing, but wants removal from manager. S_sleeping, S_active_nested, // active within a sequence. + S_awaiting, // Waiting for a dependent task to complete }; INLINE State get_state() const; @@ -98,6 +100,9 @@ PUBLISHED: virtual void output(ostream &out) const; + EXTENSION(static PyObject *__await__(PyObject *self)); + EXTENSION(static PyObject *__iter__(PyObject *self)); + protected: void jump_to_task_chain(AsyncTaskManager *manager); DoneStatus unlock_and_do_task(); @@ -130,11 +135,16 @@ protected: double _total_dt; int _num_frames; + // Tasks waiting for this one to complete. + pvector _waiting_tasks; + static AtomicAdjust::Integer _next_task_id; static PStatCollector _show_code_pcollector; PStatCollector _task_pcollector; + friend class PythonTask; + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/event/asyncTaskChain.cxx b/panda/src/event/asyncTaskChain.cxx index bd5c391857..46975efb7c 100644 --- a/panda/src/event/asyncTaskChain.cxx +++ b/panda/src/event/asyncTaskChain.cxx @@ -44,6 +44,7 @@ AsyncTaskChain(AsyncTaskManager *manager, const string &name) : _frame_sync(false), _num_busy_threads(0), _num_tasks(0), + _num_awaiting_tasks(0), _state(S_initial), _current_sort(-INT_MAX), _pickup_mode(false), @@ -726,6 +727,13 @@ service_one_task(AsyncTaskChain::AsyncTaskChainThread *thread) { } break; + case AsyncTask::DS_await: + // The task wants to wait for another one to finish. + task->_state = AsyncTask::S_awaiting; + _cvar.notify_all(); + ++_num_awaiting_tasks; + break; + default: // The task has finished. cleanup_task(task, true, true); @@ -775,6 +783,20 @@ cleanup_task(AsyncTask *task, bool upon_death, bool clean_exit) { _manager->remove_task_by_name(task); + // Activate the tasks that were waiting for this one to finish. + if (upon_death) { + pvector::iterator it; + for (it = task->_waiting_tasks.begin(); it != task->_waiting_tasks.end(); ++it) { + AsyncTask *task = *it; + // Note that this task may not be on the same task chain. + nassertd(task->_manager == _manager) continue; + task->_state = AsyncTask::S_active; + task->_chain->_active.push_back(task); + --task->_chain->_num_awaiting_tasks; + } + task->_waiting_tasks.clear(); + } + if (upon_death) { _manager->_lock.release(); task->upon_death(_manager, clean_exit); @@ -899,7 +921,7 @@ finish_sort_group() { filter_timeslice_priority(); } - nassertr((size_t)_num_tasks == _active.size() + _this_active.size() + _next_active.size() + _sleeping.size(), true); + nassertr((size_t)_num_tasks == _active.size() + _this_active.size() + _next_active.size() + _sleeping.size() + (size_t)_num_awaiting_tasks, true); make_heap(_active.begin(), _active.end(), AsyncTaskSortPriority()); _current_sort = -INT_MAX; diff --git a/panda/src/event/asyncTaskChain.h b/panda/src/event/asyncTaskChain.h index 4f98ef284a..3dded59317 100644 --- a/panda/src/event/asyncTaskChain.h +++ b/panda/src/event/asyncTaskChain.h @@ -172,6 +172,7 @@ protected: bool _frame_sync; int _num_busy_threads; int _num_tasks; + int _num_awaiting_tasks; TaskHeap _active; TaskHeap _this_active; TaskHeap _next_active; diff --git a/panda/src/event/asyncTaskManager.h b/panda/src/event/asyncTaskManager.h index 967476c4af..a92a46b141 100644 --- a/panda/src/event/asyncTaskManager.h +++ b/panda/src/event/asyncTaskManager.h @@ -155,6 +155,7 @@ private: friend class AsyncTaskChain::AsyncTaskChainThread; friend class AsyncTask; friend class AsyncTaskSequence; + friend class PythonTask; }; INLINE ostream &operator << (ostream &out, const AsyncTaskManager &manager) { diff --git a/panda/src/event/asyncTask_ext.cxx b/panda/src/event/asyncTask_ext.cxx new file mode 100755 index 0000000000..bbfb46d2c1 --- /dev/null +++ b/panda/src/event/asyncTask_ext.cxx @@ -0,0 +1,75 @@ +/** + * PANDA 3D SOFTWARE + * Copyright (c) Carnegie Mellon University. All rights reserved. + * + * All use of this software is subject to the terms of the revised BSD + * license. You should have received a copy of this license along + * with this source code in a file named "LICENSE." + * + * @file asyncTask_ext.h + * @author rdb + * @date 2017-10-29 + */ + +#include "asyncTask_ext.h" +#include "nodePath.h" + +#ifdef HAVE_PYTHON + +#ifndef CPPPARSER +extern struct Dtool_PyTypedObject Dtool_AsyncTask; +#endif + +/** + * Yields continuously until the task has finished. + */ +static PyObject *gen_next(PyObject *self) { + const AsyncTask *request = nullptr; + if (!Dtool_Call_ExtractThisPointer(self, Dtool_AsyncTask, (void **)&request)) { + return nullptr; + } + + if (request->is_alive()) { + // Continue awaiting the result. + Py_INCREF(self); + return self; + } else { + // It's done. Do we have a method like result(), eg. in the case of a + // ModelLoadRequest? In that case we pass that value into the exception. + PyObject *method = PyObject_GetAttrString(self, "result"); + PyObject *result = nullptr; + if (method != nullptr) { + if (PyCallable_Check(method)) { + result = _PyObject_CallNoArg(method); + Py_DECREF(method); + if (result == nullptr) { + // An exception happened. Pass it on. + return nullptr; + } + } + Py_DECREF(method); + } + Py_INCREF(PyExc_StopIteration); + PyErr_Restore(PyExc_StopIteration, result, nullptr); + return nullptr; + } +} + +/** + * Returns a generator that continuously yields an awaitable until the task + * has finished. This allows syntax like `model = await loader.load...` to be + * used in a Python coroutine. + */ +PyObject *Extension:: +__await__(PyObject *self) { + Dtool_GeneratorWrapper *gen; + gen = (Dtool_GeneratorWrapper *)PyType_GenericAlloc(&Dtool_GeneratorWrapper_Type, 0); + if (gen != nullptr) { + Py_INCREF(self); + gen->_base._self = self; + gen->_iternext_func = &gen_next; + } + return (PyObject *)gen; +} + +#endif diff --git a/panda/src/event/asyncTask_ext.h b/panda/src/event/asyncTask_ext.h new file mode 100755 index 0000000000..89fd4cb8f4 --- /dev/null +++ b/panda/src/event/asyncTask_ext.h @@ -0,0 +1,35 @@ +/** + * PANDA 3D SOFTWARE + * Copyright (c) Carnegie Mellon University. All rights reserved. + * + * All use of this software is subject to the terms of the revised BSD + * license. You should have received a copy of this license along + * with this source code in a file named "LICENSE." + * + * @file asyncTask_ext.h + * @author rdb + * @date 2017-10-29 + */ + +#ifndef ASYNCTASK_EXT_H +#define ASYNCTASK_EXT_H + +#include "extension.h" +#include "py_panda.h" +#include "modelLoadRequest.h" + +#ifdef HAVE_PYTHON + +/** + * Extension class for AsyncTask + */ +template<> +class Extension : public ExtensionBase { +public: + static PyObject *__await__(PyObject *self); + static PyObject *__iter__(PyObject *self) { return __await__(self); } +}; + +#endif // HAVE_PYTHON + +#endif // ASYNCTASK_EXT_H diff --git a/panda/src/event/pythonTask.I b/panda/src/event/pythonTask.I index b2f9a0ef07..7280b4e7d6 100644 --- a/panda/src/event/pythonTask.I +++ b/panda/src/event/pythonTask.I @@ -10,3 +10,52 @@ * @author drose * @date 2008-09-16 */ + +/** + * Returns the function that is called when the task runs. + */ +INLINE PyObject *PythonTask:: +get_function() { + Py_INCREF(_function); + return _function; +} + +/** + * Returns the function that is called when the task finishes. + */ +INLINE PyObject *PythonTask:: +get_upon_death() { + Py_INCREF(_upon_death); + return _upon_death; +} + +/** + * Returns the "owner" object. See set_owner(). + */ +INLINE PyObject *PythonTask:: +get_owner() const { + Py_INCREF(_owner); + return _owner; +} + +/** + * Sets the "result" of this task. This is the value returned from an "await" + * expression on this task. + * This can only be called while the task is still alive. + */ +INLINE void PythonTask:: +set_result(PyObject *result) { + nassertv(is_alive()); + nassertv(_exception == nullptr); + Py_INCREF(result); + Py_XDECREF(_exc_value); + _exc_value = result; +} + +/** + * Same as __await__, for backward compatibility with the old coroutine way. + */ +INLINE PyObject *PythonTask:: +__iter__(PyObject *self) { + return __await__(self); +} diff --git a/panda/src/event/pythonTask.cxx b/panda/src/event/pythonTask.cxx index 3ca6178803..1b4adc0921 100644 --- a/panda/src/event/pythonTask.cxx +++ b/panda/src/event/pythonTask.cxx @@ -19,28 +19,52 @@ #include "py_panda.h" #include "pythonThread.h" +#include "asyncTaskManager.h" TypeHandle PythonTask::_type_handle; #ifndef CPPPARSER extern struct Dtool_PyTypedObject Dtool_TypedReferenceCount; +extern struct Dtool_PyTypedObject Dtool_AsyncTask; +extern struct Dtool_PyTypedObject Dtool_PythonTask; #endif /** * */ PythonTask:: -PythonTask(PyObject *function, const string &name) : - AsyncTask(name) -{ - _function = NULL; - _args = NULL; - _upon_death = NULL; - _owner = NULL; - _registered_to_owner = false; - _generator = NULL; +PythonTask(PyObject *func_or_coro, const string &name) : + AsyncTask(name), + _function(nullptr), + _args(nullptr), + _upon_death(nullptr), + _owner(nullptr), + _registered_to_owner(false), + _exception(nullptr), + _exc_value(nullptr), + _exc_traceback(nullptr), + _generator(nullptr), + _future_done(nullptr), + _retrieved_exception(false) { + + nassertv(func_or_coro != nullptr); + if (func_or_coro == Py_None || PyCallable_Check(func_or_coro)) { + _function = func_or_coro; + Py_INCREF(_function); +#if PY_VERSION_HEX >= 0x03050000 + } else if (PyCoro_CheckExact(func_or_coro)) { + // We also allow passing in a coroutine, because why not. + _generator = func_or_coro; + Py_INCREF(_generator); +#endif + } else if (PyGen_CheckExact(func_or_coro)) { + // Something emulating a coroutine. + _generator = func_or_coro; + Py_INCREF(_generator); + } else { + nassert_raise("Invalid function passed to PythonTask"); + } - set_function(function); set_args(Py_None, true); set_upon_death(Py_None); set_owner(Py_None); @@ -60,9 +84,24 @@ PythonTask(PyObject *function, const string &name) : */ PythonTask:: ~PythonTask() { - Py_DECREF(_function); +#ifndef NDEBUG + // If the coroutine threw an exception, and there was no opportunity to + // handle it, let the user know. + if (_exception != nullptr && !_retrieved_exception) { + task_cat.error() + << *this << " exception was never retrieved:\n"; + PyErr_Restore(_exception, _exc_value, _exc_traceback); + PyErr_Print(); + PyErr_Restore(nullptr, nullptr, nullptr); + } +#endif + + Py_XDECREF(_function); Py_DECREF(_args); Py_DECREF(__dict__); + Py_XDECREF(_exception); + Py_XDECREF(_exc_value); + Py_XDECREF(_exc_traceback); Py_XDECREF(_generator); Py_XDECREF(_owner); Py_XDECREF(_upon_death); @@ -83,15 +122,6 @@ set_function(PyObject *function) { } } -/** - * Returns the function that is called when the task runs. - */ -PyObject *PythonTask:: -get_function() { - Py_INCREF(_function); - return _function; -} - /** * Replaces the argument list that is passed to the task function. The * parameter should be a tuple or list of arguments, or None to indicate the @@ -166,15 +196,6 @@ set_upon_death(PyObject *upon_death) { } } -/** - * Returns the function that is called when the task finishes. - */ -PyObject *PythonTask:: -get_upon_death() { - Py_INCREF(_upon_death); - return _upon_death; -} - /** * Specifies a Python object that serves as the "owner" for the task. This * owner object must have two methods: _addTask() and _clearTask(), which will @@ -212,12 +233,87 @@ set_owner(PyObject *owner) { } /** - * Returns the "owner" object. See set_owner(). + * Returns the result of this task's execution, as set by set_result() within + * the task or returned from a coroutine added to the task manager. If an + * exception occurred within this task, it is raised instead. */ PyObject *PythonTask:: -get_owner() { - Py_INCREF(_owner); - return _owner; +result() const { + nassertr(!is_alive(), nullptr); + + if (_exception == nullptr) { + // The result of the call is stored in _exc_value. + Py_XINCREF(_exc_value); + return _exc_value; + } else { + _retrieved_exception = true; + Py_INCREF(_exception); + Py_XINCREF(_exc_value); + Py_XINCREF(_exc_traceback); + PyErr_Restore(_exception, _exc_value, _exc_traceback); + return nullptr; + } +} + +/** + * If an exception occurred during execution of this task, returns it. This + * is only set if this task returned a coroutine or generator. + */ +/*PyObject *PythonTask:: +exception() const { + if (_exception == nullptr) { + Py_INCREF(Py_None); + return Py_None; + } else if (_exc_value == nullptr || _exc_value == Py_None) { + return _PyObject_CallNoArg(_exception); + } else if (PyTuple_Check(_exc_value)) { + return PyObject_Call(_exception, _exc_value, nullptr); + } else { + return PyObject_CallFunctionObjArgs(_exception, _exc_value, nullptr); + } +}*/ + +/** + * Returns an iterator that continuously yields an awaitable until the task + * has finished. + */ +PyObject *PythonTask:: +__await__(PyObject *self) { + Dtool_GeneratorWrapper *gen; + gen = (Dtool_GeneratorWrapper *)PyType_GenericAlloc(&Dtool_GeneratorWrapper_Type, 0); + if (gen != nullptr) { + Py_INCREF(self); + gen->_base._self = self; + gen->_iternext_func = &gen_next; + } + return (PyObject *)gen; +} + +/** + * Yields continuously until a task has finished. + */ +PyObject *PythonTask:: +gen_next(PyObject *self) { + const PythonTask *task = nullptr; + if (!Dtool_Call_ExtractThisPointer(self, Dtool_PythonTask, (void **)&task)) { + return nullptr; + } + + if (task->is_alive()) { + Py_INCREF(self); + return self; + } else if (task->_exception != nullptr) { + task->_retrieved_exception = true; + Py_INCREF(task->_exception); + Py_INCREF(task->_exc_value); + Py_INCREF(task->_exc_traceback); + PyErr_Restore(task->_exception, task->_exc_value, task->_exc_traceback); + return nullptr; + } else { + // The result of the call is stored in _exc_value. + PyErr_SetObject(PyExc_StopIteration, task->_exc_value); + return nullptr; + } } /** @@ -396,16 +492,30 @@ do_task() { */ AsyncTask::DoneStatus PythonTask:: do_python_task() { - PyObject *result = NULL; + PyObject *result = nullptr; - if (_generator == (PyObject *)NULL) { + // Are we waiting for a future to finish? + if (_future_done != nullptr) { + PyObject *is_done = PyObject_CallObject(_future_done, nullptr); + if (!PyObject_IsTrue(is_done)) { + // Nope, ask again next frame. + Py_DECREF(is_done); + return DS_cont; + } + Py_DECREF(is_done); + Py_DECREF(_future_done); + _future_done = nullptr; + } + + if (_generator == nullptr) { // We are calling the function directly. + nassertr(_function != nullptr, DS_interrupt); + PyObject *args = get_args(); result = PythonThread::call_python_func(_function, args); Py_DECREF(args); -#ifdef PyGen_Check - if (result != (PyObject *)NULL && PyGen_Check(result)) { + if (result != nullptr && PyGen_Check(result)) { // The function has yielded a generator. We will call into that // henceforth, instead of calling the function from the top again. if (task_cat.is_debug()) { @@ -423,30 +533,166 @@ do_python_task() { Py_DECREF(str); } _generator = result; - result = NULL; - } + result = nullptr; + +#if PY_VERSION_HEX >= 0x03050000 + } else if (result != nullptr && Py_TYPE(result)->tp_as_async != nullptr) { + // The function yielded a coroutine, or something of the sort. + if (task_cat.is_debug()) { + PyObject *str = PyObject_ASCII(_function); + PyObject *str2 = PyObject_ASCII(result); + task_cat.debug() + << PyUnicode_AsUTF8(str) << " in " << *this + << " yielded an awaitable: " << PyUnicode_AsUTF8(str2) << "\n"; + Py_DECREF(str); + Py_DECREF(str2); + } + if (PyCoro_CheckExact(result)) { + // If a coroutine, am_await is possible but senseless, since we can + // just call send(None) on the coroutine itself. + _generator = result; + } else { + unaryfunc await = Py_TYPE(result)->tp_as_async->am_await; + _generator = await(result); + Py_DECREF(result); + } + result = nullptr; #endif + } } - if (_generator != (PyObject *)NULL) { - // We are calling a generator. - PyObject *func = PyObject_GetAttrString(_generator, "next"); - nassertr(func != (PyObject *)NULL, DS_interrupt); - - result = PyObject_CallObject(func, NULL); + if (_generator != nullptr) { + // We are calling a generator. Use "send" rather than PyIter_Next since + // we need to be able to read the value from a StopIteration exception. + PyObject *func = PyObject_GetAttrString(_generator, "send"); + nassertr(func != nullptr, DS_interrupt); + result = PyObject_CallFunctionObjArgs(func, Py_None, nullptr); Py_DECREF(func); - if (result == (PyObject *)NULL && PyErr_Occurred() && - PyErr_ExceptionMatches(PyExc_StopIteration)) { - // "Catch" StopIteration and treat it like DS_done. - PyErr_Clear(); + if (result == nullptr) { + // An error happened. If StopIteration, that indicates the task has + // returned. Otherwise, we need to save it so that it can be re-raised + // in the function that awaited this task. Py_DECREF(_generator); - _generator = NULL; - return DS_done; + _generator = nullptr; + +#if PY_VERSION_HEX >= 0x03030000 + if (_PyGen_FetchStopIterationValue(&result) == 0) { +#else + if (PyErr_ExceptionMatches(PyExc_StopIteration)) { + result = Py_None; + Py_INCREF(result); +#endif + PyErr_Restore(nullptr, nullptr, nullptr); + + // If we passed a coroutine into the task, eg. something like: + // taskMgr.add(my_async_function()) + // then we cannot rerun the task, so the return value is always + // assumed to be DS_done. Instead, we pass the return value to the + // result of the `await` expression. + if (_function == nullptr) { + if (task_cat.is_debug()) { + task_cat.debug() + << *this << " received StopIteration from coroutine.\n"; + } + // Store the result in _exc_value because that's not used anyway. + Py_XDECREF(_exc_value); + _exc_value = result; + return DS_done; + } + } else if (_function == nullptr) { + // We got an exception. If this is a scheduled coroutine, we will + // keep it and instead throw it into whatever 'awaits' this task. + // Otherwise, fall through and handle it the regular way. + Py_XDECREF(_exception); + Py_XDECREF(_exc_value); + Py_XDECREF(_exc_traceback); + PyErr_Fetch(&_exception, &_exc_value, &_exc_traceback); + _retrieved_exception = false; + + if (task_cat.is_debug()) { + if (_exception != nullptr && Py_TYPE(_exception) == &PyType_Type) { + task_cat.debug() + << *this << " received " << ((PyTypeObject *)_exception)->tp_name << " from coroutine.\n"; + } else { + task_cat.debug() + << *this << " received exception from coroutine.\n"; + } + } + + // Tell the task chain we want to kill ourselves. It doesn't really + // matter what we return if we set S_servicing_removed. If we don't + // set it, however, it will think this was a clean exit. + _manager->_lock.acquire(); + _state = S_servicing_removed; + _manager->_lock.release(); + return DS_interrupt; + } + + } else if (DtoolCanThisBeAPandaInstance(result)) { + // We are waiting for a task to finish. + void *ptr = ((Dtool_PyInstDef *)result)->_My_Type->_Dtool_UpcastInterface(result, &Dtool_AsyncTask); + if (ptr != nullptr) { + // Suspend execution of this task until this other task has completed. + AsyncTask *task = (AsyncTask *)ptr; + AsyncTaskManager *manager = task->_manager; + nassertr(manager != nullptr, DS_interrupt); + nassertr(manager == _manager, DS_interrupt); + manager->_lock.acquire(); + if (task != (AsyncTask *)this) { + if (task->is_alive()) { + if (task_cat.is_debug()) { + task_cat.debug() + << *this << " is now awaiting <" << *task << ">.\n"; + } + task->_waiting_tasks.push_back(this); + } else { + // The task is already done. Continue at next opportunity. + Py_DECREF(result); + manager->_lock.release(); + return DS_cont; + } + } else { + // This is an error. If we wanted to be fancier we could also + // detect deeper circular dependencies. + task_cat.error() + << *this << " cannot await itself\n"; + } + task->_manager->_lock.release(); + Py_DECREF(result); + return DS_await; + } + + } else { + // We are waiting for a future to finish. We currently implement this + // by simply checking every frame whether the future is done. + PyObject *check = PyObject_GetAttrString(result, "_asyncio_future_blocking"); + if (check != nullptr && check != Py_None) { + Py_DECREF(check); + // Next frame, check whether this future is done. + _future_done = PyObject_GetAttrString(result, "done"); + if (_future_done == nullptr || !PyCallable_Check(_future_done)) { + task_cat.error() + << "future.done is not callable\n"; + return DS_interrupt; + } +#if PY_MAJOR_VERSION >= 3 + if (task_cat.is_debug()) { + PyObject *str = PyObject_ASCII(result); + task_cat.debug() + << *this << " is now awaiting " << PyUnicode_AsUTF8(str) << ".\n"; + Py_DECREF(str); + } +#endif + Py_DECREF(result); + return DS_cont; + } + PyErr_Clear(); + Py_XDECREF(check); } } - if (result == (PyObject *)NULL) { + if (result == nullptr) { if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit)) { // Don't print an error message for SystemExit. Or rather, make it a // debug message. diff --git a/panda/src/event/pythonTask.h b/panda/src/event/pythonTask.h index d97be5795e..59c3c65c5f 100644 --- a/panda/src/event/pythonTask.h +++ b/panda/src/event/pythonTask.h @@ -22,8 +22,8 @@ #include "py_panda.h" /** - * This class exists to allow association of a Python function with the - * AsyncTaskManager. + * This class exists to allow association of a Python function or coroutine + * with the AsyncTaskManager. */ class PythonTask : public AsyncTask { PUBLISHED: @@ -32,16 +32,23 @@ PUBLISHED: ALLOC_DELETED_CHAIN(PythonTask); void set_function(PyObject *function); - PyObject *get_function(); + INLINE PyObject *get_function(); void set_args(PyObject *args, bool append_task); PyObject *get_args(); void set_upon_death(PyObject *upon_death); - PyObject *get_upon_death(); + INLINE PyObject *get_upon_death(); void set_owner(PyObject *owner); - PyObject *get_owner(); + INLINE PyObject *get_owner() const; + + INLINE void set_result(PyObject *result); + PyObject *result() const; + //PyObject *exception() const; + + static PyObject *__await__(PyObject *self); + INLINE static PyObject *__iter__(PyObject *self); int __setattr__(PyObject *self, PyObject *attr, PyObject *v); int __delattr__(PyObject *self, PyObject *attr); @@ -94,6 +101,8 @@ protected: virtual void upon_death(AsyncTaskManager *manager, bool clean_exit); private: + static PyObject *gen_next(PyObject *self); + void register_to_owner(); void unregister_from_owner(); void call_owner_method(const char *method_name); @@ -102,12 +111,19 @@ private: private: PyObject *_function; PyObject *_args; - bool _append_task; PyObject *_upon_death; PyObject *_owner; - bool _registered_to_owner; + + PyObject *_exception; + PyObject *_exc_value; + PyObject *_exc_traceback; PyObject *_generator; + PyObject *_future_done; + + bool _append_task; + bool _registered_to_owner; + mutable bool _retrieved_exception; public: static TypeHandle get_class_type() { diff --git a/panda/src/pgraph/modelFlattenRequest.I b/panda/src/pgraph/modelFlattenRequest.I index 248d122c40..84e58744da 100644 --- a/panda/src/pgraph/modelFlattenRequest.I +++ b/panda/src/pgraph/modelFlattenRequest.I @@ -34,7 +34,7 @@ get_orig() const { /** * Returns true if this request has completed, false if it is still pending. * When this returns true, you may retrieve the model loaded by calling - * get_result(). + * result(). */ INLINE bool ModelFlattenRequest:: is_ready() const { @@ -47,6 +47,20 @@ is_ready() const { */ INLINE PandaNode *ModelFlattenRequest:: get_model() const { - nassertr(_is_ready, NULL); + nassertr(_is_ready, nullptr); return _model; } + +/** + * Returns the flattened copy of the model wrapped in a NodePath. It is an + * error to call this unless is_ready() returns true. + */ +INLINE NodePath ModelFlattenRequest:: +result() const { + nassertr(_is_ready, NodePath::fail()); + if (_model != nullptr) { + return NodePath(_model); + } else { + return NodePath::fail(); + } +} diff --git a/panda/src/pgraph/modelFlattenRequest.h b/panda/src/pgraph/modelFlattenRequest.h index 5716635f82..08a6e72901 100644 --- a/panda/src/pgraph/modelFlattenRequest.h +++ b/panda/src/pgraph/modelFlattenRequest.h @@ -19,6 +19,7 @@ #include "asyncTask.h" #include "pandaNode.h" #include "pointerTo.h" +#include "nodePath.h" /** * This class object manages a single asynchronous request to flatten a model. @@ -38,9 +39,10 @@ PUBLISHED: INLINE bool is_ready() const; INLINE PandaNode *get_model() const; + INLINE NodePath result() const; + MAKE_PROPERTY(orig, get_orig); MAKE_PROPERTY(ready, is_ready); - MAKE_PROPERTY(model, get_model); protected: virtual DoneStatus do_task(); diff --git a/panda/src/pgraph/modelLoadRequest.I b/panda/src/pgraph/modelLoadRequest.I index 7392194510..2b8ef41544 100644 --- a/panda/src/pgraph/modelLoadRequest.I +++ b/panda/src/pgraph/modelLoadRequest.I @@ -37,6 +37,16 @@ get_loader() const { return _loader; } +/** + * Returns the model that was loaded asynchronously as a NodePath, if any, or + * the empty NodePath if there was an error. + */ +INLINE NodePath ModelLoadRequest:: +result() const { + nassertr_always(_is_ready, NodePath::fail()); + return NodePath(_model); +} + /** * Returns true if this request has completed, false if it is still pending. * When this returns true, you may retrieve the model loaded by calling diff --git a/panda/src/pgraph/modelLoadRequest.h b/panda/src/pgraph/modelLoadRequest.h index 00f55e8052..423a807c38 100644 --- a/panda/src/pgraph/modelLoadRequest.h +++ b/panda/src/pgraph/modelLoadRequest.h @@ -11,8 +11,8 @@ * @date 2006-08-29 */ -#ifndef MODELLOADREQUEST -#define MODELLOADREQUEST +#ifndef MODELLOADREQUEST_H +#define MODELLOADREQUEST_H #include "pandabase.h" @@ -22,6 +22,7 @@ #include "pandaNode.h" #include "pointerTo.h" #include "loader.h" +#include "nodePath.h" /** * A class object that manages a single asynchronous model load request. @@ -42,6 +43,8 @@ PUBLISHED: INLINE const LoaderOptions &get_options() const; INLINE Loader *get_loader() const; + INLINE NodePath result() const; + INLINE bool is_ready() const; INLINE PandaNode *get_model() const; @@ -49,7 +52,6 @@ PUBLISHED: MAKE_PROPERTY(options, get_options); MAKE_PROPERTY(loader, get_loader); MAKE_PROPERTY(ready, is_ready); - MAKE_PROPERTY(model, get_model); protected: virtual DoneStatus do_task(); diff --git a/panda/src/pgraph/modelSaveRequest.I b/panda/src/pgraph/modelSaveRequest.I index d7ccd1dd09..14940aaf0f 100644 --- a/panda/src/pgraph/modelSaveRequest.I +++ b/panda/src/pgraph/modelSaveRequest.I @@ -64,3 +64,13 @@ get_success() const { nassertr(_is_ready, false); return _success; } + +/** + * Returns a boolean indicating whether the model saved correctly. It is an + * error to call this unless is_ready() returns true. + */ +INLINE bool ModelSaveRequest:: +result() const { + nassertr(_is_ready, false); + return _success; +} diff --git a/panda/src/pgraph/modelSaveRequest.h b/panda/src/pgraph/modelSaveRequest.h index 878e28edee..fb0ca6551b 100644 --- a/panda/src/pgraph/modelSaveRequest.h +++ b/panda/src/pgraph/modelSaveRequest.h @@ -11,8 +11,8 @@ * @date 2012-12-19 */ -#ifndef MODELSAVEREQUEST -#define MODELSAVEREQUEST +#ifndef MODELSAVEREQUEST_H +#define MODELSAVEREQUEST_H #include "pandabase.h" @@ -46,12 +46,13 @@ PUBLISHED: INLINE bool is_ready() const; INLINE bool get_success() const; + INLINE bool result() const; + MAKE_PROPERTY(filename, get_filename); MAKE_PROPERTY(options, get_options); MAKE_PROPERTY(node, get_node); MAKE_PROPERTY(loader, get_loader); MAKE_PROPERTY(ready, is_ready); - MAKE_PROPERTY(success, get_success); protected: virtual DoneStatus do_task(); From f22c0cdd83ad8f22db0e0736df00e42b1158dfb4 Mon Sep 17 00:00:00 2001 From: frainfreeze Date: Tue, 31 Oct 2017 19:20:24 +0100 Subject: [PATCH 05/10] Add README.md files for various directories Closes: #10 --- dtool/src/interrogate/README.md | 28 ++++++++++++++++++++++++++++ panda/src/chan/README.md | 5 +++++ panda/src/cull/README.md | 3 +++ panda/src/dgraph/README.md | 3 +++ panda/src/display/README.md | 2 ++ panda/src/dxgsg9/README.md | 2 ++ 6 files changed, 43 insertions(+) create mode 100644 dtool/src/interrogate/README.md create mode 100644 panda/src/chan/README.md create mode 100644 panda/src/cull/README.md create mode 100644 panda/src/dgraph/README.md create mode 100644 panda/src/display/README.md create mode 100644 panda/src/dxgsg9/README.md diff --git a/dtool/src/interrogate/README.md b/dtool/src/interrogate/README.md new file mode 100644 index 0000000000..4da044c8b5 --- /dev/null +++ b/dtool/src/interrogate/README.md @@ -0,0 +1,28 @@ +A key advantage of Panda3D is that it provides developers with the +ability to use both C++ and Python simultaneously. Essentially, Panda3D +gives programmers the best of both worlds, as they are able to take +advantage of the high performance and low-level programming found in +C++ in addition to the flexibility, interactive scripting, and +rapid-prototyping capabilities of Python. This feature is made possible +due to Python’s ability to call C libraries, and ultimately make use of +Panda3D’s Interrogate System: an automated C++ Extension Module +generation utility similar to SWIG. Although Python is the favored +scripting language of Panda3D, the engine is highly extensible in this +aspect, as any language that has a foreign function interface can make +use of the Interrogate System. + +The Interrogate System works like a compiler by scanning and parsing +C++ code for the Panda3D-specific, “PUBLISHED” keyword. This keyword +marks the particular methods of a class that are to be exposed within a +C++ Extension Module for that class which is eventually generated. One +benefit of using the “PUBLISHED” keyword is that it alleviates the need +for an interface file that provides function prototypes for the class +methods that will be exposed within the extension module, as is the +case with SWIG. Interrogate turns a class into a loose collection of +Python interface wrapper functions that make up the C++ Extension +Module. + +This package depends on the 'cppparser' package, which contains the +code that parses the C++ headers, and the 'interrogatedb' package, +which contains the intermediate representation of the interfaces that +can be saved to a database file for FFI generation tools to consume. diff --git a/panda/src/chan/README.md b/panda/src/chan/README.md new file mode 100644 index 0000000000..298bdf4345 --- /dev/null +++ b/panda/src/chan/README.md @@ -0,0 +1,5 @@ +This package contains the animation channels. This defines the various +kinds of AnimChannels that may be defined, as well as the MovingPart +class which binds to the channels and plays the animation. This is a +support library for char, as well as any other libraries that want to +define objects whose values change over time. diff --git a/panda/src/cull/README.md b/panda/src/cull/README.md new file mode 100644 index 0000000000..f5ae26c40d --- /dev/null +++ b/panda/src/cull/README.md @@ -0,0 +1,3 @@ +This package contains the Cull Traverser. The cull traversal collects +all state changes specified, and removes unnecessary state change +requests. Also does all the depth sorting for proper alphaing. diff --git a/panda/src/dgraph/README.md b/panda/src/dgraph/README.md new file mode 100644 index 0000000000..330c952a60 --- /dev/null +++ b/panda/src/dgraph/README.md @@ -0,0 +1,3 @@ +This package defines and manages the data graph, which is the hierarchy +of devices, tforms, and any other things which might have an input or +an output and need to execute every frame. diff --git a/panda/src/display/README.md b/panda/src/display/README.md new file mode 100644 index 0000000000..f9029b8a2b --- /dev/null +++ b/panda/src/display/README.md @@ -0,0 +1,2 @@ +This package contains the abstract display classes, including pipes, +windows, channels, and display regions. diff --git a/panda/src/dxgsg9/README.md b/panda/src/dxgsg9/README.md new file mode 100644 index 0000000000..72da6ba2f5 --- /dev/null +++ b/panda/src/dxgsg9/README.md @@ -0,0 +1,2 @@ +This package handles all communication with the DirectX backend, and +manages state to minimize redundant state changes. From 34731cd2f42d8b573c3ca6f64be47c3de52f2e21 Mon Sep 17 00:00:00 2001 From: Ed Swartz Date: Tue, 31 Oct 2017 13:43:28 -0500 Subject: [PATCH 06/10] rocket: Add sample showing some Panda3D uses of libRocket. (#24) --- .../assets/Perfect DOS VGA 437.ttf | Bin 0 -> 81192 bytes samples/rocket-console/assets/console.rcss | 38 ++ samples/rocket-console/assets/console.rml | 11 + samples/rocket-console/assets/dos437.txt | 1 + samples/rocket-console/assets/loading.rml | 54 +++ samples/rocket-console/assets/modenine.nfo | 18 + samples/rocket-console/assets/modenine.ttf | Bin 0 -> 22256 bytes samples/rocket-console/assets/monitor.egg.pz | Bin 0 -> 184112 bytes samples/rocket-console/assets/monitor.txt | 12 + samples/rocket-console/assets/rkt.rcss | 44 ++ samples/rocket-console/assets/takeyga_kb.egg | 316 ++++++++++++++ .../assets/tex/takeyga_kb_diffuse.dds | Bin 0 -> 174904 bytes .../assets/tex/takeyga_kb_normal.dds | Bin 0 -> 174904 bytes .../assets/tex/takeyga_kb_specular.dds | Bin 0 -> 174904 bytes samples/rocket-console/assets/window.rcss | 56 +++ samples/rocket-console/assets/window.rml | 42 ++ samples/rocket-console/console.py | 153 +++++++ samples/rocket-console/main.py | 410 ++++++++++++++++++ 18 files changed, 1155 insertions(+) create mode 100644 samples/rocket-console/assets/Perfect DOS VGA 437.ttf create mode 100755 samples/rocket-console/assets/console.rcss create mode 100755 samples/rocket-console/assets/console.rml create mode 100644 samples/rocket-console/assets/dos437.txt create mode 100755 samples/rocket-console/assets/loading.rml create mode 100644 samples/rocket-console/assets/modenine.nfo create mode 100644 samples/rocket-console/assets/modenine.ttf create mode 100644 samples/rocket-console/assets/monitor.egg.pz create mode 100644 samples/rocket-console/assets/monitor.txt create mode 100755 samples/rocket-console/assets/rkt.rcss create mode 100644 samples/rocket-console/assets/takeyga_kb.egg create mode 100644 samples/rocket-console/assets/tex/takeyga_kb_diffuse.dds create mode 100644 samples/rocket-console/assets/tex/takeyga_kb_normal.dds create mode 100644 samples/rocket-console/assets/tex/takeyga_kb_specular.dds create mode 100755 samples/rocket-console/assets/window.rcss create mode 100755 samples/rocket-console/assets/window.rml create mode 100644 samples/rocket-console/console.py create mode 100644 samples/rocket-console/main.py diff --git a/samples/rocket-console/assets/Perfect DOS VGA 437.ttf b/samples/rocket-console/assets/Perfect DOS VGA 437.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f5cbfc06fd489f01566cfaa1a41f5c260368d7b9 GIT binary patch literal 81192 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 literal 0 HcmV?d00001 diff --git a/samples/rocket-console/assets/console.rcss b/samples/rocket-console/assets/console.rcss new file mode 100755 index 0000000000..b1df4879f5 --- /dev/null +++ b/samples/rocket-console/assets/console.rcss @@ -0,0 +1,38 @@ +body +{ + font-family: "Perfect DOS VGA 437"; + font-weight: normal; + font-style: normal; + + // use all the allocated texture space + min-width: 100%; + min-height: 100%; + + background-color: #000; +} + + +text#content +{ + z-index: 2; + font-size: 30px; + + white-space: pre-wrap; + + margin: auto; + + text-align: left; + position: absolute; + + // account for non-proportionality of our 1024x512 + // buffer compared with VGA font proportions and + // wanting to center the screen with 40 columns + top: 16px; + left: 32px; + + width: 100%; + height: 100%; + + color: #888; + +} diff --git a/samples/rocket-console/assets/console.rml b/samples/rocket-console/assets/console.rml new file mode 100755 index 0000000000..7887f4ef7c --- /dev/null +++ b/samples/rocket-console/assets/console.rml @@ -0,0 +1,11 @@ + + + + Administrative Console + + + + + + + diff --git a/samples/rocket-console/assets/dos437.txt b/samples/rocket-console/assets/dos437.txt new file mode 100644 index 0000000000..614d29885e --- /dev/null +++ b/samples/rocket-console/assets/dos437.txt @@ -0,0 +1 @@ +from www.dafont.com/perfect-dos-vga-437.font (info at http://zehfernando.com/2015/revisiting-vga-fonts/) \ No newline at end of file diff --git a/samples/rocket-console/assets/loading.rml b/samples/rocket-console/assets/loading.rml new file mode 100755 index 0000000000..c85a5d3bed --- /dev/null +++ b/samples/rocket-console/assets/loading.rml @@ -0,0 +1,54 @@ + + + Main Menu + + + + + + + +
+ +
+ +
diff --git a/samples/rocket-console/assets/modenine.nfo b/samples/rocket-console/assets/modenine.nfo new file mode 100644 index 0000000000..c6af4f1f8b --- /dev/null +++ b/samples/rocket-console/assets/modenine.nfo @@ -0,0 +1,18 @@ +ModeNine + +Based on Andrew Bulhak's ModeSeven, in turn inspired by the screen +output of the BBC Micro. + +copyright: +(C) 1998 Andrew C. Bulhak +(C) 2001 Graham H Freeman + +Freely Distributable. + +All we ask is that this readme file must be included with the font package. +Impresarios of free font sites and shovelware cd-roms, this means you! + +If you think this font is doovy, let us know at fonts@grudnuk.com, and we +might actually make more fonts. + +Another fine Grudnuk Creations produkt | http://grudnuk.com/ \ No newline at end of file diff --git a/samples/rocket-console/assets/modenine.ttf b/samples/rocket-console/assets/modenine.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c0b00462d766d67eb4e11d05ac3147968a19cf92 GIT binary patch literal 22256 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 literal 0 HcmV?d00001 diff --git a/samples/rocket-console/assets/monitor.egg.pz b/samples/rocket-console/assets/monitor.egg.pz new file mode 100644 index 0000000000000000000000000000000000000000..9c9f3675fda70fde8811c418905e66fc82cb63cc GIT binary patch literal 184112 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 z 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 *RS+*8=I`$Ty=0z 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 z�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
  • J-|iVMc|s z-QD;OZ|*0cCPuW}1f1RRg&KOoVo_rHVwsRp-^Tsnq+o7k5rumn^$a{mW}&mB5lJ+y3R?m&kbBAP?O16BF+aVH{a>kNqa{b=XoCl;Fx17{u5aX5VLc|Xb*&w6bu~Oe?P#C`7 zs_3xg)CQk1X&1k!gWFROkL&+iPE4T|rbGqikysY_IBrA3oR-!3KQ!j%hR;u0c4&vb z<&|g{981@}=wrYJ==Z~If~{$ql0Gb2mNc!xN4A`ClsJHex`Ywk+9ATrd7X3k>aq~a z-%{o4&yXd8>~iO=bair)P_uC(&ya0S9kN(WP5uHN2vJ&;*Y84518+gV>%;h0dDrJW zqZw@WEnkbieB>ENdmUDiOjqB4HGX+1b9EJ|ruf2&>SfbI>C`n-gn95yf}|0foskLg z6x8V6QA` zOfR;~d5ICc&=AM_lJ#WvM`t1auK%c?*#b+TWbZtKA?ritidU8SauhGOPsLs;c=e*t zd=!qmi5rC#Uy#Y>!6E9#mKav8I1IJI+)k`kq7DtRp{UXk;l_s-NDNBUjbl;>%Rxo` z-PxX`C_jB44yU0bLLV99k$GtD6pB6z;O>+&BOISYWQ=?nt5MqKF3yKWqWm0}oqAxP zu|@VBs9^Pb8`ZtN8J0UGuq{zRFRhmfd(9OMX>jKHz{o;%d<{g3Cp*cfR#$uR(n2jA zKOr$SaGT0Vsq2G)R^kz`~qGcvU_MjAj&i-y5f$N@jmwDE)eNlC@ zCa7tEO*8Smmi_7XjN0%#&<2CB1D%M=#FFPt4*% zy$fSxJ}f4!+p?M^A>AESx5!Wo4Zi-yoGl)xnuGa)W>jzg$W)};ROCH6b`2*IjqIW> zub-^<rU|0GCyrsh>d{Y~24$T>_@)p#^Q9)H*fRy8JL znr$?Y@3^p%eUt(2Y%E;I0MY%A==e&xenB7CH-1Cj_vE89yWA{c_qAT9_hZ*j*=~s= z0t>ng=Cg&^4AlL*5+6lvare12G|I)f=*9zO_1=w<_1s+rt^6sF?-r9DtKrqgwJ&5 zD56r$9j(2WvX?hpNcAd@O!0-Yz*ka1*hcbHSf_hH=(vg>~?QqhTO!N*x*R*^; zMXY7@I;v7QjBCm53e6HlBU+~N)S}A>L-5 zB+=goL%(rDeq%pJ9^N$ph;<7w<`MCiM8pn$EBTVLYQuW-Gj)~ezLI)jY(i=DkgBB# z2N((7b)&=(w>@pli*mwElS}$bDFBl5adIAM;{B6!&bs}G)SU=#U)y$%5W4H8@P~0u zx3V)cJ+YJ9DR(9gxvIR15L->LqD`)7uZ23E9i7-vD-Klw4%aWmCy#I=Zm_hx(uO)U z(>w9ShVG`b>?e5un3jI5Swyvl&|PoTUD5ljJj)o>865PvmL}hLH!@4}42I8=H2~?r zHZ@JQf@k>g1GrX=4<#MllPZ*FxKa{9#(TXS0^s53(N4Icaemi{@(cSOeU^^FFQ0#_ zfWa!IxP)jm`J^_ho^ze!B{H6(Si5Q)#iv`CnxNp_T@Ddr{}EB7Yl@OuX%d(}dCK@J zonGr3Jlrk?7@~Og(gwaf>vu?g>|am%)Nv9@)Il3No%@P|TjPSF}5#CyDq@R7besq5n?1`cttl*AxT+@C-1p9i%VTs4p>MY#j#4}*?V-H6(~5bp%6 zsbWdoT5xjIzGWON$0=9bdls&TUl(?6 z-1}4fJm!@CdY^TuoI3-#IhoMVCxQ?~jZAX>BdKXt^D4|K6t#M(0UYFd>gyAYNzEYG z{}x%s9x~hVIF1`s*gd6G$6-QgKuAvN?Bc-1x+OluPvylVDW#NvRZ%=MY+V5X@t1*z zk)R!4@E-RSQ%|AA&h?2s%hq~*$g{Kmj`+3YNLVfv?K!Xf9Nn-dc0J3S4vf47ZYsCZ zu!`ZbLLHl=@h8ev?I5z2op2@Rl0Hcq@-G1grFni-8wAFg&V*S{bn7aOEWxyY#s}CI zA=#AmyIJM-h4bAI=+wNPP&aWT8r_}3yQ)#f~mUcaJn2*V-HY+QJ z<%?Ax6&uu=u}jFQa_;Oa&kzw3zd5+y8K9l;M3Ij*6KxxbDaGd2?BJJlbIuc0G+bWZ z<7v#!R=l}VSw3A+oU`$Tlm|c3_?hh=G%3d#wuG8m%m*atXC?fM8ecwDAt=;O4Fl-$ zN0S(kocbVh3Y=cy>#%upFMpE&vq92HMW4!22MF2U3B_+2Zp2@tcQr!a;6~OOY=}5nn%-yIJr(U z|A`asn1u}+>-*bKgYPnIk~@a*Jg>r)9Z?0IKX*6}l5xe)FZ$Ps?3Z}J^!};Yc^eu) zX;vE^aut)3B+;pLMP_9$91T@2%8xvhLqF#Lc12NT&5qUbEH%e{%L+3W=bURSpeLBX z{T7{5e?Wgi6*As+q~qAxMJF2v+cak2A71feJOI?)HXnzlYc?n(*(b>~=52`XMW^em=>9idP^r*@!^060E zC2OylaL=iZ=dm{>2Xv0ICAK7NC^TqUHt{WZyj^e~AJ~`4ag|QlJAFId95|@=taRK>O&ql-K>Xt{*l0BJnhN z7~VV#Fxe6<^Y0f`U@AS)_EpIUAp_7VEsaac!ns0xhk1fLe;sbCog@tj?e@vNZad8c z$UX5@?w0&!Lsghqt)J!XlmOUGN~>6pR`d@Zx7l)i-r>VB?Wguwh_Eux@&)w%l+?33 z27)FzH^r_5n3@pv1#Ku7y} z1;>Z0JvuoiPinKb2l1zP&taBaYlJ$3PMv|&mWbQ6Qu?>kmTHgpD{Cbm536q@Y^2Ab zZ1_!EYsf&gP)*>`T(D+%O8LR72>V{`q=pXYJylXg=kaX~y2a^*-oA`s?-si;?2%0X z<*N*{e~*Ku%+l96L*EgZdIkUUnUvC{m##w8Yjv-;KE~NV152t2&7;STcBFI9U_1lE zO$}M!$6pto#CiVcI|Nw*i}LjP-Hn!)UE1K(0q#F63yZKHS9O(*8)OXq)zW8H@6Yjn zFDibnXT3Z{4mrXTaCaf;5&V1g6axN>p#v1z_-k_$KcV60`eOLL_5MKo{`&rC|GxA7 zwDI=RGfMm#|9-UbMo+!?w&VY1_ z8W7RPlZP=AdVi;!*8k9H>d~Y2z!mP@@v@i^)$>Jc*FEuF z%uh+JeUVtNQ3genuNdB?R3VS%wQv&WkzV=K!2eO~CXvED?g3FcI zo??}M<8yLq-Q7k#F>SaIz(3Kgsd;)`9!kKI#EIZKU+>M-Hv4r>1na*1K?pFP;?K<0 z@hd;bU*<{m#{RCKn$BP5RaC+A^?o~c?xOsU5ayfOY4n;9`RzWt%4~ktyIPb)itXJF z_0@}p)5|dpnd4LX^OmTx(Qd+9VZm?QM~Zt?@dmU|=I((+peDZ)E%S&wBg2k-LF-5A z_<=%-!6X7Xpm_2POG54ig7x@R5LNhQ-!S!n^Vi`^3b+(6w7vAamhy}lRi))5IWObA zbd3>Jqa)hJ8-R{i?NZWU);?G#ZCsKG8iX$)l)pxg$mH1=T7EHeJdnPc9c-KB#o+7h zjQ|MFU#lL9#ArVSeD|uwx%NgKQB67G(Uoy5(?sPU_ENsVn-X&QOFMVt)nINk;g@&} z$gTNWMO)_Zq*cO;$SshGQIG8qmg5m&r+y6tXM=8I||Xuw)=*<7i7)j zB^Ri$wOdGoa(gr46(!cCLGxtA*L6&*QA5p%Y4ET+T;Uld(WUW~7uySbrDV|@)u*hO z?=We`RU2`$TR2mxTmT6XQZnZZuf@4!=iulTRB>Q&ddk73XICqSSPW>=j%-jGNRVjo zE4jSr*PN;;_{hD}z-B~|GM48>&DFPxJwCojHP7XM9y<`p$IYB{as5nY&^<|Q7nB>T z^9>C+6{S?}L-w;C`TdKcn$+D1sv`LF%|Vbx1h0@f_?%=H0|SpnVh;_PAD#MepaS8` zN6lhS`(%54FI;r-d}>8;QeeRsP8L#GRC+nYmsy`~f+z zQImLyYV==o6)X#1LcAm_3zs-3%6>xL_&{0m;Mtn|F9?l{ynFZw5t8KH5-)K){^1X6 z$pE(?yE-5nma0<42JdF1#1z@{kWvT}wv28@H5J}rU(1Y&d|JPJlcNHz+-ZOZM8@&k z;SN^C1+R57plH@eiJ3B5e?_V?i*EZ!G;y1T7a5QX+m&QhWUswt5tu=8je65FqP_A} z$z^2vd%+;8&h$}@&`F^@f0sJs!T+_5o>u^2S5cKHFlhE$uT{mEC;M>!s*qaAJ4cc` z4lPG4xX{YK!pr0vxp-M3nQC2`*zM5GrD&>9=MF?n>JebUnIhqo=qibRo_3d|%0d&4t(!y3pd1Cm=~ z4a>%Qp;^J#nQJ}KZLerLZg(VTzK1)nqh$uwWop9_FZc*CP4`O|VA4{>y4;fulqj=O z?d=WMl4Ls9GRDA{2=jZ>MM;x)m37in(y_TE)A!ZaWzJ%sgo%7*%t+dhd!I5ZFW>+- zxE)pZIXM@oYj$HkGE;*RrIf8oDmao9i7|_3L}ZNnwTHP8*l-hqLY&+*Zqg*8WXQWn zm6_>EJAT*D?rZSGoB+I|kYAQTBddA68O6_T5!;oq?%Z?O{i5O{E9dgqS#q>Qy8 zb*iZ0-4@LxCEKTR8R6;77Sx;4Px{~>%91a~OKpr-V5g;}v>Ayjs_Q5IC<_?1Sd21Q zlrpAW_Ir}dEqnVKO-RcU3&?P)4 ztW6*Ta|O2ivuJ8Zc+n={qx;-+q!moLzx!TzHZMA4D2qE4On$W#FYhRCueO5-;!C0e#)yT!JOqqbZjSo^D7& z`AYQ2_OOoHZD-31e3o8{sU}b!nL5h0AxiT`nijiR!IR>gXx0_$4pb3q7dqXXifu7W z>Z)BdSG7F~N^5bpxRUb|F|9dG1vT`!sCQLu_sW~CN~gjoN5hp4hF625;{u;mf(jd6 zX(A;dq!C}bx0A?cwFP~q*T;*GZcOdZ#b>BRB^xZh-Xh;t%eMtF?<-5rv$_et9aKK3 z&2Ol`CqGxDw^T20KVACY^)nv(Un%%K+8@`zL01lVucia1pMoBGFb6BYDp0<5AN}3H z!!B->H%n3?JyouseOgzqp*^vn4dbNmEs+thx!uwzuVh-`Ouc5F586@Qcj{p#@)$D4lh=Z{)G{woJVVmlX6S3n3Zwu^kwcwT8n3vWAc#D z-{aUbtejQT%suQvMHNR)orN@i&T3km+Kb!sD`mNYYQFHhQhBBM^vx`^)qnlMEAKjP zHhW;Au`+zLhuS`>#@?c^#{L|<-eGepqkv0E!_pn1(gF%nf~0gTB_Yx+xuAr^F1_@7R(<~Ox4Gx8nX_lk&Rlby zGxI@^u)CropWKR(w~<9{%w$t@Qb!>iP6>*}cltAhDqz*yasS~HbqPN`+iVDB6Enlq zQhERV4$+~JIi(&rOfGs$M*M#2zlX53$cEG?RoUyD{OU=^9{RE^De=Jy{sqZUnzuyn zmS&bqGo7Z>e4Zlwzu&*Aooshkmid^aeAyzcJNoQ-f|&6)fkV-WZ&2thSK<9DHPHL% znRlgIVvQXRowFY9{sQ?Y1Y&v$n0Dgc9#?&b5{;*Or8SDCcM93#A4ff&n@ijh74i;N zNb8MyJrBGtEt&5E6Z0&V_+x5Ky1wjLF5Qw4Z?5?K2y*?~=NFskU~H={|43;excW~s z*(=;uj|AD5RvC>pZ&<9@MMLIR0FN_J-2J7*W6@-zj-MOsG@#Xi-N27jkB9u|r~Mv( zah-bcadYM5D5$LDiTpPX;6Bs@1)yFHkOJ8Mt8E8kKpIgEEAIa5^o#k#E_F8Qg%MNMYj6}FNm z#ls|hzmPi!3S27t3dTsA;=5yNn(u?tDrR zf=is|?LjcB*5a;w&R9H8j&E9Fr1(tHVW7$x(M;1?+KyiVUd9w3kJ=`m&bGf7s2MC@6}HS?@$@1O6az1M==8~?n{fqP~RA*hT?gp>2JF4n-~%-;Q}r4epO>WuM+kpDM08 zCFq(GYf(d)b=O$exZ)2U*9%>y_N*Iod;;*_H8YsAvr+)C(k$JLKefm;s z&_FhJLwFY}WKC23mKr=$!F=MO1sr5R6L`^1*9guN5mBgtE8f+%8(v2~5vlp)aXJ3# z{wQuGVeUlmeOJo2GV+y_A1meZBjrpriGG^T{Xd>RZvA)@cWZ2*Kz5?|^?rtlm8fF& zK56`fvv#cV6a^A%Xtn{KxzD~I{?4z|cF_<$VlJ*;HvXlk7WpvN`0#DU|FVgwa0kDT zh0y=EnHTDrlaYe&m{Fng4RxT7$A4+w{td>}8n??tBi~(FWR@$8y2_$&hkTy9y(?z_ z^i9mIEOqX=osoj~m=PtrM$qJx4~q}yOxmjQJ#gM0Kq9!)oLbcXt^dS!dQZF(*Rde=sT1c%q4TPeBs zcj4;I$EC=6K)JxW_dXlC><1V<9XYVK~3$!~jCNBfm8Buel^=(`5H8+dM| zO!V@d;L{j?WBsyg-!}cSJ+Er1?Q0P}s!#W}S4^-ku-8n_+6>C>RRY)Vw%gyj7v3FY z-;L>U{=Sh=*DoV`DPvgnr1iF4$LVHo3w-m;zi90AO;=5^cd?%2?^D=;&e$uXRe^hb z$xrvO*G#bbQ~bv@QO90BMc$Op1s0S;sovtfY%>`4l5dFqcJz*=Uf;T(zoUJT6W@;i z=dPNQtdor4Hf@mt)l#3$(^o|C$x1#l(5 zmz|}P5j^Ry$z(WLqP|7EO9XEgKVKr$$kkKb{#+SxC6<{%QYCkr(RD50WFSw9S$lkH zdi7#>*hc)9l%R`wWwe_ZBff)KAS&%j*5i3+Kl1julxfOfcSm(>MVAyicYuAtsG|)Z zA*=c6#vF0F9EVzTH9fe6{qW&s-b(=-B1PdJ?D>V=iUdff6bBQC2{z!g@0RslJ} zsnjAZnuK2N_RW~Kti;W;VGN>}hwp%sMaHz{WR`E9F$Mpw>RJ@OuKUsKnqT(HzMsxI z{PD%-p*|z5uV<+q2SV}|+;VT(wogl^KF*&ZJRD97(Y3zGg5D0e9+NphMm(QL?V6b- zag+Zz-)iUErK;8qoOa#m1o^yQP_@JN^6cqxQV%L^?n{W~?%X0+X=c%!&btv}#Bqp^ z#v>Kr{Z!M1pZqYo2Lm&Ug2D`Ju}w6V7r=(kj443f!ne>L+K38G7YawoCSNM~h>o~T zN&w^C@gth~;IO?RY89042ZW%mk+ABxUTT*0$ncTo#pyExYSjndJFP*-&dRF3hw9EB z>DJK3B8QtEeMoW$4 z3nwN32JB5qM2p3vE>(FWxeMyKo>=#c=))k)y200nVUZJ2$yvfZhfh4|2FB#qn!6ax z=YN#mXXB#U%gnoc@wHif{A;UlaT8-jAIkW+&^bwjB!CN_g;^lH#c{2KpGodncnit~ zTD-PQyp5tO1+l4;C90P$`cch?v&B6>@_dibq%cKp{{56G>e0l|I(e~9m839S9_H%s z7PO7rz>rHfB@c(DhBf_Ea0w4fb$m8U-)dC=-fHZCkje&bf?JSyK5KtqepABl{Psv1 zHDvTr^dtHh*7)F5);jr$0p9-JImnV)NQLE^D|7r&6 z8a*LG`n_t|N?#a!l6v(n`B%rFNUn#`Bg=J{(Rf5cZ~26N#* zWOJVSIr4_w!|{Ak6qJ z+qW4D9>(f`mJMibGq;Z8U>zOH-mhf7PdCsHLeYP!ccA*C=1|X=J_^G5pP|sJuqLZX zPxU?uf_ZlWu(GXO+yGY*G%pA0_xcC;zhEF{8Z`N1=$R~%+5#`I;fn&?MChyDFb>>E)w z%XClm-j@l$dqo|bO6zco(;G>)sLnkcRf@$l-rTTyf{K~SLMiso)32We>%^OP>u?r`)K9LSy6T7+(asd@RAn;a|`?(jN?Cc)iUf z2VX@Iu9)ojaB-}(pPmlcPuBTCvly=@FQK%I;)UMNPtvboOuu9`a-FSs<-o`g01OJ$ z4a|6pRpH&v^Gnl=qxSPavF#TDEyxTO1#!T)X9JVBx*m?Q{8#5WwgMM&(&z+&6Kau} z&+^vanuezFg-AmGHr$=?K5btN>e&m$jH9D};U*Dh6Fb0#h73;`561JruMAENs-v{X zcPn3olPYaw7CK$xe$M~!)y6_+S;(uepI<&_)`q*O7evePBD=+IqiLvLkcCW#FFQMO zZ1ra@A{)n0y5ilh7kuA(w(GEw1NC*rWOE$>Ef{Y|?w4*sBA$k{sB#ps-WN&+Xn2vm z^4G{j_Lu%m=Eg0~xR8=KS}Q!RtK_kiW=a{ETF+j##GugLIIq=*r`>#cRC2D(Gg(s> zZjbsEEs-5I^aWy19>!MhQS;FEdt2Yy%bxzo1Pn6m)tqNr&sGj;96Pt3L0!;E@z^LI z@g>mpzl2Ep$7hrAU1QeG!Yd=dQt=dzC$1 zQ>}@_qm0PVTQ`xC37~F?v>@va)aw=U)o{<-^t_5yI3~0GFj-yNR^Vaii{OGZ2eIIv zddQ?0B-*9%F**U;R|8&+g&A3J?WDhLJf&5Ixh(%{0YvsjK}3l!+zh4eqYdMoZ5Kg2 z1~DFUCOdN&16^PI-zYEN_~@&b?2CSoksp9JlL4)vRO8bo)PY!R5I^F3WyV~`wiR%P zd*Dx?)>)cuCR}H4Z&jy%GscaZz^!wbGRdd!!5At_PRz^9VP`(6MttqE{tj<+jDw>l z=KeT36f>RzP|fvw*cZNAJZjg=Vi5P8Spi7 zk{Wj?`Quw{F|)|tJ(RLZ#r{b}pz8gv^z0#LY1YcyRKBZHLx*8HYqUpIfouZBP4YR* z`^IS@1aPj7ibpRhd)+n(IH|E0 z=eAnuL1NWfx_W%kOq*l}>MOH1WX}$4QWkBopB*^i)tGa!n5b37n^8H&-^tg)-7w=T zi1rCWv)(=0!*>7XHRtJ55hqQ8yj~_sRl7M~?h^Uvb(E^Y%~0z&m~vKGmtq;sDMH8W zpk4XM>w_CFem&%S%O-|NLc+^3hmql*ufHu4k}uD9ZB7o<0J-pR={r-Cl^-B&h4VA- z*GIZPj)dduQK0R~^fir94FSfK^mT6U3u8IJiP zjbQ5;A!;4n2793eO2_FR+dqOv8~YkPC>J`Q1mQiI*}8id69qK3N(%3&aReS6cJ@i@V^cO7hXRky;m+A{Ov_|_f~T+B{u4@j43{r zMN!mk-CEk7?!}ZB?dMcl7ky!7cctv-^s9UU=+y8Bt%__R-)F$c7W5D)j zUXJh_kAinK_-LBIhKl?f(4mCU>GBmOnalZWE4$#j310>*fBI!F&v9>0GeUu@(S4zo zK3gf6E>F~%vnSZmGp>gL)1P|zgt`OWs(L6@o#1{wR+FLCai3sZ5&zH}|Bm%#f5wLo zv4bnJxQARV#p?wn>xyX8ypPAR*R+Y3m4$X~JIsYqgU;OaehUKqRrb^$YeKeJYwt>ZVr4UVi9l^UB~VZSB~VGx_(%D*Q%u zy(_X?kTt5iO6!>9<72)`w!3*8FgfBF)a3AYi+)uS zS5K{amlzq){E-3m**r76s+z}ph&Jjp4SUc0j>7}{cu^v*NzowJ@9fr7BOXUXb?
      vH52n4g?KSXo3DLxg)hymw_#_H3c9HO+KuNPpg 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

      7M83js6h-qZpUp%N07l> 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 literal 0 HcmV?d00001 diff --git a/samples/rocket-console/assets/monitor.txt b/samples/rocket-console/assets/monitor.txt new file mode 100644 index 0000000000..f2e1f7265e --- /dev/null +++ b/samples/rocket-console/assets/monitor.txt @@ -0,0 +1,12 @@ + +This is an edited version of this file from blendswap.com (http://www.blendswap.com/blends/view/74468). + +VERY IMPORTANT LICENSE INFORMATION: + +This file has been released by buzo under the following license: + + Creative Commons Zero (Public Domain) + +You can use this model for any purposes according to the following conditions: + + There are no requirements for CC-Zero licensed blends. \ No newline at end of file diff --git a/samples/rocket-console/assets/rkt.rcss b/samples/rocket-console/assets/rkt.rcss new file mode 100755 index 0000000000..ebc49f50fb --- /dev/null +++ b/samples/rocket-console/assets/rkt.rcss @@ -0,0 +1,44 @@ +/* +* Default styles for all the basic elements. +*/ + +div +{ + display: block; +} + +p +{ + display: block; +} + +h1 +{ + display: block; +} + +em +{ + font-style: italic; +} + +strong +{ + font-weight: bold; +} + +datagrid +{ + display: block; +} + +select, dataselect, datacombo +{ + text-align: left; +} + +tabset tabs +{ + display: block; +} + diff --git a/samples/rocket-console/assets/takeyga_kb.egg b/samples/rocket-console/assets/takeyga_kb.egg new file mode 100644 index 0000000000..3085947839 --- /dev/null +++ b/samples/rocket-console/assets/takeyga_kb.egg @@ -0,0 +1,316 @@ + { Z-up } + takeyga_kb { + diffr { 0.800000 } + diffg { 0.800000 } + diffb { 0.800000 } + specr { 0.500000 } + specg { 0.500000 } + specb { 0.500000 } + shininess { 12.5 } + ambr { 1.000000 } + ambg { 1.000000 } + ambb { 1.000000 } + emitr { 0.000000 } + emitg { 0.000000 } + emitb { 0.000000 } +} + + Texture.001 { + "./tex/takeyga_kb_specular.dds" + envtype { MODULATE } + minfilter { LINEAR_MIPMAP_LINEAR } + magfilter { LINEAR_MIPMAP_LINEAR } + wrap { REPEAT } +} + + Tex { + "./tex/takeyga_kb_diffuse.dds" + envtype { MODULATE } + minfilter { LINEAR_MIPMAP_LINEAR } + magfilter { LINEAR_MIPMAP_LINEAR } + wrap { REPEAT } +} + + Texture { + "./tex/takeyga_kb_normal.dds" + envtype { NORMAL } + minfilter { LINEAR_MIPMAP_LINEAR } + magfilter { LINEAR_MIPMAP_LINEAR } + wrap { REPEAT } +} + + Cube.001 { + { + { + 0.08499996364116669 0.0 0.0 0.0 + 0.0 0.23999987542629242 0.0 0.0 + 0.0 0.0 0.02500000037252903 0.0 + 0.0 0.0 0.0 1.0 + } + } + + Cube.001 { + + 0 {0.082953 0.240000 -0.025000 + { + 0.158203125 0.595703125 + } + } + 1 {0.082953 -0.240000 -0.025000 + { + 0.98828125 0.6015625 + } + } + 2 {-0.085000 -0.240000 -0.025000 + { + 0.98828125 0.986328125 + } + } + 3 {-0.085000 0.240000 -0.025000 + { + 0.162109375 0.98828125 + } + } + 4 {0.073544 0.227744 -0.005546 + { + 0.990234375 0.017578125 + } + } + 5 {-0.067932 0.223167 0.018996 + { + 0.98046875 0.46875 + } + } + 6 {-0.067932 -0.223167 0.018996 + { + 0.017578125 0.470703125 + } + } + 7 {0.073544 -0.227744 -0.005546 + { + 0.01953125 0.013671875 + } + } + 8 {0.082372 0.237328 -0.015273 + { + 0.9794921875 0.552734375 + } + } + 9 {0.073544 0.227744 -0.005546 + { + 0.9765625 0.57421875 + } + } + 10 {0.073544 -0.227744 -0.005546 + { + 0.025390625 0.57421875 + } + } + 11 {0.082372 -0.237328 -0.015273 + { + 0.0234375 0.5537109375 + } + } + 12 {0.082372 -0.237328 -0.015273 + { + 0.0703125 0.6123046875 + } + } + 13 {0.073544 -0.227744 -0.005546 + { + 0.095703125 0.615234375 + } + } + 14 {-0.067932 -0.223167 0.018996 + { + 0.13671875 0.97265625 + } + } + 15 {-0.080884 -0.235006 0.001122 + { + 0.07421875 0.982421875 + } + } + 16 {-0.080884 -0.235006 0.001122 + { + 0.0166015625 0.5361328125 + } + } + 17 {-0.067932 -0.223167 0.018996 + { + 0.017578125 0.58203125 + } + } + 18 {-0.067932 0.223167 0.018996 + { + 0.978515625 0.580078125 + } + } + 19 {-0.080884 0.235006 0.001122 + { + 0.984375 0.5341796875 + } + } + 20 {0.082372 0.237328 -0.015273 + { + 0.0703125 0.6123046875 + } + } + 21 {0.082953 0.240000 -0.025000 + { + 0.044921875 0.609375 + } + } + 22 {-0.085000 0.240000 -0.025000 + { + 0.01171875 0.9921875 + } + } + 23 {-0.080884 0.235006 0.001122 + { + 0.07421875 0.982421875 + } + } + 24 {0.082953 0.240000 -0.025000 + { + 0.982421875 0.53125 + } + } + 25 {0.082372 0.237328 -0.015273 + { + 0.9794921875 0.552734375 + } + } + 26 {0.082372 -0.237328 -0.015273 + { + 0.0234375 0.5537109375 + } + } + 27 {0.082953 -0.240000 -0.025000 + { + 0.021484375 0.533203125 + } + } + 28 {0.082953 -0.240000 -0.025000 + { + 0.044921875 0.609375 + } + } + 29 {0.082372 -0.237328 -0.015273 + { + 0.0703125 0.6123046875 + } + } + 30 {-0.080884 -0.235006 0.001122 + { + 0.07421875 0.982421875 + } + } + 31 {-0.085000 -0.240000 -0.025000 + { + 0.01171875 0.9921875 + } + } + 32 {-0.085000 -0.240000 -0.025000 + { + 0.015625 0.490234375 + } + } + 33 {-0.080884 -0.235006 0.001122 + { + 0.0166015625 0.5361328125 + } + } + 34 {-0.080884 0.235006 0.001122 + { + 0.984375 0.5341796875 + } + } + 35 {-0.085000 0.240000 -0.025000 + { + 0.990234375 0.48828125 + } + } + 36 {0.073544 0.227744 -0.005546 + { + 0.095703125 0.615234375 + } + } + 37 {0.082372 0.237328 -0.015273 + { + 0.0703125 0.6123046875 + } + } + 38 {-0.080884 0.235006 0.001122 + { + 0.07421875 0.982421875 + } + } + 39 {-0.067932 0.223167 0.018996 + { + 0.13671875 0.97265625 + } + }} + + + { + { Tex } + { takeyga_kb } + {0.000000 0.000000 -1.000000} + { 0 1 2 3 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.508027 -0.000000 0.861341} + { 4 5 6 7 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.966167 -0.000000 0.257917} + { 8 9 10 11 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.028240 -0.996449 0.079322} + { 12 13 14 15 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {-0.978036 0.000000 0.208436} + { 16 17 18 19 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.001260 0.999752 0.022233} + { 20 21 22 23 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.999846 -0.000000 0.017550} + { 24 25 26 27 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.001259 -0.999752 0.022233} + { 28 29 30 31 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {-0.998928 0.000000 0.046291} + { 32 33 34 35 { Cube.001 }} + } + { + { Tex } + { takeyga_kb } + {0.028241 0.996449 0.079322} + { 36 37 38 39 { Cube.001 }} + } + } diff --git a/samples/rocket-console/assets/tex/takeyga_kb_diffuse.dds b/samples/rocket-console/assets/tex/takeyga_kb_diffuse.dds new file mode 100644 index 0000000000000000000000000000000000000000..406e6895452935953892fa098cf8886781c5bf56 GIT binary patch literal 174904 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