]> git.mxchange.org Git - flightgear.git/commitdiff
Update/simplify for SimGear changes.
authorThomas Geymayer <tomgey@gmail.com>
Tue, 15 Oct 2013 15:48:13 +0000 (17:48 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Tue, 15 Oct 2013 15:48:13 +0000 (17:48 +0200)
src/Canvas/FGCanvasSystemAdapter.cxx
src/Canvas/FGCanvasSystemAdapter.hxx
src/Scripting/NasalCanvas.cxx
src/Scripting/NasalSys.cxx
src/Scripting/NasalSys.hxx

index a587dff16b27f17a40593a27338da78f1dd6b948..0471118dd13ce516088411fa30135f134920ac62 100644 (file)
@@ -20,7 +20,6 @@
 
 #include <Main/globals.hxx>
 #include <Main/util.hxx>
-#include <Scripting/NasalSys.hxx>
 #include <Viewer/renderer.hxx>
 
 #include <osgDB/ReadFile>
@@ -98,38 +97,4 @@ namespace canvas
     return 0;
   }
 
-  /**
-   * Get current FGNasalSys instance.
-   */
-  static FGNasalSys* getNasalSys()
-  {
-    static FGNasalSys* nasal_sys = 0;
-    // TODO if Nasal is able to be removed and/or recreated at runtime we need
-    //      to ensure that always the current instance is used
-    if( !nasal_sys )
-    {
-      nasal_sys = dynamic_cast<FGNasalSys*>(globals->get_subsystem("nasal"));
-      if( !nasal_sys )
-        throw std::runtime_error("FGCanvasSystemAdapter: no NasalSys");
-    }
-
-    return nasal_sys;
-  }
-
-  //----------------------------------------------------------------------------
-  naContext FGCanvasSystemAdapter::getNasalContext() const
-  {
-    return getNasalSys()->context();
-  }
-
-  //------------------------------------------------------------------------------
-  naRef FGCanvasSystemAdapter::callMethod( naRef code,
-                                           naRef self,
-                                           int argc,
-                                           naRef* args,
-                                           naRef locals )
-  {
-    return getNasalSys()->callMethod(code, self, argc, args, locals);
-  }
-
 }
index 7fca339f1f544726eae9155e8d9122e529138c18..03ff2df36a71672f5c67f5f196a0306f19740d83 100644 (file)
@@ -31,13 +31,6 @@ namespace canvas
       virtual void addCamera(osg::Camera* camera) const;
       virtual void removeCamera(osg::Camera* camera) const;
       virtual osg::Image* getImage(const std::string& path) const;
-
-      virtual naContext getNasalContext() const;
-      virtual naRef callMethod( naRef code,
-                                naRef self,
-                                int argc,
-                                naRef* args,
-                                naRef locals );
   };
 }
 
index 67d9f728aec7cf5f899594957b8bdf79d07d6814..0df6133f0eb15621635b91111ce6d80c264c50ec 100644 (file)
@@ -226,10 +226,10 @@ naRef initNasalCanvas(naRef globals, naContext c)
     .member("size_y", &sc::Canvas::getSizeY)
     .method("_createGroup", &f_canvasCreateGroup)
     .method("_getGroup", &sc::Canvas::getGroup)
-    .method("addEventListener", &sc::Canvas::addNasalEventListener);
+    .method("addEventListener", &sc::Canvas::addEventListener);
   NasalElement::init("canvas.Element")
     .member("_node_ghost", &elementGetNode<sc::Element>)
-    .method("addEventListener", &sc::Element::addNasalEventListener)
+    .method("addEventListener", &sc::Element::addEventListener)
     .method("getTransformedBounds", &f_elementGetTransformedBounds);
   NasalGroup::init("canvas.Group")
     .bases<NasalElement>()
index 278f97194b6f47513c0d35814b50fe0c3a2645f0..5015d125080ee6924edcd241606ad40c27886b70 100644 (file)
@@ -202,11 +202,12 @@ FGNasalSys::FGNasalSys()
     _context = 0;
     _globals = naNil();
     _string = naNil();
-    _callCount = 0;
     
     _log = new simgear::BufferedLogCallback(SG_NASAL, SG_INFO);
     _log->truncateAt(255);
     sglog().addCallback(_log);
+
+    naSetErrorHandler(&logError);
 }
 
 // Utility.  Sets a named key in a hash by C string, rather than nasal
@@ -237,16 +238,7 @@ naRef FGNasalSys::call(naRef code, int argc, naRef* args, naRef locals)
 
 naRef FGNasalSys::callMethod(naRef code, naRef self, int argc, naRef* args, naRef locals)
 {
-    naContext ctx = naNewContext();
-    if(_callCount) naModUnlock();
-    _callCount++;
-    naRef result = naCall(ctx, code, argc, args, self, locals);
-    if(naGetError(ctx))
-        logError(ctx);
-    _callCount--;
-    if(_callCount) naModLock();
-    naFreeContext(ctx);
-    return result;
+  return naCallMethod(code, self, argc, args, locals);
 }
 
 FGNasalSys::~FGNasalSys()
index 692cb3c7795b7a7d52af5b0f99915d3a59dc0ef6..b5b3d00d4c65b2827ecb923710d040a55f744931 100644 (file)
@@ -162,7 +162,7 @@ private:
     void loadPropertyScripts(SGPropertyNode* n);
     void loadScriptDirectory(simgear::Dir nasalDir);
     void addModule(std::string moduleName, simgear::PathList scripts);
-    void logError(naContext);
+    static void logError(naContext);
     naRef parse(const char* filename, const char* buf, int len);
     naRef genPropsModule();
 
@@ -172,8 +172,6 @@ private:
 
     SGPropertyNode_ptr _cmdArg;
 
-    int _callCount;
-
     simgear::BufferedLogCallback* _log;
 public:
     void handleTimer(NasalTimer* t);