Working on using flat event data, instead of event objects

Conflicts:
	tools/ndll/Linux64/lime.ndll
This commit is contained in:
Joshua Granick
2014-06-17 16:56:34 -07:00
parent ab71449828
commit 82c52c44d4
29 changed files with 293 additions and 316 deletions

View File

@@ -27,7 +27,8 @@ namespace lime {
static void Dispatch (KeyEvent* event);
int code;
int keyCode;
int modifier;
KeyEventType type;
};

View File

@@ -38,7 +38,7 @@ namespace lime {
alloc_field (object, id_deltaTime, alloc_int (event->deltaTime));
//alloc_field (object, id_type, alloc_int (event->type));
val_call1 (UpdateEvent::callback->get (), object);
val_call0 (UpdateEvent::callback->get ());
}

View File

@@ -203,7 +203,7 @@ namespace lime {
}
keyEvent.code = event->key.keysym.sym;
keyEvent.keyCode = event->key.keysym.sym;
KeyEvent::Dispatch (&keyEvent);

View File

@@ -33,7 +33,7 @@ namespace lime {
//alloc_field (object, id_type, alloc_int (event->type));
val_call1 (RenderEvent::callback->get (), object);
val_call0 (RenderEvent::callback->get ());
}

View File

@@ -8,14 +8,16 @@ namespace lime {
AutoGCRoot* KeyEvent::callback = 0;
AutoGCRoot* KeyEvent::eventObject = 0;
static int id_code;
static int id_keyCode;
static int id_modifier;
static int id_type;
static bool init = false;
KeyEvent::KeyEvent () {
code = 0;
keyCode = 0;
modifier = 0;
type = KEY_DOWN;
}
@@ -27,7 +29,8 @@ namespace lime {
if (!init) {
id_code = val_id ("code");
id_keyCode = val_id ("keyCode");
id_modifier = val_id ("modifier");
id_type = val_id ("type");
init = true;
@@ -35,10 +38,11 @@ namespace lime {
value object = (KeyEvent::eventObject ? KeyEvent::eventObject->get () : alloc_empty_object ());
alloc_field (object, id_code, alloc_int (event->code));
alloc_field (object, id_keyCode, alloc_int (event->keyCode));
alloc_field (object, id_modifier, alloc_int (event->modifier));
alloc_field (object, id_type, alloc_int (event->type));
val_call1 (KeyEvent::callback->get (), object);
val_call0 (KeyEvent::callback->get ());
}

View File

@@ -19,8 +19,8 @@ namespace lime {
id = 0;
type = MOUSE_DOWN;
x = 0;
y = 0;
x = 0.0;
y = 0.0;
}
@@ -46,7 +46,7 @@ namespace lime {
alloc_field (object, id_x, alloc_float (event->x));
alloc_field (object, id_y, alloc_float (event->y));
val_call1 (MouseEvent::callback->get (), object);
val_call0 (MouseEvent::callback->get ());
}

View File

@@ -34,7 +34,7 @@ namespace lime {
alloc_field (object, id_type, alloc_int (event->type));
val_call1 (WindowEvent::callback->get (), object);
val_call0 (WindowEvent::callback->get ());
}