#pragma once #include "OpenGLESPage.g.h" namespace cpp_tests { public ref class OpenGLESPage sealed { public: OpenGLESPage(); virtual ~OpenGLESPage(); internal: OpenGLESPage(OpenGLES* openGLES); private: void OnPageLoaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args); void OnSwapChainPanelSizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e); void GetSwapChainPanelSize(GLsizei* width, GLsizei* height); void CreateRenderSurface(); void DestroyRenderSurface(); void RecoverFromLostDevice(); void StartRenderLoop(); void StopRenderLoop(); OpenGLES* mOpenGLES; Windows::Foundation::Size mSwapChainPanelSize; Concurrency::critical_section mSwapChainPanelSizeCriticalSection; Windows::Foundation::Size mCustomRenderSurfaceSize; bool mUseCustomRenderSurfaceSize; EGLSurface mRenderSurface; // This surface is associated with a swapChainPanel on the page Concurrency::critical_section mRenderSurfaceCriticalSection; Windows::Foundation::IAsyncAction^ mRenderLoopWorker; }; }