diff --git a/get_image.cpp b/get_image.cpp index bddf172..0fa5ed3 100644 --- a/get_image.cpp +++ b/get_image.cpp @@ -327,6 +327,22 @@ int setUniforms(const GLuint& program, const std::string& fragment_shader) { return EXIT_SUCCESS; } +class TerminateEGLAtExit{ + EGLDisplay display; + + public: + TerminateEGLAtExit(EGLDisplay); + ~TerminateEGLAtExit(); +}; + +TerminateEGLAtExit::TerminateEGLAtExit(EGLDisplay display){ + this->display = display; +} + +TerminateEGLAtExit::~TerminateEGLAtExit(){ + auto succeeded = eglTerminate(this->display); + assert(succeeded); +} /*---------------------------------------------------------------------------*/ int main(int argc, char* argv[]) { @@ -349,6 +365,8 @@ int main(int argc, char* argv[]) { return EXIT_FAILURE; } + TerminateEGLAtExit cleanup_display = display; + bool persist = false; bool animate = false; bool exit_compile = false;