.. _program_listing_file_examples_miral-shell_spinner_miregl.h: Program Listing for File miregl.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``examples/miral-shell/spinner/miregl.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * Copyright © Canonical Ltd. * * This program is free software: you can redistribute it and/or modify * under the terms of the GNU General Public License version 2 or 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef UNITYSYSTEMCOMPOSITOR_MIREGL_H #define UNITYSYSTEMCOMPOSITOR_MIREGL_H #include "wayland_surface.h" #include #include #include class MirEglApp; class MirEglSurface; std::shared_ptr make_mir_eglapp(struct wl_display* display); std::vector> mir_surface_init(std::shared_ptr const& app); class MirEglSurface : WaylandSurface { public: MirEglSurface(std::shared_ptr const& mir_egl_app, struct wl_output* wl_output); ~MirEglSurface(); template void paint(Painter const& functor) { egl_make_current(); functor(width_, height_); swap_buffers(); } private: void egl_make_current(); void swap_buffers(); std::shared_ptr const mir_egl_app; EGLSurface eglsurface; int width_{0}; int height_{0}; }; #endif //UNITYSYSTEMCOMPOSITOR_MIREGL_H