Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


#Actualslicer4ever

Posted 13 June 2013 - 10:14 AM

my problem is described in the generic handle documentation, but i don't know how to implement it.

this is basically what i do, each object is given an local pool of memory, the script can say how big that pool is. what i want to do, is create a struct, or class, with each script, get the size of the class, and tell my object to create a pool of memory for this class to occupy, then the script can request the pool, typecast it to the local class, and modify objects/memory in that pool directly.

it'd look like this:

c++ code:
 
class Obj{
private:
   char *m_Buffer;
public:
   void CreateBuffer(int size){
      m_Buffer = new char[size];
   }
   
   char *GetBuffer(void){ //i tried registering this as an ref object, with the scripthandler add-on.
      return m_Buffer;
   }

   //construct/destructors.
};
as script:
 
class Data{
   int x;
};

void Update(Obj @A){
   Data @D = cast<Data@>(A.GetBuffer());
   print("x: "+D.x);
}

void Initialize(Obj @A){
  A.CreateBuffer(sizeof(Data)); //is there anyway to get the size of an class?
  Data @D = cast<Data@>(A.GetBuffer());
  D.x = 0;
};
anywho, this causes angelscript to crash. any pointers on how to achieve this?

#1slicer4ever

Posted 13 June 2013 - 10:14 AM

my problem is described in the generic handle documentation, but i don't know how to implement it.

this is basically what i do, each object is given an local pool of memory, the script can say how big that pool is. what i want to do, is create a struct, or class, with each script, get the size of the class, and tell my object to create a pool of memory for this class to occupy, then the script can request the pool, typecast it to the local class, and modify objects/memory in that pool directly.

it'd look like this:

c++ code:

class Obj{
private:
   char *m_Buffer;
public:
   void CreateBuffer(int size){
      m_Buffer = new char[size];
   }
   
   char *GetBuffer(void){ //i tried registering this as an ref object, with the scripthandler add-on.
      return m_Buffer;
   }

   //construct/destructors.
};
as script:


class Data{
   int x;
};

void Update(Obj @A){
   Data @D = cast<Data@>(A.GetBuffer());
   print("x: "+D.x);
}

void Initialize(Obj @A){
  A.CreateBuffer(sizeof(Data));
  Data @D = cast<Data@>(A.GetBuffer());
  D.x = 0;
};
anywho, this causes angelscript to crash. any pointers on how to achieve this?

PARTNERS