void ApplicationManager::loadProperties() { G_FILE* fis = g_fopen("properties.bin", "rb"); g_fseek(fis, 0, SEEK_END); int len = g_ftell(fis); g_fseek(fis, 0, SEEK_SET); std::vector<char> buf(len); g_fread(&buf[0], 1, len, fis); g_fclose(fis); ByteBuffer buffer(&buf[0], buf.size()); buffer >> properties_.scaleMode; buffer >> properties_.logicalWidth; buffer >> properties_.logicalHeight; int scaleCount; buffer >> scaleCount; properties_.imageScales.resize(scaleCount); for (int i = 0; i < scaleCount; ++i) { buffer >> properties_.imageScales[i].first; buffer >> properties_.imageScales[i].second; } buffer >> properties_.orientation; buffer >> properties_.fps; buffer >> properties_.retinaDisplay; buffer >> properties_.autorotation; buffer >> properties_.mouseToTouch; buffer >> properties_.touchToMouse; buffer >> properties_.mouseTouchOrder; application_->setResolution(width_, height_); application_->setOrientation((Orientation)properties_.orientation); updateHardwareOrientation(); application_->getApplication()->setDeviceOrientation(deviceOrientation_); application_->setLogicalDimensions(properties_.logicalWidth, properties_.logicalHeight); application_->setLogicalScaleMode((LogicalScaleMode)properties_.scaleMode); application_->setImageScales(properties_.imageScales); g_setFps(properties_.fps); ginput_setMouseToTouchEnabled(properties_.mouseToTouch); ginput_setTouchToMouseEnabled(properties_.touchToMouse); ginput_setMouseTouchOrder(properties_.mouseTouchOrder); }
int ApplicationBinder::setFps(lua_State* L) { Binder binder(L); (void)binder.getInstance("Application", 1); LuaApplication* application = static_cast<LuaApplication*>(luaL_getdata(L)); int fps = luaL_checkinteger(L, 2); if (fps != 30 && fps != 60 && fps != -30 && fps != -60) { GStatus status(2008, "fps"); // Parameter %s must be one of the accepted values. return luaL_error(L, status.errorString()); } g_setFps(fps); return 0; }