14f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// 2eeba6e1e88a04ab30db442c2af77bf53034ef332Geoff Lang// Copyright (c) 2002-2014 The ANGLE Project Authors. All rights reserved. 34f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 44f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// found in the LICENSE file. 54f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// 64f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 74f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// Context.h: Defines the gl::Context class, managing all GL state and performing 84f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// rendering operations. It is the GLES2 specific implementation of EGLContext. 94f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 10da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com#ifndef LIBGLESV2_CONTEXT_H_ 11da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com#define LIBGLESV2_CONTEXT_H_ 124f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 13f26ddae9acc05461792c8b1b6b35444ddf209de8shannon.woods%transgaming.com@gtempaccount.com#include <GLES3/gl3.h> 14f26ddae9acc05461792c8b1b6b35444ddf209de8shannon.woods%transgaming.com@gtempaccount.com#include <GLES3/gl3ext.h> 154f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com#include <GLES2/gl2.h> 16d303ef9a9961a9da9f80a7c4366ecc96aae18316alokp@chromium.org#include <GLES2/gl2ext.h> 174f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com#include <EGL/egl.h> 184f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 19db2115d8b7082be98910a9cda033bf2c23eaeaa2daniel@transgaming.com#include <string> 20cdf22f94acaf86ebfb02e123deafcb41010cfccfGeoff Lang#include <set> 214f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com#include <map> 22db2115d8b7082be98910a9cda033bf2c23eaeaa2daniel@transgaming.com#include <unordered_map> 2343b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang#include <array> 244f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 25ea0e1af4c3db538081d776e4ec1a588ca82cb9d9alokp@chromium.org#include "common/angleutils.h" 26b66a70156d33b0712fae267c6697af55e22bf8b6apatrick@chromium.org#include "common/RefCountObject.h" 271a23334f9536101cb777451bd6e5b9f13dd5c818benvanik@google.com#include "libGLESv2/HandleAllocator.h" 28d0db35080360ae03589dd366266eed0a9b1f422bdaniel@transgaming.com#include "libGLESv2/angletypes.h" 290d94d1f75d5cc6a740ed6729952c4cb138289936shannon.woods@transgaming.com#include "libGLESv2/Constants.h" 30879397104fa488dd59d9e318fd4b1f0ef65d17d0Jamie Madill#include "libGLESv2/VertexAttribute.h" 31d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.com 32d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.comnamespace rx 33d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.com{ 34d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.comclass Renderer; 35d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.com} 364f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 374f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comnamespace egl 384f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com{ 394f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Surface; 404f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com} 414f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 424f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comnamespace gl 434f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com{ 444f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Shader; 454f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Program; 465ae3ccc34abd1ee0e29bd529a0544da240244f4bdaniel@transgaming.comclass ProgramBinary; 474f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Texture; 484f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Texture2D; 494f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass TextureCubeMap; 50c416e1cc09f1404d3dbcf23cd55956d37ebe67d2shannon.woods%transgaming.com@gtempaccount.comclass Texture3D; 5190dbc44c79052a9ceaab2c782a67e7d149da5385shannon.woods%transgaming.com@gtempaccount.comclass Texture2DArray; 524f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Framebuffer; 533c7fa226aeb81469b93142b54e339f13a46ab835Jamie Madillclass FramebufferAttachment; 549ecb9f9d504e71672a610183c34ae33ab276aef4daniel@transgaming.comclass RenderbufferStorage; 554f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Colorbuffer; 564f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Depthbuffer; 574f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comclass Stencilbuffer; 58cdacc8e27117f22035bb56150899e1e52bb542d6daniel@transgaming.comclass DepthStencilbuffer; 5933dc84394ba08700d700a3da692e8de18433a031Jamie Madillclass FenceNV; 60cd055f81f941b108b936fa0eaf2523793ddf7b4fJamie Madillclass FenceSync; 6186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.comclass Query; 62d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.comclass ResourceManager; 63d2811d688721a729f514bd78f7fd12a43beeb0a6shannon.woods@transgaming.comclass Buffer; 6457a8972e5ddf7611860d9767c8aed4793c3929afJamie Madillclass VertexAttribute; 6557a8972e5ddf7611860d9767c8aed4793c3929afJamie Madillclass VertexArray; 66dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madillclass Sampler; 67c8058451c87ec298683bf484813016b20bf36777Geoff Langclass TransformFeedback; 684f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 694f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// Helper structure to store all raw state 704f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.comstruct State 714f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com{ 722a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang ColorF colorClearValue; 734f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLclampf depthClearValue; 744f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com int stencilClearValue; 754f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 76f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com RasterizerState rasterizer; 77d55e8c1b48f16f93cb89798fc3640047eb74d3fddaniel@transgaming.com bool scissorTest; 78f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com Rectangle scissor; 79f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com 80f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com BlendState blend; 812a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang ColorF blendColor; 824f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool sampleCoverage; 834f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLclampf sampleCoverageValue; 84a36f98efb5e70eec8763c0f11046b899929a04a4daniel@transgaming.com bool sampleCoverageInvert; 85f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com 86f39967e136759e6d196793122638431c74db1d7fdaniel@transgaming.com DepthStencilState depthStencil; 8708c331d42f31f8291238695d86db53d760e0b330daniel@transgaming.com GLint stencilRef; 8808c331d42f31f8291238695d86db53d760e0b330daniel@transgaming.com GLint stencilBackRef; 894f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 9032e58cdedbee0b5add027c7d051faaac254724b8daniel@transgaming.com GLfloat lineWidth; 9132e58cdedbee0b5add027c7d051faaac254724b8daniel@transgaming.com 925949aa10c60aeab86dcd32ee9d77d5b3fb8185e0daniel@transgaming.com GLenum generateMipmapHint; 93d303ef9a9961a9da9f80a7c4366ecc96aae18316alokp@chromium.org GLenum fragmentShaderDerivativeHint; 945949aa10c60aeab86dcd32ee9d77d5b3fb8185e0daniel@transgaming.com 953884e2c242e152999f7120c3368a8c3799566511daniel@transgaming.com Rectangle viewport; 964f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com float zNear; 974f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com float zFar; 984f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 99dfd5702063edc24b22b5a333e698b3c2d12798fcdaniel@transgaming.com unsigned int activeSampler; // Active texture unit selector - GL_TEXTURE0 1009ecb9f9d504e71672a610183c34ae33ab276aef4daniel@transgaming.com BindingPointer<Buffer> arrayBuffer; 101ff8bdfb065ddd9202cc27df894ad39f1a024fdd4apatrick@chromium.org GLuint readFramebuffer; 102ff8bdfb065ddd9202cc27df894ad39f1a024fdd4apatrick@chromium.org GLuint drawFramebuffer; 1033c7fa226aeb81469b93142b54e339f13a46ab835Jamie Madill BindingPointer<FramebufferAttachment> renderbuffer; 1044f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint currentProgram; 1054f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 106a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill VertexAttribCurrentValueData vertexAttribCurrentValues[MAX_VERTEX_ATTRIBS]; // From glVertexAttrib 10757a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill unsigned int vertexArray; 108a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill 109233fe9548a2b166d3ccb09a4a7af273fab6dbf2cshannon.woods@transgaming.com BindingPointer<Texture> samplerTexture[TEXTURE_TYPE_COUNT][IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS]; 110dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill GLuint samplers[IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS]; 1114f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 11237dde6929d79c9a523bd6c786d2b6c6544be8c9dGeoff Lang typedef std::map< GLenum, BindingPointer<Query> > ActiveQueryMap; 11337dde6929d79c9a523bd6c786d2b6c6544be8c9dGeoff Lang ActiveQueryMap activeQueries; 11437dde6929d79c9a523bd6c786d2b6c6544be8c9dGeoff Lang 115667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com BindingPointer<Buffer> genericUniformBuffer; 11634089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com OffsetBindingPointer<Buffer> uniformBuffers[IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS]; 11734089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com 118c8058451c87ec298683bf484813016b20bf36777Geoff Lang BindingPointer<TransformFeedback> transformFeedback; 119667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com BindingPointer<Buffer> genericTransformFeedbackBuffer; 12034089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com OffsetBindingPointer<Buffer> transformFeedbackBuffers[IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_BUFFERS]; 12134089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com 1225117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com BindingPointer<Buffer> copyReadBuffer; 1235117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com BindingPointer<Buffer> copyWriteBuffer; 1245117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com 125950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill PixelUnpackState unpack; 126950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill PixelPackState pack; 1274f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com}; 1284f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 129428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.comclass Context 1304f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com{ 1314f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com public: 132daea4b4584cdbd8c82dd9946eb07a32ab2f278b7shannon.woods%transgaming.com@gtempaccount.com Context(int clientVersion, const gl::Context *shareContext, rx::Renderer *renderer, bool notifyResets, bool robustAccess); 1334f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 134a4de2657518728cdd1919bbbc21d04b502aa31c5Geoff Lang virtual ~Context(); 1354f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 136ad62987f1ef6e34ed362e7a7ee125ffcd1690241daniel@transgaming.com void makeCurrent(egl::Surface *surface); 1374f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 13809fcc9fe6a6247af02ca203a9df4ffb00f2ee003daniel@transgaming.com virtual void markContextLost(); 13909fcc9fe6a6247af02ca203a9df4ffb00f2ee003daniel@transgaming.com bool isContextLost(); 14009fcc9fe6a6247af02ca203a9df4ffb00f2ee003daniel@transgaming.com 141428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com // State manipulation 1420550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang void setCap(GLenum cap, bool enabled); 1430550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang bool getCap(GLenum cap); 1440550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang 1454f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void setClearColor(float red, float green, float blue, float alpha); 146428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 1474f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void setClearDepth(float depth); 148428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 1494f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void setClearStencil(int stencil); 1504f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 1510550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang void setRasterizerDiscard(bool enabled); 1520550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang bool isRasterizerDiscardEnabled() const; 1530550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang 154428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setCullFace(bool enabled); 155428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isCullFaceEnabled() const; 156428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 157428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setCullMode(GLenum mode); 158428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 159428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setFrontFace(GLenum front); 160428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 161428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setDepthTest(bool enabled); 162428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isDepthTestEnabled() const; 163428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 164428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setDepthFunc(GLenum depthFunc); 165428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 166428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setDepthRange(float zNear, float zFar); 167428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 168428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setBlend(bool enabled); 169428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isBlendEnabled() const; 170428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 171428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setBlendFactors(GLenum sourceRGB, GLenum destRGB, GLenum sourceAlpha, GLenum destAlpha); 172428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setBlendColor(float red, float green, float blue, float alpha); 173428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setBlendEquation(GLenum rgbEquation, GLenum alphaEquation); 174428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 175428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilTest(bool enabled); 176428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isStencilTestEnabled() const; 177428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 178428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilParams(GLenum stencilFunc, GLint stencilRef, GLuint stencilMask); 179428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilBackParams(GLenum stencilBackFunc, GLint stencilBackRef, GLuint stencilBackMask); 180428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilWritemask(GLuint stencilWritemask); 181428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilBackWritemask(GLuint stencilBackWritemask); 182428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilOperations(GLenum stencilFail, GLenum stencilPassDepthFail, GLenum stencilPassDepthPass); 183428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setStencilBackOperations(GLenum stencilBackFail, GLenum stencilBackPassDepthFail, GLenum stencilBackPassDepthPass); 184428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 185428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setPolygonOffsetFill(bool enabled); 186428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isPolygonOffsetFillEnabled() const; 187428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 188428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setPolygonOffsetParams(GLfloat factor, GLfloat units); 189428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 190428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setSampleAlphaToCoverage(bool enabled); 191428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isSampleAlphaToCoverageEnabled() const; 192428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 193428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setSampleCoverage(bool enabled); 194428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isSampleCoverageEnabled() const; 195428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 196a36f98efb5e70eec8763c0f11046b899929a04a4daniel@transgaming.com void setSampleCoverageParams(GLclampf value, bool invert); 197428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 198428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setScissorTest(bool enabled); 199428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isScissorTestEnabled() const; 200428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 201428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setDither(bool enabled); 202428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com bool isDitherEnabled() const; 203428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 204428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setLineWidth(GLfloat width); 205428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 206428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setGenerateMipmapHint(GLenum hint); 207d303ef9a9961a9da9f80a7c4366ecc96aae18316alokp@chromium.org void setFragmentShaderDerivativeHint(GLenum hint); 208428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 209428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setViewportParams(GLint x, GLint y, GLsizei width, GLsizei height); 210428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 211428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setScissorParams(GLint x, GLint y, GLsizei width, GLsizei height); 212c832516a8735ea17b0fde335cd1160421e62e785Geoff Lang void getScissorParams(GLint *x, GLint *y, GLsizei *width, GLsizei *height); 213428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 214428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setColorMask(bool red, bool green, bool blue, bool alpha); 215428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setDepthMask(bool mask); 216428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 217dfd5702063edc24b22b5a333e698b3c2d12798fcdaniel@transgaming.com void setActiveSampler(unsigned int active); 218428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 219a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com GLuint getReadFramebufferHandle() const; 220a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com GLuint getDrawFramebufferHandle() const; 221428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com GLuint getRenderbufferHandle() const; 222d8db866a9cc272549ebc223d41610319f9ef0b09Jamie Madill GLuint getVertexArrayHandle() const; 223dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill GLuint getSamplerHandle(GLuint textureUnit) const; 224893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill unsigned int getActiveSampler() const; 225428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 226428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com GLuint getArrayBufferHandle() const; 227428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 228db2f14c0b1133507215dd3b7a30155b70885973aJamie Madill bool isQueryActive() const; 22945c785d35c270ca1d1168b6ca5517cb3a5a285ccJamie Madill const Query *getActiveQuery(GLenum target) const; 23045c785d35c270ca1d1168b6ca5517cb3a5a285ccJamie Madill GLuint getActiveQueryId(GLenum target) const; 23186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com 23283921386363c71f582abd3e13d5f4d5f9d47cc86daniel@transgaming.com void setEnableVertexAttribArray(unsigned int attribNum, bool enabled); 233a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill const VertexAttribute &getVertexAttribState(unsigned int attribNum) const; 234a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill const VertexAttribCurrentValueData &getVertexAttribCurrentValue(unsigned int attribNum) const; 2359ecb9f9d504e71672a610183c34ae33ab276aef4daniel@transgaming.com void setVertexAttribState(unsigned int attribNum, Buffer *boundBuffer, GLint size, GLenum type, 2368de4e6af2bc4ec6a513602c6fb6dd7bc6f242bd2shannon.woods%transgaming.com@gtempaccount.com bool normalized, bool pureInteger, GLsizei stride, const void *pointer); 237428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com const void *getVertexAttribPointer(unsigned int attribNum) const; 238428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 239428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setUnpackAlignment(GLint alignment); 240428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com GLint getUnpackAlignment() const; 24188f18f458dec5c2aff302db93c57e51d89fbffa2Jamie Madill const PixelUnpackState &getUnpackState() const; 242428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 243428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com void setPackAlignment(GLint alignment); 244428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com GLint getPackAlignment() const; 24588f18f458dec5c2aff302db93c57e51d89fbffa2Jamie Madill const PixelPackState &getPackState() const; 246428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 24756d46abe08c8a79786c3821e4e4336791f29883absalomon@google.com void setPackReverseRowOrder(bool reverseRowOrder); 24856d46abe08c8a79786c3821e4e4336791f29883absalomon@google.com bool getPackReverseRowOrder() const; 24956d46abe08c8a79786c3821e4e4336791f29883absalomon@google.com 250da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com // These create and destroy methods are merely pass-throughs to 251da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com // ResourceManager, which owns these object types 2524f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint createBuffer(); 2534f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint createShader(GLenum type); 2544f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint createProgram(); 2554f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint createTexture(); 2564f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLuint createRenderbuffer(); 257dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill GLuint createSampler(); 258c8058451c87ec298683bf484813016b20bf36777Geoff Lang GLuint createTransformFeedback(); 259cd055f81f941b108b936fa0eaf2523793ddf7b4fJamie Madill GLsync createFenceSync(GLenum condition); 2604f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 2614f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void deleteBuffer(GLuint buffer); 2624f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void deleteShader(GLuint shader); 2634f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void deleteProgram(GLuint program); 2644f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void deleteTexture(GLuint texture); 2654f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void deleteRenderbuffer(GLuint renderbuffer); 266dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill void deleteSampler(GLuint sampler); 267c8058451c87ec298683bf484813016b20bf36777Geoff Lang void deleteTransformFeedback(GLuint transformFeedback); 268cd055f81f941b108b936fa0eaf2523793ddf7b4fJamie Madill void deleteFenceSync(GLsync fenceSync); 2699ecb9f9d504e71672a610183c34ae33ab276aef4daniel@transgaming.com 270da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com // Framebuffers are owned by the Context, so these methods do not pass through 271da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com GLuint createFramebuffer(); 272da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com void deleteFramebuffer(GLuint framebuffer); 2734f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 274cd055f81f941b108b936fa0eaf2523793ddf7b4fJamie Madill // NV Fences are owned by the Context. 27533dc84394ba08700d700a3da692e8de18433a031Jamie Madill GLuint createFenceNV(); 27633dc84394ba08700d700a3da692e8de18433a031Jamie Madill void deleteFenceNV(GLuint fence); 27786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com 27886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com // Queries are owned by the Context; 27986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com GLuint createQuery(); 28086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com void deleteQuery(GLuint query); 281d3bd0ad320fb246d9b42a0161c27eeb56c7e9160apatrick@chromium.org 282be26b522bb07965b981f693d461a30a6f6a67df7Jamie Madill // Vertex arrays are owned by the Context 283be26b522bb07965b981f693d461a30a6f6a67df7Jamie Madill GLuint createVertexArray(); 284be26b522bb07965b981f693d461a30a6f6a67df7Jamie Madill void deleteVertexArray(GLuint vertexArray); 285be26b522bb07965b981f693d461a30a6f6a67df7Jamie Madill 2864f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void bindArrayBuffer(GLuint buffer); 2874f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void bindElementArrayBuffer(GLuint buffer); 2884f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void bindTexture2D(GLuint texture); 2894f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void bindTextureCubeMap(GLuint texture); 290c416e1cc09f1404d3dbcf23cd55956d37ebe67d2shannon.woods%transgaming.com@gtempaccount.com void bindTexture3D(GLuint texture); 29190dbc44c79052a9ceaab2c782a67e7d149da5385shannon.woods%transgaming.com@gtempaccount.com void bindTexture2DArray(GLuint texture); 292a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com void bindReadFramebuffer(GLuint framebuffer); 293a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com void bindDrawFramebuffer(GLuint framebuffer); 2944f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void bindRenderbuffer(GLuint renderbuffer); 29557a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill void bindVertexArray(GLuint vertexArray); 296dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill void bindSampler(GLuint textureUnit, GLuint sampler); 297667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com void bindGenericUniformBuffer(GLuint buffer); 298667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com void bindIndexedUniformBuffer(GLuint buffer, GLuint index, GLintptr offset, GLsizeiptr size); 299667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com void bindGenericTransformFeedbackBuffer(GLuint buffer); 300667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com void bindIndexedTransformFeedbackBuffer(GLuint buffer, GLuint index, GLintptr offset, GLsizeiptr size); 3015117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com void bindCopyReadBuffer(GLuint buffer); 3025117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com void bindCopyWriteBuffer(GLuint buffer); 303c926e5f1808efd73b617ac0f204f1455cf8f600dshannon.woods%transgaming.com@gtempaccount.com void bindPixelPackBuffer(GLuint buffer); 304c926e5f1808efd73b617ac0f204f1455cf8f600dshannon.woods%transgaming.com@gtempaccount.com void bindPixelUnpackBuffer(GLuint buffer); 3054f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void useProgram(GLuint program); 30695d294247b8fe82dddc1e8ddcbb7449074112e5ddaniel@transgaming.com void linkProgram(GLuint program); 30795d294247b8fe82dddc1e8ddcbb7449074112e5ddaniel@transgaming.com void setProgramBinary(GLuint program, const void *binary, GLint length); 308c8058451c87ec298683bf484813016b20bf36777Geoff Lang void bindTransformFeedback(GLuint transformFeedback); 3094f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 31086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com void beginQuery(GLenum target, GLuint query); 31186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com void endQuery(GLenum target); 31286bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com 3134f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void setFramebufferZero(Framebuffer *framebuffer); 3149ecb9f9d504e71672a610183c34ae33ab276aef4daniel@transgaming.com 31570062c98f7c62744f398dc0ba7a87c76e723cc48daniel@transgaming.com void setRenderbufferStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples); 3164f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 317a88858661d02687ae69835092420639d26e32d5fshannon.woods%transgaming.com@gtempaccount.com void setVertexAttribf(GLuint index, const GLfloat values[4]); 318a88858661d02687ae69835092420639d26e32d5fshannon.woods%transgaming.com@gtempaccount.com void setVertexAttribu(GLuint index, const GLuint values[4]); 319a88858661d02687ae69835092420639d26e32d5fshannon.woods%transgaming.com@gtempaccount.com void setVertexAttribi(GLuint index, const GLint values[4]); 320d2820bfb69ab94889f9477b5c9a4fafb7fc5ed13daniel@transgaming.com void setVertexAttribDivisor(GLuint index, GLuint divisor); 321e4b08c8cf83571f832e4558e1a2cb539ed006f4fdaniel@transgaming.com 322e29d1672345b37f61f76a01fbaa63b5c12b57ab3Jamie Madill void samplerParameteri(GLuint sampler, GLenum pname, GLint param); 323e29d1672345b37f61f76a01fbaa63b5c12b57ab3Jamie Madill void samplerParameterf(GLuint sampler, GLenum pname, GLfloat param); 3249675b80889202319355597a20e76c6f38b213cd1Jamie Madill GLint getSamplerParameteri(GLuint sampler, GLenum pname); 3259675b80889202319355597a20e76c6f38b213cd1Jamie Madill GLfloat getSamplerParameterf(GLuint sampler, GLenum pname); 326e29d1672345b37f61f76a01fbaa63b5c12b57ab3Jamie Madill 3274f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com Buffer *getBuffer(GLuint handle); 32833dc84394ba08700d700a3da692e8de18433a031Jamie Madill FenceNV *getFenceNV(GLuint handle); 329cd055f81f941b108b936fa0eaf2523793ddf7b4fJamie Madill FenceSync *getFenceSync(GLsync handle) const; 33048dcae7b217420a7387c84a76651989e6f5f3576Geoff Lang Shader *getShader(GLuint handle) const; 33148dcae7b217420a7387c84a76651989e6f5f3576Geoff Lang Program *getProgram(GLuint handle) const; 3324f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com Texture *getTexture(GLuint handle); 3331fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Framebuffer *getFramebuffer(GLuint handle) const; 3343c7fa226aeb81469b93142b54e339f13a46ab835Jamie Madill FramebufferAttachment *getRenderbuffer(GLuint handle); 33557a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill VertexArray *getVertexArray(GLuint handle) const; 336dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill Sampler *getSampler(GLuint handle) const; 33786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com Query *getQuery(GLuint handle, bool create, GLenum type); 338c8058451c87ec298683bf484813016b20bf36777Geoff Lang TransformFeedback *getTransformFeedback(GLuint handle) const; 3394f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 3408c96d58af5a5994c81b81032f775dc7d24cb5661Jamie Madill Buffer *getTargetBuffer(GLenum target) const; 3414f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com Buffer *getArrayBuffer(); 3427a5f738bcf0773177a533c73bd51330a353e4004Jamie Madill Buffer *getElementArrayBuffer() const; 34362a2846cfeb8f1d34f8c0182f9e0adf5e23f5832daniel@transgaming.com ProgramBinary *getCurrentProgramBinary(); 3441fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill 3451fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Texture *getTargetTexture(GLenum target) const; 3461fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Texture2D *getTexture2D() const; 3471fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill TextureCubeMap *getTextureCubeMap() const; 3481fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Texture3D *getTexture3D() const; 3491fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Texture2DArray *getTexture2DArray() const; 3501fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill 351667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com Buffer *getGenericUniformBuffer(); 352667a29cf4c8dc2d0ccafd3b0464d2e6b01d087bcshannon.woods%transgaming.com@gtempaccount.com Buffer *getGenericTransformFeedbackBuffer(); 3535117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com Buffer *getCopyReadBuffer(); 3545117188c23be8525da72c7672ff26ce7363824bbshannon.woods%transgaming.com@gtempaccount.com Buffer *getCopyWriteBuffer(); 355c926e5f1808efd73b617ac0f204f1455cf8f600dshannon.woods%transgaming.com@gtempaccount.com Buffer *getPixelPackBuffer(); 356c926e5f1808efd73b617ac0f204f1455cf8f600dshannon.woods%transgaming.com@gtempaccount.com Buffer *getPixelUnpackBuffer(); 3571fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Texture *getSamplerTexture(unsigned int sampler, TextureType type) const; 3581fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill 3591fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill Framebuffer *getTargetFramebuffer(GLenum target) const; 3601fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill GLuint getTargetFramebufferHandle(GLenum target) const; 361a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com Framebuffer *getReadFramebuffer(); 362a27ff1eeaf40f6d509ad8ec978f27f9fd55c4315daniel@transgaming.com Framebuffer *getDrawFramebuffer(); 36357a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill VertexArray *getCurrentVertexArray() const; 364c8058451c87ec298683bf484813016b20bf36777Geoff Lang TransformFeedback *getCurrentTransformFeedback() const; 3654f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 366dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill bool isSampler(GLuint samplerName) const; 367dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill 368893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill void getBooleanv(GLenum pname, GLboolean *params); 369893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill void getFloatv(GLenum pname, GLfloat *params); 370893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill void getIntegerv(GLenum pname, GLint *params); 371893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill void getInteger64v(GLenum pname, GLint64 *params); 372777f26727bd71c435f93387fd593e3790544bb49daniel@transgaming.com 3731b2fb85341de62622377aee456523f9805818955Shannon Woods bool getIndexedIntegerv(GLenum target, GLuint index, GLint *data); 3741b2fb85341de62622377aee456523f9805818955Shannon Woods bool getIndexedInteger64v(GLenum target, GLuint index, GLint64 *data); 3751b2fb85341de62622377aee456523f9805818955Shannon Woods 376777f26727bd71c435f93387fd593e3790544bb49daniel@transgaming.com bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams); 3771b2fb85341de62622377aee456523f9805818955Shannon Woods bool getIndexedQueryParameterInfo(GLenum target, GLenum *type, unsigned int *numParams); 378777f26727bd71c435f93387fd593e3790544bb49daniel@transgaming.com 3794f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void clear(GLbitfield mask); 38042359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang void clearBufferfv(GLenum buffer, int drawbuffer, const float *values); 38142359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang void clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *values); 38242359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang void clearBufferiv(GLenum buffer, int drawbuffer, const int *values); 38342359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang void clearBufferfi(GLenum buffer, int drawbuffer, float depth, int stencil); 38442359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang 38542359ca9f0b51aca23f07439109bd28a83c7f998Geoff Lang void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei *bufSize, void* pixels); 3868ca9c6e7cef35ce53b72f30c64cf0bd10662b964daniel@transgaming.com void drawArrays(GLenum mode, GLint first, GLsizei count, GLsizei instances); 3878ca9c6e7cef35ce53b72f30c64cf0bd10662b964daniel@transgaming.com void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instances); 3880d86aa7bc27a9185e74317d4c1362bf8af77c457daniel@transgaming.com void sync(bool block); // flush/finish 3894f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 3904f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void recordInvalidEnum(); 3914f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void recordInvalidValue(); 3924f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void recordInvalidOperation(); 3934f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void recordOutOfMemory(); 3944f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void recordInvalidFramebufferOperation(); 3954f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 3964f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com GLenum getError(); 39717f548cb6b08775353de38f468ba1ac58b668b6adaniel@transgaming.com GLenum getResetStatus(); 3984ff960d9166a283d4dd6c072490a5437f05b9eb4daniel@transgaming.com virtual bool isResetNotificationEnabled(); 3994f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 400daea4b4584cdbd8c82dd9946eb07a32ab2f278b7shannon.woods%transgaming.com@gtempaccount.com virtual int getClientVersion() const; 401daea4b4584cdbd8c82dd9946eb07a32ab2f278b7shannon.woods%transgaming.com@gtempaccount.com 4029549bead5dc8bb07a21296ea8bea97939285c699daniel@transgaming.com int getMajorShaderModel() const; 40313be3e43d5ec86021a920550df137d8de7f120f4daniel@transgaming.com float getMaximumPointSize() const; 404dfd5702063edc24b22b5a333e698b3c2d12798fcdaniel@transgaming.com unsigned int getMaximumCombinedTextureImageUnits() const; 40534089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com unsigned int getMaximumCombinedUniformBufferBindings() const; 4065d752f29189bbeb3da84b66c7335192a4baf6528daniel@transgaming.com int getMaximumRenderbufferDimension() const; 407c1fdf6baa488d6bf4a16d68c5d83caf2c95563dcshannon.woods%transgaming.com@gtempaccount.com int getMaximum2DTextureDimension() const; 4085d752f29189bbeb3da84b66c7335192a4baf6528daniel@transgaming.com int getMaximumCubeTextureDimension() const; 409c1fdf6baa488d6bf4a16d68c5d83caf2c95563dcshannon.woods%transgaming.com@gtempaccount.com int getMaximum3DTextureDimension() const; 410a98a8111a4b82a2715de171fcf2c7417a9cbfc6fshannon.woods%transgaming.com@gtempaccount.com int getMaximum2DArrayTextureLayers() const; 411ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int getMaximum2DTextureLevel() const; 412ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int getMaximumCubeTextureLevel() const; 413ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int getMaximum3DTextureLevel() const; 414ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int getMaximum2DArrayTextureLevel() const; 41589ae1133850885c5812a78e9f8d00447acfcbd55shannon.woods%transgaming.com@gtempaccount.com unsigned int getMaximumRenderTargets() const; 4161f135d86ab03ef260de7d653625f916644ddd747daniel@transgaming.com GLsizei getMaxSupportedSamples() const; 417005df41f8900641ed1df60700c8e2eca659a33cbGeoff Lang GLsizei getMaxSupportedFormatSamples(GLenum internalFormat) const; 418005df41f8900641ed1df60700c8e2eca659a33cbGeoff Lang GLsizei getNumSampleCounts(GLenum internalFormat) const; 419005df41f8900641ed1df60700c8e2eca659a33cbGeoff Lang void getSampleCounts(GLenum internalFormat, GLsizei bufSize, GLint *params) const; 42034089354b04a78dc6a6c0bda15b4757a8f9a0401shannon.woods%transgaming.com@gtempaccount.com unsigned int getMaxTransformFeedbackBufferBindings() const; 42197c3d501704adb4b41a0ef7374f684fb762ee11dshannonwoods@chromium.org GLintptr getUniformBufferOffsetAlignment() const; 422302df74cc22fdf426334aebd9dbad4d7b3df5be2shannonwoods@chromium.org const char *getCombinedExtensionsString() const; 423302df74cc22fdf426334aebd9dbad4d7b3df5be2shannonwoods@chromium.org const char *getExtensionString(const GLuint index) const; 424302df74cc22fdf426334aebd9dbad4d7b3df5be2shannonwoods@chromium.org unsigned int getNumExtensions() const; 425c23ff6439312f2c9e52742d2115f62ad665a6582daniel@transgaming.com const char *getRendererString() const; 426d3bd0ad320fb246d9b42a0161c27eeb56c7e9160apatrick@chromium.org bool supportsEventQueries() const; 42786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com bool supportsOcclusionQueries() const; 428bec04bf43b2603f33a84c6eb6b6fa4b13ad10161shannon.woods@transgaming.com bool supportsBGRATextures() const; 42950c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool supportsDXT1Textures() const; 43050c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool supportsDXT3Textures() const; 43150c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool supportsDXT5Textures() const; 432bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat32Textures() const; 433bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat32LinearFilter() const; 434bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat32RenderableTextures() const; 435bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat16Textures() const; 436bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat16LinearFilter() const; 437bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool supportsFloat16RenderableTextures() const; 438ed828e5b2acc9cb0c6ea30416919483b45cf911adaniel@transgaming.com bool supportsLuminanceTextures() const; 439ed828e5b2acc9cb0c6ea30416919483b45cf911adaniel@transgaming.com bool supportsLuminanceAlphaTextures() const; 440632192dd8098d303fbf4d66f5d61c7363039a818Geoff Lang bool supportsRGTextures() const; 4411c49f79dd58f44e2192cf9137cfbe8109c34953bdaniel@transgaming.com bool supportsDepthTextures() const; 44283921386363c71f582abd3e13d5f4d5f9d47cc86daniel@transgaming.com bool supports32bitIndices() const; 4434f9ef0d66706a4bc3e467f2f9c49690b353c23fddaniel@transgaming.com bool supportsNonPower2Texture() const; 444c6f7f9d504cdc62773a73114c1a202d1bade4ffcdaniel@transgaming.com bool supportsInstancing() const; 44507ab841a88e2779dec5d5a347a8403c7d84f28e8daniel@transgaming.com bool supportsTextureFilterAnisotropy() const; 446b3801744ed9df17a7d8d290e203938818ad90addShannon Woods bool supportsPBOs() const; 44707ab841a88e2779dec5d5a347a8403c7d84f28e8daniel@transgaming.com 448893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill void getCurrentReadFormatType(GLenum *internalFormat, GLenum *format, GLenum *type); 44942944b02334905a221eaf15f4f3d14747a60ee91daniel@transgaming.com 45007ab841a88e2779dec5d5a347a8403c7d84f28e8daniel@transgaming.com float getTextureMaxAnisotropy() const; 4513e4c6004be276d5ec4a768d11f6b2f34b90450fcdaniel@transgaming.com 452758d5b2158ed4df145974c475df68a35bf476a00Geoff Lang void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, 453758d5b2158ed4df145974c475df68a35bf476a00Geoff Lang GLbitfield mask, GLenum filter); 4544cbc590fb59d7211ebb59b9bcfcc36f3880009d9daniel@transgaming.com 455d63ef891baa92ae174fbaa1be548e4c2292dfba8shannonwoods@chromium.org void invalidateFrameBuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, 456d63ef891baa92ae174fbaa1be548e4c2292dfba8shannonwoods@chromium.org GLint x, GLint y, GLsizei width, GLsizei height); 457d63ef891baa92ae174fbaa1be548e4c2292dfba8shannonwoods@chromium.org 4587a5f738bcf0773177a533c73bd51330a353e4004Jamie Madill bool hasMappedBuffer(GLenum target) const; 4597a5f738bcf0773177a533c73bd51330a353e4004Jamie Madill 4602e559bbc134bc77c32c7ee0961154ca4639d8bafJamie Madill rx::Renderer *getRenderer() { return mRenderer; } 4612e559bbc134bc77c32c7ee0961154ca4639d8bafJamie Madill 4624f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com private: 4634f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com DISALLOW_COPY_AND_ASSIGN(Context); 4644f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 46543b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang // TODO: std::array may become unavailable using older versions of GCC 46643b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang typedef std::array<unsigned int, IMPLEMENTATION_MAX_FRAMEBUFFER_ATTACHMENTS> FramebufferTextureSerialArray; 46743b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang 4681298518804934fac7f8ecd37ad58a5ac100cff36daniel@transgaming.com bool applyRenderTarget(GLenum drawMode, bool ignoreViewport); 469d4a35179bdf3b2ddf4457f0b3861f4e7d418989edaniel@transgaming.com void applyState(GLenum drawMode); 4704c5c6bbb82f96de2d3abe0c7c7c7d72fba5217c9Geoff Lang void applyShaders(ProgramBinary *programBinary, bool transformFeedbackActive); 47143b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang void applyTextures(SamplerType shaderType, Texture *textures[], TextureType *textureTypes, SamplerState *samplers, 47243b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang size_t textureCount, const FramebufferTextureSerialArray& framebufferSerials, 47343b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang size_t framebufferSerialCount); 4741bddfb984b4ce6f8422a877097e60aca956f5661shannonwoods@chromium.org bool applyUniformBuffers(); 475eeba6e1e88a04ab30db442c2af77bf53034ef332Geoff Lang bool applyTransformFeedbackBuffers(); 476eeba6e1e88a04ab30db442c2af77bf53034ef332Geoff Lang void markTransformFeedbackUsage(); 477d4a35179bdf3b2ddf4457f0b3861f4e7d418989edaniel@transgaming.com 4784f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void detachBuffer(GLuint buffer); 4794f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void detachTexture(GLuint texture); 4804f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void detachFramebuffer(GLuint framebuffer); 4814f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com void detachRenderbuffer(GLuint renderbuffer); 48257a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill void detachVertexArray(GLuint vertexArray); 483c8058451c87ec298683bf484813016b20bf36777Geoff Lang void detachTransformFeedback(GLuint transformFeedback); 484dc35604b10728a6d85ba8dba7380ed30a92d6850Jamie Madill void detachSampler(GLuint sampler); 4854f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 48643b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang void generateSwizzles(Texture *textures[], size_t count); 48743b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang size_t getCurrentTexturesAndSamplerStates(ProgramBinary *programBinary, SamplerType type, Texture **outTextures, 48843b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang TextureType *outTextureTypes, SamplerState *outSamplers); 4890e64dd6dc05a4d3e31f6cbc69ceeafc4a863a65edaniel@transgaming.com Texture *getIncompleteTexture(TextureType type); 49012d5407ec2fd0725b1e0cae5af084056288c1e82daniel@transgaming.com 491087e57890abbf89bc36e8769abdb1354ba6aeb06daniel@transgaming.com bool skipDraw(GLenum drawMode); 492ace5e6635884b86afb3997ab21e29b9af92e0c81daniel@transgaming.com 493c23ff6439312f2c9e52742d2115f62ad665a6582daniel@transgaming.com void initExtensionString(); 494c23ff6439312f2c9e52742d2115f62ad665a6582daniel@transgaming.com void initRendererString(); 495c23ff6439312f2c9e52742d2115f62ad665a6582daniel@transgaming.com 49643b004269af441999f2535cd1a9e7bb45e945b08Geoff Lang size_t getBoundFramebufferTextureSerials(FramebufferTextureSerialArray *outSerialArray); 497cdf22f94acaf86ebfb02e123deafcb41010cfccfGeoff Lang 498dedd1a0f6c43d9db06537c782982090030270a45daniel@transgaming.com rx::Renderer *const mRenderer; 4994f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 500daea4b4584cdbd8c82dd9946eb07a32ab2f278b7shannon.woods%transgaming.com@gtempaccount.com int mClientVersion; 501daea4b4584cdbd8c82dd9946eb07a32ab2f278b7shannon.woods%transgaming.com@gtempaccount.com 502baa7451e3545bdfcf0e4c640a23a474e394446d9daniel@transgaming.com State mState; 503428d15873f44c7da878da9bb05da0276a6f7c1eedaniel@transgaming.com 5044e3bad4e639732bab6787aca9de5aa5ca3d3496aapatrick@chromium.org BindingPointer<Texture2D> mTexture2DZero; 5054e3bad4e639732bab6787aca9de5aa5ca3d3496aapatrick@chromium.org BindingPointer<TextureCubeMap> mTextureCubeMapZero; 506c416e1cc09f1404d3dbcf23cd55956d37ebe67d2shannon.woods%transgaming.com@gtempaccount.com BindingPointer<Texture3D> mTexture3DZero; 50790dbc44c79052a9ceaab2c782a67e7d149da5385shannon.woods%transgaming.com@gtempaccount.com BindingPointer<Texture2DArray> mTexture2DArrayZero; 508ff8bdfb065ddd9202cc27df894ad39f1a024fdd4apatrick@chromium.org 5099b8f92ea05957ca90bbff3fe4c56e8ec7772b131Geoff Lang typedef std::unordered_map<GLuint, Framebuffer*> FramebufferMap; 510ff8bdfb065ddd9202cc27df894ad39f1a024fdd4apatrick@chromium.org FramebufferMap mFramebufferMap; 5111a23334f9536101cb777451bd6e5b9f13dd5c818benvanik@google.com HandleAllocator mFramebufferHandleAllocator; 5124f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 5139b8f92ea05957ca90bbff3fe4c56e8ec7772b131Geoff Lang typedef std::unordered_map<GLuint, FenceNV*> FenceNVMap; 51433dc84394ba08700d700a3da692e8de18433a031Jamie Madill FenceNVMap mFenceNVMap; 51533dc84394ba08700d700a3da692e8de18433a031Jamie Madill HandleAllocator mFenceNVHandleAllocator; 516d3bd0ad320fb246d9b42a0161c27eeb56c7e9160apatrick@chromium.org 5179b8f92ea05957ca90bbff3fe4c56e8ec7772b131Geoff Lang typedef std::unordered_map<GLuint, Query*> QueryMap; 51886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com QueryMap mQueryMap; 51986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com HandleAllocator mQueryHandleAllocator; 52086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com 5219b8f92ea05957ca90bbff3fe4c56e8ec7772b131Geoff Lang typedef std::unordered_map<GLuint, VertexArray*> VertexArrayMap; 52257a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill VertexArrayMap mVertexArrayMap; 52357a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill HandleAllocator mVertexArrayHandleAllocator; 52457a8972e5ddf7611860d9767c8aed4793c3929afJamie Madill 525c8058451c87ec298683bf484813016b20bf36777Geoff Lang BindingPointer<TransformFeedback> mTransformFeedbackZero; 526c8058451c87ec298683bf484813016b20bf36777Geoff Lang typedef std::unordered_map<GLuint, TransformFeedback*> TransformFeedbackMap; 527c8058451c87ec298683bf484813016b20bf36777Geoff Lang TransformFeedbackMap mTransformFeedbackMap; 528c8058451c87ec298683bf484813016b20bf36777Geoff Lang HandleAllocator mTransformFeedbackAllocator; 529c8058451c87ec298683bf484813016b20bf36777Geoff Lang 530302df74cc22fdf426334aebd9dbad4d7b3df5be2shannonwoods@chromium.org std::vector<std::string> mExtensionStringList; 531302df74cc22fdf426334aebd9dbad4d7b3df5be2shannonwoods@chromium.org const char *mCombinedExtensionsString; 532ca1ac1f113e18815bab14a3465039bd57b41c10ddaniel@transgaming.com const char *mRendererString; 533da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com 5340e64dd6dc05a4d3e31f6cbc69ceeafc4a863a65edaniel@transgaming.com BindingPointer<Texture> mIncompleteTextures[TEXTURE_TYPE_COUNT]; 53512d5407ec2fd0725b1e0cae5af084056288c1e82daniel@transgaming.com 5364f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com // Recorded errors 5374f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool mInvalidEnum; 5384f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool mInvalidValue; 5394f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool mInvalidOperation; 5404f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool mOutOfMemory; 5414f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com bool mInvalidFramebufferOperation; 542159acdf5f6370e89f3deda77cd3752ad11d3f76cdaniel@transgaming.com 54309fcc9fe6a6247af02ca203a9df4ffb00f2ee003daniel@transgaming.com // Current/lost context flags 544159acdf5f6370e89f3deda77cd3752ad11d3f76cdaniel@transgaming.com bool mHasBeenCurrent; 54509fcc9fe6a6247af02ca203a9df4ffb00f2ee003daniel@transgaming.com bool mContextLost; 54617f548cb6b08775353de38f468ba1ac58b668b6adaniel@transgaming.com GLenum mResetStatus; 5474ff960d9166a283d4dd6c072490a5437f05b9eb4daniel@transgaming.com GLenum mResetStrategy; 5484ff960d9166a283d4dd6c072490a5437f05b9eb4daniel@transgaming.com bool mRobustAccess; 549296ca9cc4ad7c8891673d74cea7c75b8fe49bc92daniel@transgaming.com 550989c1c85b82277de2b080c0ce2174a668e1b96badaniel@transgaming.com BindingPointer<ProgramBinary> mCurrentProgramBinary; 551040c4db30d2905762710d132e20a79ca261eacc3jbauman@chromium.org Framebuffer *mBoundDrawFramebuffer; 5524fa08339e2f67491a1ed8af0862776c0e07b4a50daniel@transgaming.com 5539549bead5dc8bb07a21296ea8bea97939285c699daniel@transgaming.com int mMajorShaderModel; 55413be3e43d5ec86021a920550df137d8de7f120f4daniel@transgaming.com float mMaximumPointSize; 555af29cac91acdc574464e3966bf9da5c8cf24acd2daniel@transgaming.com bool mSupportsVertexTexture; 5564f9ef0d66706a4bc3e467f2f9c49690b353c23fddaniel@transgaming.com bool mSupportsNonPower2Texture; 557c6f7f9d504cdc62773a73114c1a202d1bade4ffcdaniel@transgaming.com bool mSupportsInstancing; 5588ce2f8f8e9597c045e6cf0c150c9302e7f3466b6shannon.woods@transgaming.com int mMaxViewportDimension; 5595d752f29189bbeb3da84b66c7335192a4baf6528daniel@transgaming.com int mMaxRenderbufferDimension; 560c1fdf6baa488d6bf4a16d68c5d83caf2c95563dcshannon.woods%transgaming.com@gtempaccount.com int mMax2DTextureDimension; 5615d752f29189bbeb3da84b66c7335192a4baf6528daniel@transgaming.com int mMaxCubeTextureDimension; 562c1fdf6baa488d6bf4a16d68c5d83caf2c95563dcshannon.woods%transgaming.com@gtempaccount.com int mMax3DTextureDimension; 563a98a8111a4b82a2715de171fcf2c7417a9cbfc6fshannon.woods%transgaming.com@gtempaccount.com int mMax2DArrayTextureLayers; 564ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int mMax2DTextureLevel; 565ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int mMaxCubeTextureLevel; 566ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int mMax3DTextureLevel; 567ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang int mMax2DArrayTextureLevel; 56807ab841a88e2779dec5d5a347a8403c7d84f28e8daniel@transgaming.com float mMaxTextureAnisotropy; 569d3bd0ad320fb246d9b42a0161c27eeb56c7e9160apatrick@chromium.org bool mSupportsEventQueries; 57086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com bool mSupportsOcclusionQueries; 571bec04bf43b2603f33a84c6eb6b6fa4b13ad10161shannon.woods@transgaming.com bool mSupportsBGRATextures; 57250c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool mSupportsDXT1Textures; 57350c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool mSupportsDXT3Textures; 57450c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org bool mSupportsDXT5Textures; 575bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat32Textures; 576bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat32LinearFilter; 577bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat32RenderableTextures; 578bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat16Textures; 579bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat16LinearFilter; 580bbeffbb6772d2c1e324e7f8880ee14d992f464a6daniel@transgaming.com bool mSupportsFloat16RenderableTextures; 581ed828e5b2acc9cb0c6ea30416919483b45cf911adaniel@transgaming.com bool mSupportsLuminanceTextures; 582ed828e5b2acc9cb0c6ea30416919483b45cf911adaniel@transgaming.com bool mSupportsLuminanceAlphaTextures; 583632192dd8098d303fbf4d66f5d61c7363039a818Geoff Lang bool mSupportsRGTextures; 5841c49f79dd58f44e2192cf9137cfbe8109c34953bdaniel@transgaming.com bool mSupportsDepthTextures; 58583921386363c71f582abd3e13d5f4d5f9d47cc86daniel@transgaming.com bool mSupports32bitIndices; 58607ab841a88e2779dec5d5a347a8403c7d84f28e8daniel@transgaming.com bool mSupportsTextureFilterAnisotropy; 587b3801744ed9df17a7d8d290e203938818ad90addShannon Woods bool mSupportsPBOs; 58850c526d210cb65f66e2ad6b25cacdacc41e10796gman@chromium.org int mNumCompressedTextureFormats; 589a79f9d18cba5a9c4b564d3d2f777b585f61f19b0daniel@transgaming.com 590da13f3e902a857ce2b9a6420347335de05696b08daniel@transgaming.com ResourceManager *mResourceManager; 5914f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com}; 5924f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com} 5934f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com 5944f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com#endif // INCLUDE_CONTEXT_H_ 595