• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2016 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 // SurfaceOzone.cpp: Ozone implementation of egl::SurfaceGL
8 
9 #include "libANGLE/renderer/gl/egl/ozone/SurfaceOzone.h"
10 
11 #include "libANGLE/renderer/gl/FramebufferGL.h"
12 #include "libANGLE/renderer/gl/egl/ozone/DisplayOzone.h"
13 
14 namespace rx
15 {
16 
SurfaceOzone(const egl::SurfaceState & state,DisplayOzone::Buffer * buffer)17 SurfaceOzone::SurfaceOzone(const egl::SurfaceState &state, DisplayOzone::Buffer *buffer)
18     : SurfaceGL(state), mBuffer(buffer)
19 {}
20 
~SurfaceOzone()21 SurfaceOzone::~SurfaceOzone()
22 {
23     delete mBuffer;
24 }
25 
initialize(const egl::Display * display)26 egl::Error SurfaceOzone::initialize(const egl::Display *display)
27 {
28     return egl::NoError();
29 }
30 
createDefaultFramebuffer(const gl::Context * context,const gl::FramebufferState & state)31 FramebufferImpl *SurfaceOzone::createDefaultFramebuffer(const gl::Context *context,
32                                                         const gl::FramebufferState &state)
33 {
34     return mBuffer->framebufferGL(context, state);
35 }
36 
makeCurrent(const gl::Context * context)37 egl::Error SurfaceOzone::makeCurrent(const gl::Context *context)
38 {
39     return egl::NoError();
40 }
41 
swap(const gl::Context * context)42 egl::Error SurfaceOzone::swap(const gl::Context *context)
43 {
44     mBuffer->present(context);
45     return egl::NoError();
46 }
47 
postSubBuffer(const gl::Context * context,EGLint x,EGLint y,EGLint width,EGLint height)48 egl::Error SurfaceOzone::postSubBuffer(const gl::Context *context,
49                                        EGLint x,
50                                        EGLint y,
51                                        EGLint width,
52                                        EGLint height)
53 {
54     UNIMPLEMENTED();
55     return egl::NoError();
56 }
57 
querySurfacePointerANGLE(EGLint attribute,void ** value)58 egl::Error SurfaceOzone::querySurfacePointerANGLE(EGLint attribute, void **value)
59 {
60     UNIMPLEMENTED();
61     return egl::NoError();
62 }
63 
bindTexImage(const gl::Context * context,gl::Texture * texture,EGLint buffer)64 egl::Error SurfaceOzone::bindTexImage(const gl::Context *context,
65                                       gl::Texture *texture,
66                                       EGLint buffer)
67 {
68     mBuffer->bindTexImage();
69     return egl::NoError();
70 }
71 
releaseTexImage(const gl::Context * context,EGLint buffer)72 egl::Error SurfaceOzone::releaseTexImage(const gl::Context *context, EGLint buffer)
73 {
74     return egl::NoError();
75 }
76 
setSwapInterval(EGLint interval)77 void SurfaceOzone::setSwapInterval(EGLint interval)
78 {
79     mSwapControl.targetSwapInterval = interval;
80 }
81 
getWidth() const82 EGLint SurfaceOzone::getWidth() const
83 {
84     return mBuffer->getWidth();
85 }
86 
getHeight() const87 EGLint SurfaceOzone::getHeight() const
88 {
89     return mBuffer->getHeight();
90 }
91 
isPostSubBufferSupported() const92 EGLint SurfaceOzone::isPostSubBufferSupported() const
93 {
94     UNIMPLEMENTED();
95     return EGL_FALSE;
96 }
97 
getSwapBehavior() const98 EGLint SurfaceOzone::getSwapBehavior() const
99 {
100     return EGL_BUFFER_PRESERVED;
101 }
102 }  // namespace rx
103