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