游戏中心在EAGLEView中删除纹理

时间:2013-02-09 00:40:06

标签: c# xamarin.ios eaglview

我遇到了MonoTouch中Game Center集成的问题,游戏中心登录视图正在加载,但它正在删除当前加载的任何纹理。如果我注释掉PresentModalViewController行,那么游戏中心登录表单就不会出现,但是已经加载的纹理会留在内存中并且正常工作。我正在使用以下代码显示游戏中心视图:

    GKLocalPlayer.LocalPlayer.AuthenticateHandler = (ui, ErrorCode) =>
        {
            if (ui != null) {
                Debug.WriteLine ("GK Not authenticated, presenting login");
                PresentModalViewController (ui, true);
            } else {
                Debug.WriteLine ("GK Checking Authentication");
                bool authenticated = GKLocalPlayer.LocalPlayer.Authenticated;

                if (authenticated)
                    Debug.WriteLine ("Game Center Authenticated. " + GKLocalPlayer.LocalPlayer.DisplayName);
                else
                    Debug.WriteLine ("Game Center Not Authenticated. " +  GKLocalPlayer.LocalPlayer.PlayerID + " " + ErrorCode.ToString());
            }
        };

之前有没有人见过这个问题,如果有的话,显示游戏中心登录页面的解决方案是什么,但保留加载的纹理?

1 个答案:

答案 0 :(得分:0)

找到了这个问题的答案,它与MonoTouch OpenTK示例应用程序相关,建议在ViewWillDisappear事件中销毁渲染缓冲区,该事件在GameCentre窗口出现时发生。当Buffer被破坏时,纹理随之而来,因此这里的解决方案是不破坏ViewWillDisappear事件中的渲染缓冲区(并且随后不要在ViewWillAppear中重新创建它)。

相关问题