修改底层渲染为OpenGL
This commit is contained in:
@@ -16,12 +16,59 @@ void Scene_MainUi::Enter()
|
||||
sq_call(v, 2, SQFalse, SQTrue);
|
||||
}
|
||||
sq_settop(v, top);
|
||||
|
||||
}
|
||||
|
||||
void Scene_MainUi::HandleEvents(SDL_Event *e)
|
||||
void Scene_MainUi::HandleEvents(SDL_Event *event)
|
||||
{
|
||||
Scene::HandleEvents(e);
|
||||
SQInteger EventType = -1;
|
||||
std::vector<SQInteger> EventData;
|
||||
switch (event->type)
|
||||
{
|
||||
// 鼠标移动
|
||||
case SDL_MOUSEMOTION:
|
||||
{
|
||||
EventType = 0;
|
||||
EventData.push_back(event->motion.x);
|
||||
EventData.push_back(event->motion.y);
|
||||
break;
|
||||
}
|
||||
// 鼠标按键按下
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
{
|
||||
EventType = 1;
|
||||
EventData.push_back(event->button.button);
|
||||
break;
|
||||
}
|
||||
// 鼠标按键释放
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
{
|
||||
EventType = 2;
|
||||
EventData.push_back(event->button.button);
|
||||
break;
|
||||
}
|
||||
// 鼠标滚轮
|
||||
case SDL_MOUSEWHEEL:
|
||||
{
|
||||
EventType = 3;
|
||||
EventData.push_back(event->wheel.y);
|
||||
break;
|
||||
}
|
||||
// 键盘按键按下
|
||||
case SDL_KEYDOWN:
|
||||
{
|
||||
EventType = 4;
|
||||
EventData.push_back(event->key.keysym.sym);
|
||||
break;
|
||||
}
|
||||
// 键盘按键释放
|
||||
case SDL_KEYUP:
|
||||
{
|
||||
EventType = 5;
|
||||
EventData.push_back(event->key.keysym.sym);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HSQUIRRELVM v = SquirrelEx::GetInstance().GetSquirrelVM();
|
||||
SQInteger top = sq_gettop(v);
|
||||
sq_pushroottable(v);
|
||||
@@ -29,8 +76,14 @@ void Scene_MainUi::HandleEvents(SDL_Event *e)
|
||||
if (SQ_SUCCEEDED(sq_get(v, -2)))
|
||||
{
|
||||
sq_pushroottable(v);
|
||||
sq_pushinteger(v, 1);
|
||||
sq_call(v, 2, SQFalse, SQTrue);
|
||||
sq_pushinteger(v, EventType);
|
||||
sq_newarray(v, 0);
|
||||
for (SQInteger i = 0; i < EventData.size(); i++)
|
||||
{
|
||||
sq_pushinteger(v, EventData[i]);
|
||||
sq_arrayappend(v, -2);
|
||||
}
|
||||
sq_call(v, 3, SQFalse, SQTrue);
|
||||
}
|
||||
sq_settop(v, top);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user