浏览代码

mac fixes

/siyaoH-1.17-PlatformMessage
xingwei.zhu 4 年前
当前提交
ca949ede
共有 3 个文件被更改,包括 16 次插入5 次删除
  1. 4
      com.unity.uiwidgets/Runtime/services/asset_bundle.cs
  2. 3
      engine/src/shell/platform/unity/darwin/macos/uiwidgets_system.h
  3. 14
      engine/src/shell/platform/unity/darwin/macos/uiwidgets_system.mm

4
com.unity.uiwidgets/Runtime/services/asset_bundle.cs


var completer = Completer.create();
var isolate = Isolate.current;
var panel =UIWidgetsPanelWrapper.current.window;
panel.startCoroutine(_loadCoroutine(key, completer, isolate));
if (panel.isActive()) {
panel.startCoroutine(_loadCoroutine(key, completer, isolate));
}
return completer.future.to<byte[]>();
}

3
engine/src/shell/platform/unity/darwin/macos/uiwidgets_system.h


#include <cstdarg>
#include <set>
#include <unordered_map>
#include <mutex>
#include "Unity/IUnityInterface.h"
#include "Unity/IUnityUIWidgets.h"

TimePoint next_uiwidgets_event_time_ = TimePoint::clock::now();
std::set<UIWidgetsPanel*> uiwidgets_panels_;
std::mutex task_mutex_;
};
} // namespace uiwidgets

14
engine/src/shell/platform/unity/darwin/macos/uiwidgets_system.mm


void UIWidgetsSystem::GfxWorkerCallback(int eventId, void* data) {
const fml::closure task(std::move(gfx_worker_tasks_[eventId]));
gfx_worker_tasks_.erase(eventId);
{
std::scoped_lock lock(task_mutex_);
gfx_worker_tasks_.erase(eventId);
}
last_task_id_++;
gfx_worker_tasks_[last_task_id_] = task;
{
std::scoped_lock lock(task_mutex_);
last_task_id_++;
gfx_worker_tasks_[last_task_id_] = task;
}
unity_uiwidgets_->IssuePluginEventAndData(&_GfxWorkerCallback, last_task_id_,
nullptr);
}

正在加载...
取消
保存