Sha256: ec30dbc09044f5cf384c473ef420bc851a4bc83f3eceee917694d0d105be8a86

Contents?: true

Size: 1.35 KB

Versions: 3

Compression:

Stored size: 1.35 KB

Contents

%{
  #include "Application.h"
%}

%feature("director") Application;

%rename("root") Application::getRoot;

%rename("camera") Application::getCamera;
%rename("camera=") Application::setCamera;

%rename("scene_manager") Application::getSceneManager;
%rename("scene_manager=") Application::setSceneManager;

%rename("frame_listener") Application::getFrameListener;
%rename("frame_listener=") Application::setFrameListener;

%rename("window") Application::getRenderWindow;
%rename("window=") Application::setRenderWindow;

// Ruby is GCing the user-defined Application parts, so we need to 
// manually mark them to keep it alive.
/*
%markfunc Application "mark_Application";

%header %{
  static void mark_Application(void* ptr) {
    Application* app = (Application*) ptr;

    // Manually mark each of the user-defined objects

    // Frame Listener
    VALUE obj = SWIG_RubyInstanceFor(app->getFrameListener());
    if (obj != Qnil) {
      rb_gc_mark(obj);
    }

    // Scene Manager
    obj = SWIG_RubyInstanceFor(app->getSceneManager());
    if (obj != Qnil) {
      rb_gc_mark(obj);
    }

    // Camera
    obj = SWIG_RubyInstanceFor(app->getCamera());
    if (obj != Qnil) {
      rb_gc_mark(obj);
    }
    
    // Render Window
    obj = SWIG_RubyInstanceFor(app->getRenderWindow());
    if (obj != Qnil) {
      rb_gc_mark(obj);
    }

  }
%}
*/
%include Application.h

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shattered_ogrerb-0.5.0.1 vendor/ogrerb/ogre/Application.i
shattered_ogrerb-0.5.0.2 vendor/ogrerb/ogre/Application.i
shattered_ogrerb-0.5.1 vendor/ogrerb/swig/ogre/Application.i