aboutsummaryrefslogtreecommitdiffstats
path: root/support/hololens/OpenGLESPage.xaml.h
blob: ab2c8c2fd805437e13943e22d2d232978367ca09 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#pragma once

#include "OpenGLES.h"
#include "OpenGLESPage.g.h"
#include "Servo.h"

namespace hlservo {
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 CreateRenderSurface();
    void DestroyRenderSurface();
    void RecoverFromLostDevice();
    void StartRenderLoop();
    void StopRenderLoop();

    OpenGLES* mOpenGLES;

    EGLSurface mRenderSurface;
    Concurrency::critical_section mRenderSurfaceCriticalSection;
    Windows::Foundation::IAsyncAction ^ mRenderLoopWorker;
    Servo* mServo;
};
}