public void End()
 {
     if (internalId == -1 || !beginWasCalled)
     {
         return;
     }
     beginWasCalled = false;
     GL.IssuePluginEvent(D3D11PluginsNative.GetEndTimerEventFunction(), internalId);
 }
 public void Begin()
 {
     if (internalId == -1 || beginWasCalled)
     {
         return;
     }
     beginWasCalled = true;
     GL.IssuePluginEvent(D3D11PluginsNative.GetBeginTimerEventFunction(), internalId);
 }
 private void LateUpdate()
 {
     GL.IssuePluginEvent(D3D11PluginsNative.GetEndFrameEventFunction(), 0);
     while (timerCreateQueue.Count > 0)
     {
         var timer = timerCreateQueue.Dequeue();
         timer.internalId = D3D11PluginsNative.CreateTimer();
     }
     GL.IssuePluginEvent(D3D11PluginsNative.GetBeginFrameEventFunction(), 0);
 }
 private void OnDestroy()
 {
     D3D11PluginsNative.ReleaseTimers();
 }