summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/Context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/Context.h')
-rw-r--r--src/3rdparty/angle/src/libANGLE/Context.h1154
1 files changed, 0 insertions, 1154 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/Context.h b/src/3rdparty/angle/src/libANGLE/Context.h
deleted file mode 100644
index 38c4e7b4d1..0000000000
--- a/src/3rdparty/angle/src/libANGLE/Context.h
+++ /dev/null
@@ -1,1154 +0,0 @@
-//
-// Copyright (c) 2002-2014 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// Context.h: Defines the gl::Context class, managing all GL state and performing
-// rendering operations. It is the GLES2 specific implementation of EGLContext.
-
-#ifndef LIBANGLE_CONTEXT_H_
-#define LIBANGLE_CONTEXT_H_
-
-#include <set>
-#include <string>
-
-#include "angle_gl.h"
-#include "common/MemoryBuffer.h"
-#include "common/angleutils.h"
-#include "libANGLE/Caps.h"
-#include "libANGLE/Constants.h"
-#include "libANGLE/ContextState.h"
-#include "libANGLE/Error.h"
-#include "libANGLE/HandleAllocator.h"
-#include "libANGLE/PackedGLEnums.h"
-#include "libANGLE/RefCountObject.h"
-#include "libANGLE/ResourceMap.h"
-#include "libANGLE/VertexAttribute.h"
-#include "libANGLE/Workarounds.h"
-#include "libANGLE/angletypes.h"
-
-namespace rx
-{
-class ContextImpl;
-class EGLImplFactory;
-}
-
-namespace egl
-{
-class AttributeMap;
-class Surface;
-struct Config;
-class Thread;
-}
-
-namespace gl
-{
-class Buffer;
-class Compiler;
-class FenceNV;
-class Sync;
-class Framebuffer;
-class MemoryProgramCache;
-class Program;
-class Query;
-class Renderbuffer;
-class Sampler;
-class Shader;
-class Texture;
-class TransformFeedback;
-class VertexArray;
-struct VertexAttribute;
-class ProgramPipeline;
-
-class Context final : public ValidationContext
-{
- public:
- Context(rx::EGLImplFactory *implFactory,
- const egl::Config *config,
- const Context *shareContext,
- TextureManager *shareTextures,
- MemoryProgramCache *memoryProgramCache,
- const egl::AttributeMap &attribs,
- const egl::DisplayExtensions &displayExtensions);
-
- egl::Error onDestroy(const egl::Display *display);
- ~Context() override;
-
- egl::Error makeCurrent(egl::Display *display, egl::Surface *surface);
- egl::Error releaseSurface(const egl::Display *display);
-
- // These create and destroy methods are merely pass-throughs to
- // ResourceManager, which owns these object types
- GLuint createBuffer();
- GLuint createShader(GLenum type);
- GLuint createProgram();
- GLuint createTexture();
- GLuint createRenderbuffer();
- GLuint createPaths(GLsizei range);
- GLuint createProgramPipeline();
- GLuint createShaderProgramv(GLenum type, GLsizei count, const GLchar *const *strings);
-
- void deleteBuffer(GLuint buffer);
- void deleteShader(GLuint shader);
- void deleteProgram(GLuint program);
- void deleteTexture(GLuint texture);
- void deleteRenderbuffer(GLuint renderbuffer);
- void deletePaths(GLuint first, GLsizei range);
- void deleteProgramPipeline(GLuint pipeline);
-
- // CHROMIUM_path_rendering
- bool hasPathData(GLuint path) const;
- bool hasPath(GLuint path) const;
- void setPathCommands(GLuint path,
- GLsizei numCommands,
- const GLubyte *commands,
- GLsizei numCoords,
- GLenum coordType,
- const void *coords);
- void setPathParameterf(GLuint path, GLenum pname, GLfloat value);
- void getPathParameterfv(GLuint path, GLenum pname, GLfloat *value) const;
- void setPathStencilFunc(GLenum func, GLint ref, GLuint mask);
-
- // Framebuffers are owned by the Context, so these methods do not pass through
- GLuint createFramebuffer();
- void deleteFramebuffer(GLuint framebuffer);
-
- // NV Fences are owned by the Context.
- GLuint createFenceNV();
- void deleteFenceNV(GLuint fence);
-
- void bindTexture(GLenum target, GLuint handle);
- void bindReadFramebuffer(GLuint framebufferHandle);
- void bindDrawFramebuffer(GLuint framebufferHandle);
- void bindVertexArray(GLuint vertexArrayHandle);
- void bindVertexBuffer(GLuint bindingIndex,
- GLuint bufferHandle,
- GLintptr offset,
- GLsizei stride);
- void bindSampler(GLuint textureUnit, GLuint samplerHandle);
- void bindImageTexture(GLuint unit,
- GLuint texture,
- GLint level,
- GLboolean layered,
- GLint layer,
- GLenum access,
- GLenum format);
- void useProgram(GLuint program);
- void useProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
- void bindTransformFeedback(GLenum target, GLuint transformFeedbackHandle);
- void bindProgramPipeline(GLuint pipelineHandle);
-
- void beginQuery(GLenum target, GLuint query);
- void endQuery(GLenum target);
- void queryCounter(GLuint id, GLenum target);
- void getQueryiv(GLenum target, GLenum pname, GLint *params);
- void getQueryObjectiv(GLuint id, GLenum pname, GLint *params);
- void getQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
- void getQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
- void getQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
-
- void vertexAttribDivisor(GLuint index, GLuint divisor);
- void vertexBindingDivisor(GLuint bindingIndex, GLuint divisor);
-
- void getBufferParameteriv(BufferBinding target, GLenum pname, GLint *params);
- void getFramebufferAttachmentParameteriv(GLenum target,
- GLenum attachment,
- GLenum pname,
- GLint *params);
- void getRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
-
- void getTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
- void getTexParameteriv(GLenum target, GLenum pname, GLint *params);
- void getTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
- void getTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
- void texParameterf(GLenum target, GLenum pname, GLfloat param);
- void texParameterfv(GLenum target, GLenum pname, const GLfloat *params);
- void texParameteri(GLenum target, GLenum pname, GLint param);
- void texParameteriv(GLenum target, GLenum pname, const GLint *params);
-
- void samplerParameteri(GLuint sampler, GLenum pname, GLint param);
- void samplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
- void samplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
- void samplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
-
- void getSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
- void getSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
-
- void programParameteri(GLuint program, GLenum pname, GLint value);
-
- GLuint getProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
- void getProgramResourceName(GLuint program,
- GLenum programInterface,
- GLuint index,
- GLsizei bufSize,
- GLsizei *length,
- GLchar *name);
- GLint getProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
- void getProgramResourceiv(GLuint program,
- GLenum programInterface,
- GLuint index,
- GLsizei propCount,
- const GLenum *props,
- GLsizei bufSize,
- GLsizei *length,
- GLint *params);
-
- void getProgramInterfaceiv(GLuint program,
- GLenum programInterface,
- GLenum pname,
- GLint *params);
-
- Buffer *getBuffer(GLuint handle) const;
- FenceNV *getFenceNV(GLuint handle);
- Sync *getSync(GLsync handle) const;
- Texture *getTexture(GLuint handle) const;
- Framebuffer *getFramebuffer(GLuint handle) const;
- Renderbuffer *getRenderbuffer(GLuint handle) const;
- VertexArray *getVertexArray(GLuint handle) const;
- Sampler *getSampler(GLuint handle) const;
- Query *getQuery(GLuint handle, bool create, GLenum type);
- Query *getQuery(GLuint handle) const;
- TransformFeedback *getTransformFeedback(GLuint handle) const;
- ProgramPipeline *getProgramPipeline(GLuint handle) const;
-
- void objectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
- void objectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);
- void getObjectLabel(GLenum identifier,
- GLuint name,
- GLsizei bufSize,
- GLsizei *length,
- GLchar *label) const;
- void getObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label) const;
-
- Texture *getTargetTexture(GLenum target) const;
- Texture *getSamplerTexture(unsigned int sampler, GLenum type) const;
-
- Compiler *getCompiler() const;
-
- bool isSampler(GLuint samplerName) const;
-
- bool isVertexArrayGenerated(GLuint vertexArray);
- bool isTransformFeedbackGenerated(GLuint vertexArray);
-
- void getBooleanv(GLenum pname, GLboolean *params);
- void getBooleanvImpl(GLenum pname, GLboolean *params);
- void getFloatv(GLenum pname, GLfloat *params);
- void getFloatvImpl(GLenum pname, GLfloat *params);
- void getIntegerv(GLenum pname, GLint *params);
- void getIntegervImpl(GLenum pname, GLint *params);
- void getInteger64vImpl(GLenum pname, GLint64 *params);
- void getPointerv(GLenum pname, void **params) const;
- void getBooleani_v(GLenum target, GLuint index, GLboolean *data);
- void getIntegeri_v(GLenum target, GLuint index, GLint *data);
- void getInteger64i_v(GLenum target, GLuint index, GLint64 *data);
-
- void activeShaderProgram(GLuint pipeline, GLuint program);
- void activeTexture(GLenum texture);
- void blendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
- void blendEquation(GLenum mode);
- void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
- void blendFunc(GLenum sfactor, GLenum dfactor);
- void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
- void clearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
- void clearDepthf(GLfloat depth);
- void clearStencil(GLint s);
- void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
- void cullFace(CullFaceMode mode);
- void depthFunc(GLenum func);
- void depthMask(GLboolean flag);
- void depthRangef(GLfloat zNear, GLfloat zFar);
- void disable(GLenum cap);
- void disableVertexAttribArray(GLuint index);
- void enable(GLenum cap);
- void enableVertexAttribArray(GLuint index);
- void frontFace(GLenum mode);
- void hint(GLenum target, GLenum mode);
- void lineWidth(GLfloat width);
- void pixelStorei(GLenum pname, GLint param);
- void polygonOffset(GLfloat factor, GLfloat units);
- void sampleCoverage(GLfloat value, GLboolean invert);
- void sampleMaski(GLuint maskNumber, GLbitfield mask);
- void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
- void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
- void stencilMaskSeparate(GLenum face, GLuint mask);
- void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
- void vertexAttrib1f(GLuint index, GLfloat x);
- void vertexAttrib1fv(GLuint index, const GLfloat *values);
- void vertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
- void vertexAttrib2fv(GLuint index, const GLfloat *values);
- void vertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
- void vertexAttrib3fv(GLuint index, const GLfloat *values);
- void vertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
- void vertexAttrib4fv(GLuint index, const GLfloat *values);
- void vertexAttribFormat(GLuint attribIndex,
- GLint size,
- GLenum type,
- GLboolean normalized,
- GLuint relativeOffset);
- void vertexAttribIFormat(GLuint attribIndex, GLint size, GLenum type, GLuint relativeOffset);
- void vertexAttribBinding(GLuint attribIndex, GLuint bindingIndex);
- void vertexAttribPointer(GLuint index,
- GLint size,
- GLenum type,
- GLboolean normalized,
- GLsizei stride,
- const void *ptr);
- void vertexAttribIPointer(GLuint index,
- GLint size,
- GLenum type,
- GLsizei stride,
- const void *pointer);
- void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
-
- void vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
- void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
- void vertexAttribI4iv(GLuint index, const GLint *v);
- void vertexAttribI4uiv(GLuint index, const GLuint *v);
- void getVertexAttribiv(GLuint index, GLenum pname, GLint *params);
- void getVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
- void getVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
- void getVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
- void getVertexAttribPointerv(GLuint index, GLenum pname, void **pointer);
-
- void debugMessageControl(GLenum source,
- GLenum type,
- GLenum severity,
- GLsizei count,
- const GLuint *ids,
- GLboolean enabled);
- void debugMessageInsert(GLenum source,
- GLenum type,
- GLuint id,
- GLenum severity,
- GLsizei length,
- const GLchar *buf);
- void debugMessageCallback(GLDEBUGPROCKHR callback, const void *userParam);
- GLuint getDebugMessageLog(GLuint count,
- GLsizei bufSize,
- GLenum *sources,
- GLenum *types,
- GLuint *ids,
- GLenum *severities,
- GLsizei *lengths,
- GLchar *messageLog);
- void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
- void popDebugGroup();
-
- void clear(GLbitfield mask);
- void clearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *values);
- void clearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *values);
- void clearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *values);
- void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
-
- void drawArrays(GLenum mode, GLint first, GLsizei count);
- void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
-
- void drawElements(GLenum mode, GLsizei count, GLenum type, const void *indices);
- void drawElementsInstanced(GLenum mode,
- GLsizei count,
- GLenum type,
- const void *indices,
- GLsizei instances);
- void drawRangeElements(GLenum mode,
- GLuint start,
- GLuint end,
- GLsizei count,
- GLenum type,
- const void *indices);
- void drawArraysIndirect(GLenum mode, const void *indirect);
- void drawElementsIndirect(GLenum mode, GLenum type, const void *indirect);
-
- void blitFramebuffer(GLint srcX0,
- GLint srcY0,
- GLint srcX1,
- GLint srcY1,
- GLint dstX0,
- GLint dstY0,
- GLint dstX1,
- GLint dstY1,
- GLbitfield mask,
- GLenum filter);
-
- void readPixels(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- void *pixels);
-
- void copyTexImage2D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLint border);
-
- void copyTexSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height);
-
- void copyTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height);
-
- void framebufferTexture2D(GLenum target,
- GLenum attachment,
- GLenum textarget,
- GLuint texture,
- GLint level);
-
- void framebufferRenderbuffer(GLenum target,
- GLenum attachment,
- GLenum renderbuffertarget,
- GLuint renderbuffer);
-
- void framebufferTextureLayer(GLenum target,
- GLenum attachment,
- GLuint texture,
- GLint level,
- GLint layer);
- void framebufferTextureMultiviewLayeredANGLE(GLenum target,
- GLenum attachment,
- GLuint texture,
- GLint level,
- GLint baseViewIndex,
- GLsizei numViews);
- void framebufferTextureMultiviewSideBySideANGLE(GLenum target,
- GLenum attachment,
- GLuint texture,
- GLint level,
- GLsizei numViews,
- const GLint *viewportOffsets);
-
- void drawBuffers(GLsizei n, const GLenum *bufs);
- void readBuffer(GLenum mode);
-
- void discardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
- void invalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
- void invalidateSubFramebuffer(GLenum target,
- GLsizei numAttachments,
- const GLenum *attachments,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height);
-
- void texImage2D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLenum format,
- GLenum type,
- const void *pixels);
- void texImage3D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLenum format,
- GLenum type,
- const void *pixels);
- void texSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- const void *pixels);
- void texSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type,
- const void *pixels);
- void compressedTexImage2D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLsizei imageSize,
- const void *data);
- void compressedTexImage3D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLsizei imageSize,
- const void *data);
- void compressedTexSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLsizei imageSize,
- const void *data);
- void compressedTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLsizei imageSize,
- const void *data);
- void copyTextureCHROMIUM(GLuint sourceId,
- GLint sourceLevel,
- GLenum destTarget,
- GLuint destId,
- GLint destLevel,
- GLint internalFormat,
- GLenum destType,
- GLboolean unpackFlipY,
- GLboolean unpackPremultiplyAlpha,
- GLboolean unpackUnmultiplyAlpha);
- void copySubTextureCHROMIUM(GLuint sourceId,
- GLint sourceLevel,
- GLenum destTarget,
- GLuint destId,
- GLint destLevel,
- GLint xoffset,
- GLint yoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLboolean unpackFlipY,
- GLboolean unpackPremultiplyAlpha,
- GLboolean unpackUnmultiplyAlpha);
- void compressedCopyTextureCHROMIUM(GLuint sourceId, GLuint destId);
-
- void generateMipmap(GLenum target);
-
- void flush();
- void finish();
-
- void getBufferPointerv(BufferBinding target, GLenum pname, void **params);
- void *mapBuffer(BufferBinding target, GLenum access);
- GLboolean unmapBuffer(BufferBinding target);
- void *mapBufferRange(BufferBinding target,
- GLintptr offset,
- GLsizeiptr length,
- GLbitfield access);
- void flushMappedBufferRange(BufferBinding target, GLintptr offset, GLsizeiptr length);
-
- void beginTransformFeedback(GLenum primitiveMode);
-
- bool hasActiveTransformFeedback(GLuint program) const;
-
- void insertEventMarker(GLsizei length, const char *marker);
- void pushGroupMarker(GLsizei length, const char *marker);
- void popGroupMarker();
-
- void bindUniformLocation(GLuint program, GLint location, const GLchar *name);
- void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
- void renderbufferStorageMultisample(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height);
-
- void getSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
-
- // CHROMIUM_framebuffer_mixed_samples
- void setCoverageModulation(GLenum components);
-
- // CHROMIUM_path_rendering
- void loadPathRenderingMatrix(GLenum matrixMode, const GLfloat *matrix);
- void loadPathRenderingIdentityMatrix(GLenum matrixMode);
- void stencilFillPath(GLuint path, GLenum fillMode, GLuint mask);
- void stencilStrokePath(GLuint path, GLint reference, GLuint mask);
- void coverFillPath(GLuint path, GLenum coverMode);
- void coverStrokePath(GLuint path, GLenum coverMode);
- void stencilThenCoverFillPath(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
- void stencilThenCoverStrokePath(GLuint path, GLint reference, GLuint mask, GLenum coverMode);
- void coverFillPathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBase,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat *transformValues);
- void coverStrokePathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBase,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat *transformValues);
- void stencilFillPathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBAse,
- GLenum fillMode,
- GLuint mask,
- GLenum transformType,
- const GLfloat *transformValues);
- void stencilStrokePathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBase,
- GLint reference,
- GLuint mask,
- GLenum transformType,
- const GLfloat *transformValues);
- void stencilThenCoverFillPathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBase,
- GLenum fillMode,
- GLuint mask,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat *transformValues);
- void stencilThenCoverStrokePathInstanced(GLsizei numPaths,
- GLenum pathNameType,
- const void *paths,
- GLuint pathBase,
- GLint reference,
- GLuint mask,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat *transformValues);
- void bindFragmentInputLocation(GLuint program, GLint location, const GLchar *name);
- void programPathFragmentInputGen(GLuint program,
- GLint location,
- GLenum genMode,
- GLint components,
- const GLfloat *coeffs);
-
- void bufferData(BufferBinding target, GLsizeiptr size, const void *data, BufferUsage usage);
- void bufferSubData(BufferBinding target, GLintptr offset, GLsizeiptr size, const void *data);
- void attachShader(GLuint program, GLuint shader);
- void bindAttribLocation(GLuint program, GLuint index, const GLchar *name);
- void bindBuffer(BufferBinding target, GLuint buffer);
- void bindBufferBase(BufferBinding target, GLuint index, GLuint buffer);
- void bindBufferRange(BufferBinding target,
- GLuint index,
- GLuint buffer,
- GLintptr offset,
- GLsizeiptr size);
- void bindFramebuffer(GLenum target, GLuint framebuffer);
- void bindRenderbuffer(GLenum target, GLuint renderbuffer);
-
- void texStorage2DMultisample(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLboolean fixedsamplelocations);
-
- void getMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
-
- void copyBufferSubData(BufferBinding readTarget,
- BufferBinding writeTarget,
- GLintptr readOffset,
- GLintptr writeOffset,
- GLsizeiptr size);
-
- GLenum checkFramebufferStatus(GLenum target);
- void compileShader(GLuint shader);
- void deleteBuffers(GLsizei n, const GLuint *buffers);
- void deleteFramebuffers(GLsizei n, const GLuint *framebuffers);
- void deleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
- void deleteTextures(GLsizei n, const GLuint *textures);
- void detachShader(GLuint program, GLuint shader);
- void genBuffers(GLsizei n, GLuint *buffers);
- void genFramebuffers(GLsizei n, GLuint *framebuffers);
- void genRenderbuffers(GLsizei n, GLuint *renderbuffers);
- void genTextures(GLsizei n, GLuint *textures);
- void getActiveAttrib(GLuint program,
- GLuint index,
- GLsizei bufsize,
- GLsizei *length,
- GLint *size,
- GLenum *type,
- GLchar *name);
- void getActiveUniform(GLuint program,
- GLuint index,
- GLsizei bufsize,
- GLsizei *length,
- GLint *size,
- GLenum *type,
- GLchar *name);
- void getAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders);
- GLint getAttribLocation(GLuint program, const GLchar *name);
- void getProgramiv(GLuint program, GLenum pname, GLint *params);
- void getProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
- void getProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog);
- void getProgramPipelineInfoLog(GLuint pipeline,
- GLsizei bufSize,
- GLsizei *length,
- GLchar *infoLog);
- void getShaderiv(GLuint shader, GLenum pname, GLint *params);
- void getShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog);
- void getShaderPrecisionFormat(GLenum shadertype,
- GLenum precisiontype,
- GLint *range,
- GLint *precision);
- void getShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
- void getUniformfv(GLuint program, GLint location, GLfloat *params);
- void getUniformiv(GLuint program, GLint location, GLint *params);
- GLint getUniformLocation(GLuint program, const GLchar *name);
- GLboolean isBuffer(GLuint buffer);
- GLboolean isEnabled(GLenum cap);
- GLboolean isFramebuffer(GLuint framebuffer);
- GLboolean isProgram(GLuint program);
- GLboolean isRenderbuffer(GLuint renderbuffer);
- GLboolean isShader(GLuint shader);
- GLboolean isTexture(GLuint texture);
- void linkProgram(GLuint program);
- void releaseShaderCompiler();
- void shaderBinary(GLsizei n,
- const GLuint *shaders,
- GLenum binaryformat,
- const void *binary,
- GLsizei length);
- void shaderSource(GLuint shader,
- GLsizei count,
- const GLchar *const *string,
- const GLint *length);
- void stencilFunc(GLenum func, GLint ref, GLuint mask);
- void stencilMask(GLuint mask);
- void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
- void uniform1f(GLint location, GLfloat x);
- void uniform1fv(GLint location, GLsizei count, const GLfloat *v);
- void uniform1i(GLint location, GLint x);
- void uniform1iv(GLint location, GLsizei count, const GLint *v);
- void uniform2f(GLint location, GLfloat x, GLfloat y);
- void uniform2fv(GLint location, GLsizei count, const GLfloat *v);
- void uniform2i(GLint location, GLint x, GLint y);
- void uniform2iv(GLint location, GLsizei count, const GLint *v);
- void uniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
- void uniform3fv(GLint location, GLsizei count, const GLfloat *v);
- void uniform3i(GLint location, GLint x, GLint y, GLint z);
- void uniform3iv(GLint location, GLsizei count, const GLint *v);
- void uniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
- void uniform4fv(GLint location, GLsizei count, const GLfloat *v);
- void uniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
- void uniform4iv(GLint location, GLsizei count, const GLint *v);
- void uniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
- void uniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
- void uniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
- void validateProgram(GLuint program);
- void validateProgramPipeline(GLuint pipeline);
-
- void genQueries(GLsizei n, GLuint *ids);
- void deleteQueries(GLsizei n, const GLuint *ids);
- GLboolean isQuery(GLuint id);
-
- void uniform1ui(GLint location, GLuint v0);
- void uniform2ui(GLint location, GLuint v0, GLuint v1);
- void uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
- void uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
- void uniform1uiv(GLint location, GLsizei count, const GLuint *value);
- void uniform2uiv(GLint location, GLsizei count, const GLuint *value);
- void uniform3uiv(GLint location, GLsizei count, const GLuint *value);
- void uniform4uiv(GLint location, GLsizei count, const GLuint *value);
-
- void uniformMatrix2x3fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
- void uniformMatrix3x2fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
- void uniformMatrix2x4fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
- void uniformMatrix4x2fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
- void uniformMatrix3x4fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
- void uniformMatrix4x3fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void deleteVertexArrays(GLsizei n, const GLuint *arrays);
- void genVertexArrays(GLsizei n, GLuint *arrays);
- bool isVertexArray(GLuint array);
-
- void endTransformFeedback();
- void transformFeedbackVaryings(GLuint program,
- GLsizei count,
- const GLchar *const *varyings,
- GLenum bufferMode);
- void getTransformFeedbackVarying(GLuint program,
- GLuint index,
- GLsizei bufSize,
- GLsizei *length,
- GLsizei *size,
- GLenum *type,
- GLchar *name);
-
- void deleteTransformFeedbacks(GLsizei n, const GLuint *ids);
- void genTransformFeedbacks(GLsizei n, GLuint *ids);
- bool isTransformFeedback(GLuint id);
- void pauseTransformFeedback();
- void resumeTransformFeedback();
-
- void getProgramBinary(GLuint program,
- GLsizei bufSize,
- GLsizei *length,
- GLenum *binaryFormat,
- void *binary);
- void programBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
-
- void getUniformuiv(GLuint program, GLint location, GLuint *params);
- GLint getFragDataLocation(GLuint program, const GLchar *name);
- void getUniformIndices(GLuint program,
- GLsizei uniformCount,
- const GLchar *const *uniformNames,
- GLuint *uniformIndices);
- void getActiveUniformsiv(GLuint program,
- GLsizei uniformCount,
- const GLuint *uniformIndices,
- GLenum pname,
- GLint *params);
- GLuint getUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
- void getActiveUniformBlockiv(GLuint program,
- GLuint uniformBlockIndex,
- GLenum pname,
- GLint *params);
- void getActiveUniformBlockName(GLuint program,
- GLuint uniformBlockIndex,
- GLsizei bufSize,
- GLsizei *length,
- GLchar *uniformBlockName);
- void uniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
-
- GLsync fenceSync(GLenum condition, GLbitfield flags);
- GLboolean isSync(GLsync sync);
- void deleteSync(GLsync sync);
- GLenum clientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
- void waitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
- void getInteger64v(GLenum pname, GLint64 *params);
-
- void getBufferParameteri64v(BufferBinding target, GLenum pname, GLint64 *params);
- void genSamplers(GLsizei count, GLuint *samplers);
- void deleteSamplers(GLsizei count, const GLuint *samplers);
- void getInternalformativ(GLenum target,
- GLenum internalformat,
- GLenum pname,
- GLsizei bufSize,
- GLint *params);
-
- void programUniform1i(GLuint program, GLint location, GLint v0);
- void programUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
- void programUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
- void programUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
- void programUniform1ui(GLuint program, GLint location, GLuint v0);
- void programUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
- void programUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
- void programUniform4ui(GLuint program,
- GLint location,
- GLuint v0,
- GLuint v1,
- GLuint v2,
- GLuint v3);
- void programUniform1f(GLuint program, GLint location, GLfloat v0);
- void programUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
- void programUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
- void programUniform4f(GLuint program,
- GLint location,
- GLfloat v0,
- GLfloat v1,
- GLfloat v2,
- GLfloat v3);
- void programUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value);
- void programUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value);
- void programUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value);
- void programUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value);
- void programUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
- void programUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
- void programUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
- void programUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
- void programUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
- void programUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
- void programUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
- void programUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
-
- void programUniformMatrix2fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix3fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix4fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix2x3fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix3x2fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix2x4fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix4x2fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix3x4fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void programUniformMatrix4x3fv(GLuint program,
- GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat *value);
-
- void deleteProgramPipelines(GLsizei n, const GLuint *pipelines);
- void genProgramPipelines(GLsizei n, GLuint *pipelines);
- GLboolean isProgramPipeline(GLuint pipeline);
-
- // Consumes the error.
- void handleError(const Error &error) override;
-
- GLenum getError();
- void markContextLost();
- bool isContextLost();
- GLenum getResetStatus();
- bool isResetNotificationEnabled();
-
- const egl::Config *getConfig() const;
- EGLenum getClientType() const;
- EGLenum getRenderBuffer() const;
-
- const GLubyte *getString(GLenum name) const;
- const GLubyte *getStringi(GLenum name, GLuint index) const;
-
- size_t getExtensionStringCount() const;
-
- bool isExtensionRequestable(const char *name);
- void requestExtension(const char *name);
- size_t getRequestableExtensionStringCount() const;
-
- rx::ContextImpl *getImplementation() const { return mImplementation.get(); }
- const Workarounds &getWorkarounds() const;
-
- void getFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
- void framebufferParameteri(GLenum target, GLenum pname, GLint param);
-
- Error getScratchBuffer(size_t requestedSizeBytes, angle::MemoryBuffer **scratchBufferOut) const;
- Error getZeroFilledBuffer(size_t requstedSizeBytes, angle::MemoryBuffer **zeroBufferOut) const;
-
- void dispatchCompute(GLuint numGroupsX, GLuint numGroupsY, GLuint numGroupsZ);
- void dispatchComputeIndirect(GLintptr indirect);
-
- MemoryProgramCache *getMemoryProgramCache() const { return mMemoryProgramCache; }
-
- template <EntryPoint EP, typename... ParamsT>
- void gatherParams(ParamsT &&... params);
-
- void texStorage2D(GLenum target,
- GLsizei levels,
- GLenum internalFormat,
- GLsizei width,
- GLsizei height);
- void texStorage3D(GLenum target,
- GLsizei levels,
- GLenum internalFormat,
- GLsizei width,
- GLsizei height,
- GLsizei depth);
-
- void memoryBarrier(GLbitfield barriers);
- void memoryBarrierByRegion(GLbitfield barriers);
-
- // Notification for a state change in a Texture.
- void onTextureChange(const Texture *texture);
-
- egl::Display *getCurrentDisplay() const { return mCurrentDisplay; }
- egl::Surface *getCurrentDrawSurface() const { return mCurrentSurface; }
- egl::Surface *getCurrentReadSurface() const { return mCurrentSurface; }
-
- bool isRobustResourceInitEnabled() const { return mGLState.isRobustResourceInitEnabled(); }
-
- private:
- Error prepareForDraw();
- void syncRendererState();
- void syncRendererState(const State::DirtyBits &bitMask, const State::DirtyObjects &objectMask);
- void syncStateForReadPixels();
- void syncStateForTexImage();
- void syncStateForClear();
- void syncStateForBlit();
- VertexArray *checkVertexArrayAllocation(GLuint vertexArrayHandle);
- TransformFeedback *checkTransformFeedbackAllocation(GLuint transformFeedback);
-
- void detachBuffer(GLuint buffer);
- void detachTexture(GLuint texture);
- void detachFramebuffer(GLuint framebuffer);
- void detachRenderbuffer(GLuint renderbuffer);
- void detachVertexArray(GLuint vertexArray);
- void detachTransformFeedback(GLuint transformFeedback);
- void detachSampler(GLuint sampler);
- void detachProgramPipeline(GLuint pipeline);
-
- void initRendererString();
- void initVersionStrings();
- void initExtensionStrings();
-
- void initCaps(const egl::DisplayExtensions &displayExtensions, bool robustResourceInit);
- void updateCaps();
- void initWorkarounds();
-
- LabeledObject *getLabeledObject(GLenum identifier, GLuint name) const;
- LabeledObject *getLabeledObjectFromPtr(const void *ptr) const;
-
- std::unique_ptr<rx::ContextImpl> mImplementation;
-
- // Caps to use for validation
- Caps mCaps;
- TextureCapsMap mTextureCaps;
- Extensions mExtensions;
- Limitations mLimitations;
-
- // Shader compiler. Lazily initialized hence the mutable value.
- mutable BindingPointer<Compiler> mCompiler;
-
- State mGLState;
-
- const egl::Config *mConfig;
- EGLenum mClientType;
-
- TextureMap mZeroTextures;
-
- ResourceMap<FenceNV> mFenceNVMap;
- HandleAllocator mFenceNVHandleAllocator;
-
- ResourceMap<Query> mQueryMap;
- HandleAllocator mQueryHandleAllocator;
-
- ResourceMap<VertexArray> mVertexArrayMap;
- HandleAllocator mVertexArrayHandleAllocator;
-
- ResourceMap<TransformFeedback> mTransformFeedbackMap;
- HandleAllocator mTransformFeedbackHandleAllocator;
-
- const char *mVersionString;
- const char *mShadingLanguageString;
- const char *mRendererString;
- const char *mExtensionString;
- std::vector<const char *> mExtensionStrings;
- const char *mRequestableExtensionString;
- std::vector<const char *> mRequestableExtensionStrings;
-
- // Recorded errors
- typedef std::set<GLenum> ErrorSet;
- ErrorSet mErrors;
-
- // Current/lost context flags
- bool mHasBeenCurrent;
- bool mContextLost;
- GLenum mResetStatus;
- bool mContextLostForced;
- GLenum mResetStrategy;
- bool mRobustAccess;
- egl::Surface *mCurrentSurface;
- egl::Display *mCurrentDisplay;
- Framebuffer *mSurfacelessFramebuffer;
- bool mWebGLContext;
- MemoryProgramCache *mMemoryProgramCache;
-
- State::DirtyBits mTexImageDirtyBits;
- State::DirtyObjects mTexImageDirtyObjects;
- State::DirtyBits mReadPixelsDirtyBits;
- State::DirtyObjects mReadPixelsDirtyObjects;
- State::DirtyBits mClearDirtyBits;
- State::DirtyObjects mClearDirtyObjects;
- State::DirtyBits mBlitDirtyBits;
- State::DirtyObjects mBlitDirtyObjects;
-
- Workarounds mWorkarounds;
-
- // Not really a property of context state. The size and contexts change per-api-call.
- mutable angle::ScratchBuffer mScratchBuffer;
- mutable angle::ScratchBuffer mZeroFilledBuffer;
-};
-
-template <EntryPoint EP, typename... ArgsT>
-ANGLE_INLINE void Context::gatherParams(ArgsT &&... args)
-{
- static_assert(sizeof(EntryPointParamType<EP>) <= kParamsBufferSize,
- "Params struct too large, please increase kParamsBufferSize.");
-
- mSavedArgsType = &EntryPointParamType<EP>::TypeInfo;
-
- // Skip doing any work for ParamsBase/Invalid type.
- if (!EntryPointParamType<EP>::TypeInfo.isValid())
- {
- return;
- }
-
- EntryPointParamType<EP> *objBuffer =
- reinterpret_cast<EntryPointParamType<EP> *>(mParamsBuffer.data());
- EntryPointParamType<EP>::template Factory<EP>(objBuffer, this, std::forward<ArgsT>(args)...);
-}
-
-} // namespace gl
-
-#endif // LIBANGLE_CONTEXT_H_