Edit

kc3-lang/angle/samples/sample_util/SampleApplication.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2019-09-25 18:29:28
    Hash : 57b37b6b
    Message : Rename util/system_utils to util/test_utils. This removes a GN naming conflict between util/system_utils and common/system_utils. This conflict was preventing us from adding unit tests to utils' version of system_utils. Since these functions are only useful to tests and samples rename them test_utils for simplicity. Will enable further development of ANGLE's standalone testing harness. Bug: angleproject:3162 Change-Id: I9e34fb69f96c5de6dc2453fce4148a0f285e15ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1825268 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>

  • samples/sample_util/SampleApplication.h
  • //
    // Copyright 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 "common/system_utils.h"
    #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,
                          uint32_t width          = 1280,
                          uint32_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;
        uint32_t mWidth;
        uint32_t mHeight;
        bool mRunning;
    
        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