1*35238bceSAndroid Build Coastguard Worker #ifndef _SGLRGLCONTEXT_HPP 2*35238bceSAndroid Build Coastguard Worker #define _SGLRGLCONTEXT_HPP 3*35238bceSAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker * drawElements Quality Program OpenGL ES Utilities 5*35238bceSAndroid Build Coastguard Worker * ------------------------------------------------ 6*35238bceSAndroid Build Coastguard Worker * 7*35238bceSAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project 8*35238bceSAndroid Build Coastguard Worker * 9*35238bceSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 10*35238bceSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 11*35238bceSAndroid Build Coastguard Worker * You may obtain a copy of the License at 12*35238bceSAndroid Build Coastguard Worker * 13*35238bceSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 14*35238bceSAndroid Build Coastguard Worker * 15*35238bceSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 16*35238bceSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 17*35238bceSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18*35238bceSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 19*35238bceSAndroid Build Coastguard Worker * limitations under the License. 20*35238bceSAndroid Build Coastguard Worker * 21*35238bceSAndroid Build Coastguard Worker *//*! 22*35238bceSAndroid Build Coastguard Worker * \file 23*35238bceSAndroid Build Coastguard Worker * \brief GL Rendering Context. 24*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 25*35238bceSAndroid Build Coastguard Worker 26*35238bceSAndroid Build Coastguard Worker #include "tcuDefs.hpp" 27*35238bceSAndroid Build Coastguard Worker #include "sglrContext.hpp" 28*35238bceSAndroid Build Coastguard Worker #include "tcuTestLog.hpp" 29*35238bceSAndroid Build Coastguard Worker #include "tcuVector.hpp" 30*35238bceSAndroid Build Coastguard Worker #include "gluRenderContext.hpp" 31*35238bceSAndroid Build Coastguard Worker #include "gluShaderProgram.hpp" 32*35238bceSAndroid Build Coastguard Worker 33*35238bceSAndroid Build Coastguard Worker #include <set> 34*35238bceSAndroid Build Coastguard Worker #include <vector> 35*35238bceSAndroid Build Coastguard Worker 36*35238bceSAndroid Build Coastguard Worker namespace glu 37*35238bceSAndroid Build Coastguard Worker { 38*35238bceSAndroid Build Coastguard Worker class CallLogWrapper; 39*35238bceSAndroid Build Coastguard Worker } 40*35238bceSAndroid Build Coastguard Worker 41*35238bceSAndroid Build Coastguard Worker namespace sglr 42*35238bceSAndroid Build Coastguard Worker { 43*35238bceSAndroid Build Coastguard Worker 44*35238bceSAndroid Build Coastguard Worker enum GLContextLogFlag 45*35238bceSAndroid Build Coastguard Worker { 46*35238bceSAndroid Build Coastguard Worker GLCONTEXT_LOG_CALLS = (1 << 0), 47*35238bceSAndroid Build Coastguard Worker GLCONTEXT_LOG_PROGRAMS = (1 << 1) 48*35238bceSAndroid Build Coastguard Worker }; 49*35238bceSAndroid Build Coastguard Worker 50*35238bceSAndroid Build Coastguard Worker class GLContext : public Context 51*35238bceSAndroid Build Coastguard Worker { 52*35238bceSAndroid Build Coastguard Worker public: 53*35238bceSAndroid Build Coastguard Worker GLContext(const glu::RenderContext &context, tcu::TestLog &log, uint32_t logFlags, const tcu::IVec4 &baseViewport); 54*35238bceSAndroid Build Coastguard Worker virtual ~GLContext(void); 55*35238bceSAndroid Build Coastguard Worker 56*35238bceSAndroid Build Coastguard Worker void enableLogging(uint32_t logFlags); 57*35238bceSAndroid Build Coastguard Worker 58*35238bceSAndroid Build Coastguard Worker virtual int getWidth(void) const; 59*35238bceSAndroid Build Coastguard Worker virtual int getHeight(void) const; 60*35238bceSAndroid Build Coastguard Worker 61*35238bceSAndroid Build Coastguard Worker virtual void viewport(int x, int y, int width, int height); 62*35238bceSAndroid Build Coastguard Worker virtual void activeTexture(uint32_t texture); 63*35238bceSAndroid Build Coastguard Worker 64*35238bceSAndroid Build Coastguard Worker virtual void bindTexture(uint32_t target, uint32_t texture); 65*35238bceSAndroid Build Coastguard Worker virtual void genTextures(int numTextures, uint32_t *textures); 66*35238bceSAndroid Build Coastguard Worker virtual void deleteTextures(int numTextures, const uint32_t *textures); 67*35238bceSAndroid Build Coastguard Worker 68*35238bceSAndroid Build Coastguard Worker virtual void bindFramebuffer(uint32_t target, uint32_t framebuffer); 69*35238bceSAndroid Build Coastguard Worker virtual void genFramebuffers(int numFramebuffers, uint32_t *framebuffers); 70*35238bceSAndroid Build Coastguard Worker virtual void deleteFramebuffers(int numFramebuffers, const uint32_t *framebuffers); 71*35238bceSAndroid Build Coastguard Worker 72*35238bceSAndroid Build Coastguard Worker virtual void bindRenderbuffer(uint32_t target, uint32_t renderbuffer); 73*35238bceSAndroid Build Coastguard Worker virtual void genRenderbuffers(int numRenderbuffers, uint32_t *renderbuffers); 74*35238bceSAndroid Build Coastguard Worker virtual void deleteRenderbuffers(int numRenderbuffers, const uint32_t *renderbuffers); 75*35238bceSAndroid Build Coastguard Worker 76*35238bceSAndroid Build Coastguard Worker virtual void pixelStorei(uint32_t pname, int param); 77*35238bceSAndroid Build Coastguard Worker virtual void texImage1D(uint32_t target, int level, uint32_t internalFormat, int width, int border, uint32_t format, 78*35238bceSAndroid Build Coastguard Worker uint32_t type, const void *data); 79*35238bceSAndroid Build Coastguard Worker virtual void texImage2D(uint32_t target, int level, uint32_t internalFormat, int width, int height, int border, 80*35238bceSAndroid Build Coastguard Worker uint32_t format, uint32_t type, const void *data); 81*35238bceSAndroid Build Coastguard Worker virtual void texImage3D(uint32_t target, int level, uint32_t internalFormat, int width, int height, int depth, 82*35238bceSAndroid Build Coastguard Worker int border, uint32_t format, uint32_t type, const void *data); 83*35238bceSAndroid Build Coastguard Worker virtual void texSubImage1D(uint32_t target, int level, int xoffset, int width, uint32_t format, uint32_t type, 84*35238bceSAndroid Build Coastguard Worker const void *data); 85*35238bceSAndroid Build Coastguard Worker virtual void texSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int width, int height, 86*35238bceSAndroid Build Coastguard Worker uint32_t format, uint32_t type, const void *data); 87*35238bceSAndroid Build Coastguard Worker virtual void texSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int width, int height, 88*35238bceSAndroid Build Coastguard Worker int depth, uint32_t format, uint32_t type, const void *data); 89*35238bceSAndroid Build Coastguard Worker virtual void copyTexImage1D(uint32_t target, int level, uint32_t internalFormat, int x, int y, int width, 90*35238bceSAndroid Build Coastguard Worker int border); 91*35238bceSAndroid Build Coastguard Worker virtual void copyTexImage2D(uint32_t target, int level, uint32_t internalFormat, int x, int y, int width, 92*35238bceSAndroid Build Coastguard Worker int height, int border); 93*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage1D(uint32_t target, int level, int xoffset, int x, int y, int width); 94*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int x, int y, int width, 95*35238bceSAndroid Build Coastguard Worker int height); 96*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int x, int y, 97*35238bceSAndroid Build Coastguard Worker int width, int height); 98*35238bceSAndroid Build Coastguard Worker 99*35238bceSAndroid Build Coastguard Worker virtual void texStorage2D(uint32_t target, int levels, uint32_t internalFormat, int width, int height); 100*35238bceSAndroid Build Coastguard Worker virtual void texStorage3D(uint32_t target, int levels, uint32_t internalFormat, int width, int height, int depth); 101*35238bceSAndroid Build Coastguard Worker 102*35238bceSAndroid Build Coastguard Worker virtual void texParameteri(uint32_t target, uint32_t pname, int value); 103*35238bceSAndroid Build Coastguard Worker 104*35238bceSAndroid Build Coastguard Worker virtual void framebufferTexture2D(uint32_t target, uint32_t attachment, uint32_t textarget, uint32_t texture, 105*35238bceSAndroid Build Coastguard Worker int level); 106*35238bceSAndroid Build Coastguard Worker virtual void framebufferTextureLayer(uint32_t target, uint32_t attachment, uint32_t texture, int level, int layer); 107*35238bceSAndroid Build Coastguard Worker virtual void framebufferRenderbuffer(uint32_t target, uint32_t attachment, uint32_t renderbuffertarget, 108*35238bceSAndroid Build Coastguard Worker uint32_t renderbuffer); 109*35238bceSAndroid Build Coastguard Worker virtual uint32_t checkFramebufferStatus(uint32_t target); 110*35238bceSAndroid Build Coastguard Worker 111*35238bceSAndroid Build Coastguard Worker virtual void getFramebufferAttachmentParameteriv(uint32_t target, uint32_t attachment, uint32_t pname, int *params); 112*35238bceSAndroid Build Coastguard Worker 113*35238bceSAndroid Build Coastguard Worker virtual void renderbufferStorage(uint32_t target, uint32_t internalformat, int width, int height); 114*35238bceSAndroid Build Coastguard Worker virtual void renderbufferStorageMultisample(uint32_t target, int samples, uint32_t internalFormat, int width, 115*35238bceSAndroid Build Coastguard Worker int height); 116*35238bceSAndroid Build Coastguard Worker 117*35238bceSAndroid Build Coastguard Worker virtual void bindBuffer(uint32_t target, uint32_t buffer); 118*35238bceSAndroid Build Coastguard Worker virtual void genBuffers(int numBuffers, uint32_t *buffers); 119*35238bceSAndroid Build Coastguard Worker virtual void deleteBuffers(int numBuffers, const uint32_t *buffers); 120*35238bceSAndroid Build Coastguard Worker 121*35238bceSAndroid Build Coastguard Worker virtual void bufferData(uint32_t target, intptr_t size, const void *data, uint32_t usage); 122*35238bceSAndroid Build Coastguard Worker virtual void bufferSubData(uint32_t target, intptr_t offset, intptr_t size, const void *data); 123*35238bceSAndroid Build Coastguard Worker 124*35238bceSAndroid Build Coastguard Worker virtual void clearColor(float red, float green, float blue, float alpha); 125*35238bceSAndroid Build Coastguard Worker virtual void clearDepthf(float depth); 126*35238bceSAndroid Build Coastguard Worker virtual void clearStencil(int stencil); 127*35238bceSAndroid Build Coastguard Worker 128*35238bceSAndroid Build Coastguard Worker virtual void clear(uint32_t buffers); 129*35238bceSAndroid Build Coastguard Worker virtual void clearBufferiv(uint32_t buffer, int drawbuffer, const int *value); 130*35238bceSAndroid Build Coastguard Worker virtual void clearBufferfv(uint32_t buffer, int drawbuffer, const float *value); 131*35238bceSAndroid Build Coastguard Worker virtual void clearBufferuiv(uint32_t buffer, int drawbuffer, const uint32_t *value); 132*35238bceSAndroid Build Coastguard Worker virtual void clearBufferfi(uint32_t buffer, int drawbuffer, float depth, int stencil); 133*35238bceSAndroid Build Coastguard Worker virtual void scissor(int x, int y, int width, int height); 134*35238bceSAndroid Build Coastguard Worker 135*35238bceSAndroid Build Coastguard Worker virtual void enable(uint32_t cap); 136*35238bceSAndroid Build Coastguard Worker virtual void disable(uint32_t cap); 137*35238bceSAndroid Build Coastguard Worker 138*35238bceSAndroid Build Coastguard Worker virtual void stencilFunc(uint32_t func, int ref, uint32_t mask); 139*35238bceSAndroid Build Coastguard Worker virtual void stencilOp(uint32_t sfail, uint32_t dpfail, uint32_t dppass); 140*35238bceSAndroid Build Coastguard Worker virtual void stencilFuncSeparate(uint32_t face, uint32_t func, int ref, uint32_t mask); 141*35238bceSAndroid Build Coastguard Worker virtual void stencilOpSeparate(uint32_t face, uint32_t sfail, uint32_t dpfail, uint32_t dppass); 142*35238bceSAndroid Build Coastguard Worker 143*35238bceSAndroid Build Coastguard Worker virtual void depthFunc(uint32_t func); 144*35238bceSAndroid Build Coastguard Worker virtual void depthRangef(float n, float f); 145*35238bceSAndroid Build Coastguard Worker virtual void depthRange(double n, double f); 146*35238bceSAndroid Build Coastguard Worker 147*35238bceSAndroid Build Coastguard Worker virtual void polygonOffset(float factor, float units); 148*35238bceSAndroid Build Coastguard Worker virtual void provokingVertex(uint32_t convention); 149*35238bceSAndroid Build Coastguard Worker virtual void primitiveRestartIndex(uint32_t index); 150*35238bceSAndroid Build Coastguard Worker 151*35238bceSAndroid Build Coastguard Worker virtual void blendEquation(uint32_t mode); 152*35238bceSAndroid Build Coastguard Worker virtual void blendEquationSeparate(uint32_t modeRGB, uint32_t modeAlpha); 153*35238bceSAndroid Build Coastguard Worker virtual void blendFunc(uint32_t src, uint32_t dst); 154*35238bceSAndroid Build Coastguard Worker virtual void blendFuncSeparate(uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha); 155*35238bceSAndroid Build Coastguard Worker virtual void blendColor(float red, float green, float blue, float alpha); 156*35238bceSAndroid Build Coastguard Worker 157*35238bceSAndroid Build Coastguard Worker virtual void colorMask(bool r, bool g, bool b, bool a); 158*35238bceSAndroid Build Coastguard Worker virtual void depthMask(bool mask); 159*35238bceSAndroid Build Coastguard Worker virtual void stencilMask(uint32_t mask); 160*35238bceSAndroid Build Coastguard Worker virtual void stencilMaskSeparate(uint32_t face, uint32_t mask); 161*35238bceSAndroid Build Coastguard Worker 162*35238bceSAndroid Build Coastguard Worker virtual void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, 163*35238bceSAndroid Build Coastguard Worker uint32_t mask, uint32_t filter); 164*35238bceSAndroid Build Coastguard Worker 165*35238bceSAndroid Build Coastguard Worker virtual void invalidateSubFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments, int x, 166*35238bceSAndroid Build Coastguard Worker int y, int width, int height); 167*35238bceSAndroid Build Coastguard Worker virtual void invalidateFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments); 168*35238bceSAndroid Build Coastguard Worker 169*35238bceSAndroid Build Coastguard Worker virtual void bindVertexArray(uint32_t array); 170*35238bceSAndroid Build Coastguard Worker virtual void genVertexArrays(int numArrays, uint32_t *vertexArrays); 171*35238bceSAndroid Build Coastguard Worker virtual void deleteVertexArrays(int numArrays, const uint32_t *vertexArrays); 172*35238bceSAndroid Build Coastguard Worker 173*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribPointer(uint32_t index, int size, uint32_t type, bool normalized, int stride, 174*35238bceSAndroid Build Coastguard Worker const void *pointer); 175*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribIPointer(uint32_t index, int size, uint32_t type, int stride, const void *pointer); 176*35238bceSAndroid Build Coastguard Worker virtual void enableVertexAttribArray(uint32_t index); 177*35238bceSAndroid Build Coastguard Worker virtual void disableVertexAttribArray(uint32_t index); 178*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribDivisor(uint32_t index, uint32_t divisor); 179*35238bceSAndroid Build Coastguard Worker 180*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib1f(uint32_t index, float); 181*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib2f(uint32_t index, float, float); 182*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib3f(uint32_t index, float, float, float); 183*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib4f(uint32_t index, float, float, float, float); 184*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribI4i(uint32_t index, int32_t, int32_t, int32_t, int32_t); 185*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribI4ui(uint32_t index, uint32_t, uint32_t, uint32_t, uint32_t); 186*35238bceSAndroid Build Coastguard Worker 187*35238bceSAndroid Build Coastguard Worker virtual int32_t getAttribLocation(uint32_t program, const char *name); 188*35238bceSAndroid Build Coastguard Worker 189*35238bceSAndroid Build Coastguard Worker virtual void uniform1f(int32_t location, float); 190*35238bceSAndroid Build Coastguard Worker virtual void uniform1i(int32_t location, int32_t); 191*35238bceSAndroid Build Coastguard Worker virtual void uniform1fv(int32_t index, int32_t count, const float *); 192*35238bceSAndroid Build Coastguard Worker virtual void uniform2fv(int32_t index, int32_t count, const float *); 193*35238bceSAndroid Build Coastguard Worker virtual void uniform3fv(int32_t index, int32_t count, const float *); 194*35238bceSAndroid Build Coastguard Worker virtual void uniform4fv(int32_t index, int32_t count, const float *); 195*35238bceSAndroid Build Coastguard Worker virtual void uniform1iv(int32_t index, int32_t count, const int32_t *); 196*35238bceSAndroid Build Coastguard Worker virtual void uniform2iv(int32_t index, int32_t count, const int32_t *); 197*35238bceSAndroid Build Coastguard Worker virtual void uniform3iv(int32_t index, int32_t count, const int32_t *); 198*35238bceSAndroid Build Coastguard Worker virtual void uniform4iv(int32_t index, int32_t count, const int32_t *); 199*35238bceSAndroid Build Coastguard Worker virtual void uniformMatrix3fv(int32_t location, int32_t count, bool transpose, const float *value); 200*35238bceSAndroid Build Coastguard Worker virtual void uniformMatrix4fv(int32_t location, int32_t count, bool transpose, const float *value); 201*35238bceSAndroid Build Coastguard Worker virtual int32_t getUniformLocation(uint32_t program, const char *name); 202*35238bceSAndroid Build Coastguard Worker 203*35238bceSAndroid Build Coastguard Worker virtual void lineWidth(float); 204*35238bceSAndroid Build Coastguard Worker 205*35238bceSAndroid Build Coastguard Worker virtual void drawArrays(uint32_t mode, int first, int count); 206*35238bceSAndroid Build Coastguard Worker virtual void drawArraysInstanced(uint32_t mode, int first, int count, int instanceCount); 207*35238bceSAndroid Build Coastguard Worker virtual void drawElements(uint32_t mode, int count, uint32_t type, const void *indices); 208*35238bceSAndroid Build Coastguard Worker virtual void drawElementsInstanced(uint32_t mode, int count, uint32_t type, const void *indices, int instanceCount); 209*35238bceSAndroid Build Coastguard Worker virtual void drawElementsBaseVertex(uint32_t mode, int count, uint32_t type, const void *indices, int baseVertex); 210*35238bceSAndroid Build Coastguard Worker virtual void drawElementsInstancedBaseVertex(uint32_t mode, int count, uint32_t type, const void *indices, 211*35238bceSAndroid Build Coastguard Worker int instanceCount, int baseVertex); 212*35238bceSAndroid Build Coastguard Worker virtual void drawRangeElements(uint32_t mode, uint32_t start, uint32_t end, int count, uint32_t type, 213*35238bceSAndroid Build Coastguard Worker const void *indices); 214*35238bceSAndroid Build Coastguard Worker virtual void drawRangeElementsBaseVertex(uint32_t mode, uint32_t start, uint32_t end, int count, uint32_t type, 215*35238bceSAndroid Build Coastguard Worker const void *indices, int baseVertex); 216*35238bceSAndroid Build Coastguard Worker virtual void drawArraysIndirect(uint32_t mode, const void *indirect); 217*35238bceSAndroid Build Coastguard Worker virtual void drawElementsIndirect(uint32_t mode, uint32_t type, const void *indirect); 218*35238bceSAndroid Build Coastguard Worker 219*35238bceSAndroid Build Coastguard Worker virtual void multiDrawArrays(uint32_t mode, const int *first, const int *count, int primCount); 220*35238bceSAndroid Build Coastguard Worker virtual void multiDrawElements(uint32_t mode, const int *count, uint32_t type, const void **indices, int primCount); 221*35238bceSAndroid Build Coastguard Worker virtual void multiDrawElementsBaseVertex(uint32_t mode, const int *count, uint32_t type, const void **indices, 222*35238bceSAndroid Build Coastguard Worker int primCount, const int *baseVertex); 223*35238bceSAndroid Build Coastguard Worker 224*35238bceSAndroid Build Coastguard Worker virtual uint32_t createProgram(ShaderProgram *); 225*35238bceSAndroid Build Coastguard Worker virtual void deleteProgram(uint32_t program); 226*35238bceSAndroid Build Coastguard Worker virtual void useProgram(uint32_t program); 227*35238bceSAndroid Build Coastguard Worker 228*35238bceSAndroid Build Coastguard Worker virtual void readPixels(int x, int y, int width, int height, uint32_t format, uint32_t type, void *data); 229*35238bceSAndroid Build Coastguard Worker virtual uint32_t getError(void); 230*35238bceSAndroid Build Coastguard Worker virtual void finish(void); 231*35238bceSAndroid Build Coastguard Worker 232*35238bceSAndroid Build Coastguard Worker virtual void getIntegerv(uint32_t pname, int *params); 233*35238bceSAndroid Build Coastguard Worker virtual const char *getString(uint32_t pname); 234*35238bceSAndroid Build Coastguard Worker 235*35238bceSAndroid Build Coastguard Worker // Expose helpers from Context. 236*35238bceSAndroid Build Coastguard Worker using Context::readPixels; 237*35238bceSAndroid Build Coastguard Worker using Context::texImage2D; 238*35238bceSAndroid Build Coastguard Worker using Context::texSubImage2D; 239*35238bceSAndroid Build Coastguard Worker 240*35238bceSAndroid Build Coastguard Worker private: 241*35238bceSAndroid Build Coastguard Worker GLContext(const GLContext &other); 242*35238bceSAndroid Build Coastguard Worker GLContext &operator=(const GLContext &other); 243*35238bceSAndroid Build Coastguard Worker 244*35238bceSAndroid Build Coastguard Worker tcu::IVec2 getReadOffset(void) const; 245*35238bceSAndroid Build Coastguard Worker tcu::IVec2 getDrawOffset(void) const; 246*35238bceSAndroid Build Coastguard Worker 247*35238bceSAndroid Build Coastguard Worker const glu::RenderContext &m_context; 248*35238bceSAndroid Build Coastguard Worker tcu::TestLog &m_log; 249*35238bceSAndroid Build Coastguard Worker 250*35238bceSAndroid Build Coastguard Worker uint32_t m_logFlags; 251*35238bceSAndroid Build Coastguard Worker tcu::IVec4 m_baseViewport; 252*35238bceSAndroid Build Coastguard Worker tcu::IVec4 m_curViewport; 253*35238bceSAndroid Build Coastguard Worker tcu::IVec4 m_curScissor; 254*35238bceSAndroid Build Coastguard Worker uint32_t m_readFramebufferBinding; 255*35238bceSAndroid Build Coastguard Worker uint32_t m_drawFramebufferBinding; 256*35238bceSAndroid Build Coastguard Worker 257*35238bceSAndroid Build Coastguard Worker glu::CallLogWrapper *m_wrapper; 258*35238bceSAndroid Build Coastguard Worker 259*35238bceSAndroid Build Coastguard Worker // For cleanup 260*35238bceSAndroid Build Coastguard Worker std::set<uint32_t> m_allocatedTextures; 261*35238bceSAndroid Build Coastguard Worker std::set<uint32_t> m_allocatedFbos; 262*35238bceSAndroid Build Coastguard Worker std::set<uint32_t> m_allocatedRbos; 263*35238bceSAndroid Build Coastguard Worker std::set<uint32_t> m_allocatedBuffers; 264*35238bceSAndroid Build Coastguard Worker std::set<uint32_t> m_allocatedVaos; 265*35238bceSAndroid Build Coastguard Worker std::vector<glu::ShaderProgram *> m_programs; 266*35238bceSAndroid Build Coastguard Worker } DE_WARN_UNUSED_TYPE; 267*35238bceSAndroid Build Coastguard Worker 268*35238bceSAndroid Build Coastguard Worker } // namespace sglr 269*35238bceSAndroid Build Coastguard Worker 270*35238bceSAndroid Build Coastguard Worker #endif // _SGLRGLCONTEXT_HPP 271