1 // 2 // Copyright (c) 2015 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // ImageImpl.h: Defines the rx::ImageImpl class representing the EGLimage object. 8 9 #ifndef LIBANGLE_RENDERER_IMAGEIMPL_H_ 10 #define LIBANGLE_RENDERER_IMAGEIMPL_H_ 11 12 #include "common/angleutils.h" 13 #include "libANGLE/Error.h" 14 15 namespace gl 16 { 17 class Context; 18 } // namespace gl 19 20 namespace egl 21 { 22 class ImageSibling; 23 struct ImageState; 24 } // namespace egl 25 26 namespace rx 27 { 28 class ImageImpl : angle::NonCopyable 29 { 30 public: ImageImpl(const egl::ImageState & state)31 ImageImpl(const egl::ImageState &state) : mState(state) {} ~ImageImpl()32 virtual ~ImageImpl() {} 33 virtual egl::Error initialize() = 0; 34 35 virtual gl::Error orphan(const gl::Context *context, egl::ImageSibling *sibling) = 0; 36 37 protected: 38 const egl::ImageState &mState; 39 }; 40 } // namespace rx 41 42 #endif // LIBANGLE_RENDERER_IMAGEIMPL_H_ 43