// // Copyright 2016 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. // // ContextNULL.h: // Defines the class interface for ContextNULL, implementing ContextImpl. // #ifndef LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_ #define LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_ #include "libANGLE/renderer/ContextImpl.h" namespace rx { class ContextNULL : public ContextImpl { public: ContextNULL(const gl::ContextState &state); ~ContextNULL() override; gl::Error initialize() override; // Flush and finish. gl::Error flush() override; gl::Error finish() override; // Drawing methods. gl::Error drawArrays(GLenum mode, GLint first, GLsizei count) override; gl::Error drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount) override; gl::Error drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, const gl::IndexRange &indexRange) override; gl::Error drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instances, const gl::IndexRange &indexRange) override; gl::Error drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, const gl::IndexRange &indexRange) override; // CHROMIUM_path_rendering path drawing methods. // Shader creation CompilerImpl *createCompiler() override; ShaderImpl *createShader(const gl::ShaderState &data) override; ProgramImpl *createProgram(const gl::ProgramState &data) override; // Framebuffer creation FramebufferImpl *createFramebuffer(const gl::FramebufferState &data) override; // Texture creation TextureImpl *createTexture(const gl::TextureState &state) override; // Renderbuffer creation RenderbufferImpl *createRenderbuffer() override; // Buffer creation BufferImpl *createBuffer(const gl::BufferState &state) override; // Vertex Array creation VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override; // Query and Fence creation QueryImpl *createQuery(GLenum type) override; FenceNVImpl *createFenceNV() override; FenceSyncImpl *createFenceSync() override; // Transform Feedback creation TransformFeedbackImpl *createTransformFeedback( const gl::TransformFeedbackState &state) override; // Sampler object creation SamplerImpl *createSampler() override; std::vector<PathImpl *> createPaths(GLsizei range) override; }; } // namespace rx #endif // LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_