| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "impeller/toolkit/egl/surface.h" |
| |
| namespace impeller { |
| namespace egl { |
| |
| Surface::Surface(EGLDisplay display, EGLSurface surface) |
| : display_(display), surface_(surface) {} |
| |
| Surface::~Surface() { |
| if (surface_ != EGL_NO_SURFACE) { |
| if (::eglDestroySurface(display_, surface_) != EGL_TRUE) { |
| IMPELLER_LOG_EGL_ERROR; |
| } |
| } |
| } |
| |
| const EGLSurface& Surface::GetHandle() const { |
| return surface_; |
| } |
| |
| bool Surface::IsValid() const { |
| return surface_ != EGL_NO_SURFACE; |
| } |
| |
| bool Surface::Present() const { |
| const auto result = ::eglSwapBuffers(display_, surface_) == EGL_TRUE; |
| if (!result) { |
| IMPELLER_LOG_EGL_ERROR; |
| } |
| return result; |
| } |
| |
| } // namespace egl |
| } // namespace impeller |