1*35238bceSAndroid Build Coastguard Worker #ifndef _SGLRCONTEXT_HPP 2*35238bceSAndroid Build Coastguard Worker #define _SGLRCONTEXT_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 Simplified GLES reference 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 "tcuSurface.hpp" 28*35238bceSAndroid Build Coastguard Worker #include "gluRenderContext.hpp" 29*35238bceSAndroid Build Coastguard Worker #include "sglrShaderProgram.hpp" 30*35238bceSAndroid Build Coastguard Worker 31*35238bceSAndroid Build Coastguard Worker /*--------------------------------------------------------------------*//*! 32*35238bceSAndroid Build Coastguard Worker * \brief Reference OpenGL API implementation 33*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 34*35238bceSAndroid Build Coastguard Worker namespace sglr 35*35238bceSAndroid Build Coastguard Worker { 36*35238bceSAndroid Build Coastguard Worker 37*35238bceSAndroid Build Coastguard Worker // Abstract drawing context with GL-style API 38*35238bceSAndroid Build Coastguard Worker 39*35238bceSAndroid Build Coastguard Worker class Context 40*35238bceSAndroid Build Coastguard Worker { 41*35238bceSAndroid Build Coastguard Worker public: Context(glu::ContextType type)42*35238bceSAndroid Build Coastguard Worker Context(glu::ContextType type) : m_type(type) 43*35238bceSAndroid Build Coastguard Worker { 44*35238bceSAndroid Build Coastguard Worker } ~Context(void)45*35238bceSAndroid Build Coastguard Worker virtual ~Context(void) 46*35238bceSAndroid Build Coastguard Worker { 47*35238bceSAndroid Build Coastguard Worker } 48*35238bceSAndroid Build Coastguard Worker 49*35238bceSAndroid Build Coastguard Worker virtual int getWidth(void) const = DE_NULL; 50*35238bceSAndroid Build Coastguard Worker virtual int getHeight(void) const = DE_NULL; 51*35238bceSAndroid Build Coastguard Worker 52*35238bceSAndroid Build Coastguard Worker virtual void activeTexture(uint32_t texture) = DE_NULL; 53*35238bceSAndroid Build Coastguard Worker virtual void viewport(int x, int y, int width, int height) = DE_NULL; 54*35238bceSAndroid Build Coastguard Worker 55*35238bceSAndroid Build Coastguard Worker virtual void bindTexture(uint32_t target, uint32_t texture) = DE_NULL; 56*35238bceSAndroid Build Coastguard Worker virtual void genTextures(int numTextures, uint32_t *textures) = DE_NULL; 57*35238bceSAndroid Build Coastguard Worker virtual void deleteTextures(int numTextures, const uint32_t *textures) = DE_NULL; 58*35238bceSAndroid Build Coastguard Worker 59*35238bceSAndroid Build Coastguard Worker virtual void bindFramebuffer(uint32_t target, uint32_t framebuffer) = DE_NULL; 60*35238bceSAndroid Build Coastguard Worker virtual void genFramebuffers(int numFramebuffers, uint32_t *framebuffers) = DE_NULL; 61*35238bceSAndroid Build Coastguard Worker virtual void deleteFramebuffers(int numFramebuffers, const uint32_t *framebuffers) = DE_NULL; 62*35238bceSAndroid Build Coastguard Worker 63*35238bceSAndroid Build Coastguard Worker virtual void bindRenderbuffer(uint32_t target, uint32_t renderbuffer) = DE_NULL; 64*35238bceSAndroid Build Coastguard Worker virtual void genRenderbuffers(int numRenderbuffers, uint32_t *renderbuffers) = DE_NULL; 65*35238bceSAndroid Build Coastguard Worker virtual void deleteRenderbuffers(int numRenderbuffers, const uint32_t *renderbuffers) = DE_NULL; 66*35238bceSAndroid Build Coastguard Worker 67*35238bceSAndroid Build Coastguard Worker virtual void pixelStorei(uint32_t pname, int param) = DE_NULL; 68*35238bceSAndroid Build Coastguard Worker virtual void texImage1D(uint32_t target, int level, uint32_t internalFormat, int width, int border, uint32_t format, 69*35238bceSAndroid Build Coastguard Worker uint32_t type, const void *data) = DE_NULL; 70*35238bceSAndroid Build Coastguard Worker virtual void texImage2D(uint32_t target, int level, uint32_t internalFormat, int width, int height, int border, 71*35238bceSAndroid Build Coastguard Worker uint32_t format, uint32_t type, const void *data) = DE_NULL; 72*35238bceSAndroid Build Coastguard Worker virtual void texImage3D(uint32_t target, int level, uint32_t internalFormat, int width, int height, int depth, 73*35238bceSAndroid Build Coastguard Worker int border, uint32_t format, uint32_t type, const void *data) = DE_NULL; 74*35238bceSAndroid Build Coastguard Worker virtual void texSubImage1D(uint32_t target, int level, int xoffset, int width, uint32_t format, uint32_t type, 75*35238bceSAndroid Build Coastguard Worker const void *data) = DE_NULL; 76*35238bceSAndroid Build Coastguard Worker virtual void texSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int width, int height, 77*35238bceSAndroid Build Coastguard Worker uint32_t format, uint32_t type, const void *data) = DE_NULL; 78*35238bceSAndroid Build Coastguard Worker virtual void texSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int width, int height, 79*35238bceSAndroid Build Coastguard Worker int depth, uint32_t format, uint32_t type, const void *data) = DE_NULL; 80*35238bceSAndroid Build Coastguard Worker virtual void copyTexImage1D(uint32_t target, int level, uint32_t internalFormat, int x, int y, int width, 81*35238bceSAndroid Build Coastguard Worker int border) = DE_NULL; 82*35238bceSAndroid Build Coastguard Worker virtual void copyTexImage2D(uint32_t target, int level, uint32_t internalFormat, int x, int y, int width, 83*35238bceSAndroid Build Coastguard Worker int height, int border) = DE_NULL; 84*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage1D(uint32_t target, int level, int xoffset, int x, int y, int width) = DE_NULL; 85*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage2D(uint32_t target, int level, int xoffset, int yoffset, int x, int y, int width, 86*35238bceSAndroid Build Coastguard Worker int height) = DE_NULL; 87*35238bceSAndroid Build Coastguard Worker virtual void copyTexSubImage3D(uint32_t target, int level, int xoffset, int yoffset, int zoffset, int x, int y, 88*35238bceSAndroid Build Coastguard Worker int width, int height) = DE_NULL; 89*35238bceSAndroid Build Coastguard Worker 90*35238bceSAndroid Build Coastguard Worker virtual void texStorage2D(uint32_t target, int levels, uint32_t internalFormat, int width, int height) = DE_NULL; 91*35238bceSAndroid Build Coastguard Worker virtual void texStorage3D(uint32_t target, int levels, uint32_t internalFormat, int width, int height, 92*35238bceSAndroid Build Coastguard Worker int depth) = DE_NULL; 93*35238bceSAndroid Build Coastguard Worker 94*35238bceSAndroid Build Coastguard Worker virtual void texParameteri(uint32_t target, uint32_t pname, int value) = DE_NULL; 95*35238bceSAndroid Build Coastguard Worker 96*35238bceSAndroid Build Coastguard Worker virtual void framebufferTexture2D(uint32_t target, uint32_t attachment, uint32_t textarget, uint32_t texture, 97*35238bceSAndroid Build Coastguard Worker int level) = DE_NULL; 98*35238bceSAndroid Build Coastguard Worker virtual void framebufferTextureLayer(uint32_t target, uint32_t attachment, uint32_t texture, int level, 99*35238bceSAndroid Build Coastguard Worker int layer) = DE_NULL; 100*35238bceSAndroid Build Coastguard Worker virtual void framebufferRenderbuffer(uint32_t target, uint32_t attachment, uint32_t renderbuffertarget, 101*35238bceSAndroid Build Coastguard Worker uint32_t renderbuffer) = DE_NULL; 102*35238bceSAndroid Build Coastguard Worker virtual uint32_t checkFramebufferStatus(uint32_t target) = DE_NULL; 103*35238bceSAndroid Build Coastguard Worker 104*35238bceSAndroid Build Coastguard Worker virtual void getFramebufferAttachmentParameteriv(uint32_t target, uint32_t attachment, uint32_t pname, 105*35238bceSAndroid Build Coastguard Worker int *params) = DE_NULL; 106*35238bceSAndroid Build Coastguard Worker 107*35238bceSAndroid Build Coastguard Worker virtual void renderbufferStorage(uint32_t target, uint32_t internalformat, int width, int height) = DE_NULL; 108*35238bceSAndroid Build Coastguard Worker virtual void renderbufferStorageMultisample(uint32_t target, int samples, uint32_t internalFormat, int width, 109*35238bceSAndroid Build Coastguard Worker int height) = DE_NULL; 110*35238bceSAndroid Build Coastguard Worker 111*35238bceSAndroid Build Coastguard Worker virtual void bindBuffer(uint32_t target, uint32_t buffer) = DE_NULL; 112*35238bceSAndroid Build Coastguard Worker virtual void genBuffers(int numBuffers, uint32_t *buffers) = DE_NULL; 113*35238bceSAndroid Build Coastguard Worker virtual void deleteBuffers(int numBuffers, const uint32_t *buffers) = DE_NULL; 114*35238bceSAndroid Build Coastguard Worker 115*35238bceSAndroid Build Coastguard Worker virtual void bufferData(uint32_t target, intptr_t size, const void *data, uint32_t usage) = DE_NULL; 116*35238bceSAndroid Build Coastguard Worker virtual void bufferSubData(uint32_t target, intptr_t offset, intptr_t size, const void *data) = DE_NULL; 117*35238bceSAndroid Build Coastguard Worker 118*35238bceSAndroid Build Coastguard Worker virtual void clearColor(float red, float green, float blue, float alpha) = DE_NULL; 119*35238bceSAndroid Build Coastguard Worker virtual void clearDepthf(float depth) = DE_NULL; 120*35238bceSAndroid Build Coastguard Worker virtual void clearStencil(int stencil) = DE_NULL; 121*35238bceSAndroid Build Coastguard Worker 122*35238bceSAndroid Build Coastguard Worker virtual void clear(uint32_t buffers) = DE_NULL; 123*35238bceSAndroid Build Coastguard Worker virtual void clearBufferiv(uint32_t buffer, int drawbuffer, const int *value) = DE_NULL; 124*35238bceSAndroid Build Coastguard Worker virtual void clearBufferfv(uint32_t buffer, int drawbuffer, const float *value) = DE_NULL; 125*35238bceSAndroid Build Coastguard Worker virtual void clearBufferuiv(uint32_t buffer, int drawbuffer, const uint32_t *value) = DE_NULL; 126*35238bceSAndroid Build Coastguard Worker virtual void clearBufferfi(uint32_t buffer, int drawbuffer, float depth, int stencil) = DE_NULL; 127*35238bceSAndroid Build Coastguard Worker virtual void scissor(int x, int y, int width, int height) = DE_NULL; 128*35238bceSAndroid Build Coastguard Worker 129*35238bceSAndroid Build Coastguard Worker virtual void enable(uint32_t cap) = DE_NULL; 130*35238bceSAndroid Build Coastguard Worker virtual void disable(uint32_t cap) = DE_NULL; 131*35238bceSAndroid Build Coastguard Worker 132*35238bceSAndroid Build Coastguard Worker virtual void stencilFunc(uint32_t func, int ref, uint32_t mask) = DE_NULL; 133*35238bceSAndroid Build Coastguard Worker virtual void stencilOp(uint32_t sfail, uint32_t dpfail, uint32_t dppass) = DE_NULL; 134*35238bceSAndroid Build Coastguard Worker virtual void stencilFuncSeparate(uint32_t face, uint32_t func, int ref, uint32_t mask) = DE_NULL; 135*35238bceSAndroid Build Coastguard Worker virtual void stencilOpSeparate(uint32_t face, uint32_t sfail, uint32_t dpfail, uint32_t dppass) = DE_NULL; 136*35238bceSAndroid Build Coastguard Worker 137*35238bceSAndroid Build Coastguard Worker virtual void depthFunc(uint32_t func) = DE_NULL; 138*35238bceSAndroid Build Coastguard Worker virtual void depthRangef(float n, float f) = DE_NULL; 139*35238bceSAndroid Build Coastguard Worker virtual void depthRange(double n, double f) = DE_NULL; 140*35238bceSAndroid Build Coastguard Worker 141*35238bceSAndroid Build Coastguard Worker virtual void polygonOffset(float factor, float units) = DE_NULL; 142*35238bceSAndroid Build Coastguard Worker virtual void provokingVertex(uint32_t convention) = DE_NULL; 143*35238bceSAndroid Build Coastguard Worker virtual void primitiveRestartIndex(uint32_t index) = DE_NULL; 144*35238bceSAndroid Build Coastguard Worker 145*35238bceSAndroid Build Coastguard Worker virtual void blendEquation(uint32_t mode) = DE_NULL; 146*35238bceSAndroid Build Coastguard Worker virtual void blendEquationSeparate(uint32_t modeRGB, uint32_t modeAlpha) = DE_NULL; 147*35238bceSAndroid Build Coastguard Worker virtual void blendFunc(uint32_t src, uint32_t dst) = DE_NULL; 148*35238bceSAndroid Build Coastguard Worker virtual void blendFuncSeparate(uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha) = DE_NULL; 149*35238bceSAndroid Build Coastguard Worker virtual void blendColor(float red, float green, float blue, float alpha) = DE_NULL; 150*35238bceSAndroid Build Coastguard Worker 151*35238bceSAndroid Build Coastguard Worker virtual void colorMask(bool r, bool g, bool b, bool a) = DE_NULL; 152*35238bceSAndroid Build Coastguard Worker virtual void depthMask(bool mask) = DE_NULL; 153*35238bceSAndroid Build Coastguard Worker virtual void stencilMask(uint32_t mask) = DE_NULL; 154*35238bceSAndroid Build Coastguard Worker virtual void stencilMaskSeparate(uint32_t face, uint32_t mask) = DE_NULL; 155*35238bceSAndroid Build Coastguard Worker 156*35238bceSAndroid Build Coastguard Worker virtual void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, 157*35238bceSAndroid Build Coastguard Worker uint32_t mask, uint32_t filter) = DE_NULL; 158*35238bceSAndroid Build Coastguard Worker 159*35238bceSAndroid Build Coastguard Worker virtual void invalidateSubFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments, int x, 160*35238bceSAndroid Build Coastguard Worker int y, int width, int height) = DE_NULL; 161*35238bceSAndroid Build Coastguard Worker virtual void invalidateFramebuffer(uint32_t target, int numAttachments, const uint32_t *attachments) = DE_NULL; 162*35238bceSAndroid Build Coastguard Worker 163*35238bceSAndroid Build Coastguard Worker virtual void bindVertexArray(uint32_t array) = DE_NULL; 164*35238bceSAndroid Build Coastguard Worker virtual void genVertexArrays(int numArrays, uint32_t *vertexArrays) = DE_NULL; 165*35238bceSAndroid Build Coastguard Worker virtual void deleteVertexArrays(int numArrays, const uint32_t *vertexArrays) = DE_NULL; 166*35238bceSAndroid Build Coastguard Worker 167*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribPointer(uint32_t index, int size, uint32_t type, bool normalized, int stride, 168*35238bceSAndroid Build Coastguard Worker const void *pointer) = DE_NULL; 169*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribIPointer(uint32_t index, int size, uint32_t type, int stride, 170*35238bceSAndroid Build Coastguard Worker const void *pointer) = DE_NULL; 171*35238bceSAndroid Build Coastguard Worker virtual void enableVertexAttribArray(uint32_t index) = DE_NULL; 172*35238bceSAndroid Build Coastguard Worker virtual void disableVertexAttribArray(uint32_t index) = DE_NULL; 173*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribDivisor(uint32_t index, uint32_t divisor) = DE_NULL; 174*35238bceSAndroid Build Coastguard Worker 175*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib1f(uint32_t index, float) = DE_NULL; 176*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib2f(uint32_t index, float, float) = DE_NULL; 177*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib3f(uint32_t index, float, float, float) = DE_NULL; 178*35238bceSAndroid Build Coastguard Worker virtual void vertexAttrib4f(uint32_t index, float, float, float, float) = DE_NULL; 179*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribI4i(uint32_t index, int32_t, int32_t, int32_t, int32_t) = DE_NULL; 180*35238bceSAndroid Build Coastguard Worker virtual void vertexAttribI4ui(uint32_t index, uint32_t, uint32_t, uint32_t, uint32_t) = DE_NULL; 181*35238bceSAndroid Build Coastguard Worker 182*35238bceSAndroid Build Coastguard Worker virtual int32_t getAttribLocation(uint32_t program, const char *name) = DE_NULL; 183*35238bceSAndroid Build Coastguard Worker 184*35238bceSAndroid Build Coastguard Worker virtual void uniform1f(int32_t index, float) = DE_NULL; 185*35238bceSAndroid Build Coastguard Worker virtual void uniform1i(int32_t index, int32_t) = DE_NULL; 186*35238bceSAndroid Build Coastguard Worker virtual void uniform1fv(int32_t index, int32_t count, const float *) = DE_NULL; 187*35238bceSAndroid Build Coastguard Worker virtual void uniform2fv(int32_t index, int32_t count, const float *) = DE_NULL; 188*35238bceSAndroid Build Coastguard Worker virtual void uniform3fv(int32_t index, int32_t count, const float *) = DE_NULL; 189*35238bceSAndroid Build Coastguard Worker virtual void uniform4fv(int32_t index, int32_t count, const float *) = DE_NULL; 190*35238bceSAndroid Build Coastguard Worker virtual void uniform1iv(int32_t index, int32_t count, const int32_t *) = DE_NULL; 191*35238bceSAndroid Build Coastguard Worker virtual void uniform2iv(int32_t index, int32_t count, const int32_t *) = DE_NULL; 192*35238bceSAndroid Build Coastguard Worker virtual void uniform3iv(int32_t index, int32_t count, const int32_t *) = DE_NULL; 193*35238bceSAndroid Build Coastguard Worker virtual void uniform4iv(int32_t index, int32_t count, const int32_t *) = DE_NULL; 194*35238bceSAndroid Build Coastguard Worker virtual void uniformMatrix3fv(int32_t location, int32_t count, bool transpose, const float *value) = DE_NULL; 195*35238bceSAndroid Build Coastguard Worker virtual void uniformMatrix4fv(int32_t location, int32_t count, bool transpose, const float *value) = DE_NULL; 196*35238bceSAndroid Build Coastguard Worker virtual int32_t getUniformLocation(uint32_t program, const char *name) = DE_NULL; 197*35238bceSAndroid Build Coastguard Worker 198*35238bceSAndroid Build Coastguard Worker virtual void lineWidth(float) = DE_NULL; 199*35238bceSAndroid Build Coastguard Worker 200*35238bceSAndroid Build Coastguard Worker virtual void drawArrays(uint32_t mode, int first, int count) = DE_NULL; 201*35238bceSAndroid Build Coastguard Worker virtual void drawArraysInstanced(uint32_t mode, int first, int count, int instanceCount) = DE_NULL; 202*35238bceSAndroid Build Coastguard Worker virtual void drawElements(uint32_t mode, int count, uint32_t type, const void *indices) = DE_NULL; 203*35238bceSAndroid Build Coastguard Worker virtual void drawElementsInstanced(uint32_t mode, int count, uint32_t type, const void *indices, 204*35238bceSAndroid Build Coastguard Worker int instanceCount) = DE_NULL; 205*35238bceSAndroid Build Coastguard Worker virtual void drawElementsBaseVertex(uint32_t mode, int count, uint32_t type, const void *indices, 206*35238bceSAndroid Build Coastguard Worker int baseVertex) = DE_NULL; 207*35238bceSAndroid Build Coastguard Worker virtual void drawElementsInstancedBaseVertex(uint32_t mode, int count, uint32_t type, const void *indices, 208*35238bceSAndroid Build Coastguard Worker int instanceCount, int baseVertex) = DE_NULL; 209*35238bceSAndroid Build Coastguard Worker virtual void drawRangeElements(uint32_t mode, uint32_t start, uint32_t end, int count, uint32_t type, 210*35238bceSAndroid Build Coastguard Worker const void *indices) = DE_NULL; 211*35238bceSAndroid Build Coastguard Worker virtual void drawRangeElementsBaseVertex(uint32_t mode, uint32_t start, uint32_t end, int count, uint32_t type, 212*35238bceSAndroid Build Coastguard Worker const void *indices, int baseVertex) = DE_NULL; 213*35238bceSAndroid Build Coastguard Worker virtual void drawArraysIndirect(uint32_t mode, const void *indirect) = DE_NULL; 214*35238bceSAndroid Build Coastguard Worker virtual void drawElementsIndirect(uint32_t mode, uint32_t type, const void *indirect) = DE_NULL; 215*35238bceSAndroid Build Coastguard Worker 216*35238bceSAndroid Build Coastguard Worker virtual void multiDrawArrays(uint32_t mode, const int *first, const int *count, int primCount) = DE_NULL; 217*35238bceSAndroid Build Coastguard Worker virtual void multiDrawElements(uint32_t mode, const int *count, uint32_t type, const void **indices, 218*35238bceSAndroid Build Coastguard Worker int primCount) = DE_NULL; 219*35238bceSAndroid Build Coastguard Worker virtual void multiDrawElementsBaseVertex(uint32_t mode, const int *count, uint32_t type, const void **indices, 220*35238bceSAndroid Build Coastguard Worker int primCount, const int *baseVertex) = DE_NULL; 221*35238bceSAndroid Build Coastguard Worker 222*35238bceSAndroid Build Coastguard Worker virtual uint32_t createProgram(ShaderProgram *program) = DE_NULL; 223*35238bceSAndroid Build Coastguard Worker virtual void useProgram(uint32_t program) = DE_NULL; 224*35238bceSAndroid Build Coastguard Worker virtual void deleteProgram(uint32_t program) = DE_NULL; 225*35238bceSAndroid Build Coastguard Worker 226*35238bceSAndroid Build Coastguard Worker virtual void readPixels(int x, int y, int width, int height, uint32_t format, uint32_t type, void *data) = DE_NULL; 227*35238bceSAndroid Build Coastguard Worker virtual uint32_t getError(void) = DE_NULL; 228*35238bceSAndroid Build Coastguard Worker virtual void finish(void) = DE_NULL; 229*35238bceSAndroid Build Coastguard Worker 230*35238bceSAndroid Build Coastguard Worker virtual void getIntegerv(uint32_t pname, int *params) = DE_NULL; 231*35238bceSAndroid Build Coastguard Worker virtual const char *getString(uint32_t pname) = DE_NULL; 232*35238bceSAndroid Build Coastguard Worker 233*35238bceSAndroid Build Coastguard Worker // Helpers implemented by Context. 234*35238bceSAndroid Build Coastguard Worker virtual void texImage2D(uint32_t target, int level, uint32_t internalFormat, const tcu::Surface &src); 235*35238bceSAndroid Build Coastguard Worker virtual void texImage2D(uint32_t target, int level, uint32_t internalFormat, int width, int height); 236*35238bceSAndroid Build Coastguard Worker virtual void texSubImage2D(uint32_t target, int level, int xoffset, int yoffset, const tcu::Surface &src); 237*35238bceSAndroid Build Coastguard Worker virtual void readPixels(tcu::Surface &dst, int x, int y, int width, int height); 238*35238bceSAndroid Build Coastguard Worker getType(void)239*35238bceSAndroid Build Coastguard Worker glu::ContextType getType(void) 240*35238bceSAndroid Build Coastguard Worker { 241*35238bceSAndroid Build Coastguard Worker return m_type; 242*35238bceSAndroid Build Coastguard Worker } 243*35238bceSAndroid Build Coastguard Worker 244*35238bceSAndroid Build Coastguard Worker private: 245*35238bceSAndroid Build Coastguard Worker const glu::ContextType m_type; 246*35238bceSAndroid Build Coastguard Worker } DE_WARN_UNUSED_TYPE; 247*35238bceSAndroid Build Coastguard Worker 248*35238bceSAndroid Build Coastguard Worker } // namespace sglr 249*35238bceSAndroid Build Coastguard Worker 250*35238bceSAndroid Build Coastguard Worker #endif // _SGLRCONTEXT_HPP 251