Hash :
3089f92e
Author :
Date :
2019-05-01T15:11:46
Move EGL Display config into EGLPlatformParameters. This CL moves all of the EGLDisplay configuration into an EGL platform struct. Consolidating display configuration in the struct allows us to move configuration out of the test constructor. Then when we filter test configs we don't need to wait for the individual test setup. Bug: angleproject:3393 Change-Id: I5bd06dcdc9f2867ebc43c1d4984077ada35cafc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574674 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
//
// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#ifndef SAMPLE_UTIL_SAMPLE_APPLICATION_H
#define SAMPLE_UTIL_SAMPLE_APPLICATION_H
#include <stdint.h>
#include <list>
#include <memory>
#include <string>
#include "util/EGLPlatformParameters.h"
#include "util/OSWindow.h"
#include "util/Timer.h"
#include "util/egl_loader_autogen.h"
class EGLWindow;
namespace angle
{
class Library;
} // namespace angle
class SampleApplication
{
public:
SampleApplication(std::string name,
int argc,
char **argv,
EGLint glesMajorVersion = 2,
EGLint glesMinorVersion = 0,
size_t width = 1280,
size_t height = 720);
virtual ~SampleApplication();
virtual bool initialize();
virtual void destroy();
virtual void step(float dt, double totalTime);
virtual void draw();
virtual void swap();
OSWindow *getWindow() const;
EGLConfig getConfig() const;
EGLDisplay getDisplay() const;
EGLSurface getSurface() const;
EGLContext getContext() const;
bool popEvent(Event *event);
int run();
void exit();
private:
std::string mName;
size_t mWidth;
size_t mHeight;
bool mRunning;
std::unique_ptr<Timer> mTimer;
EGLWindow *mEGLWindow;
OSWindow *mOSWindow;
EGLPlatformParameters mPlatformParams;
// Handle to the entry point binding library.
std::unique_ptr<angle::Library> mEntryPointsLib;
};
#endif // SAMPLE_UTIL_SAMPLE_APPLICATION_H