1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker // ContextNULL.h: 7*8975f5c5SAndroid Build Coastguard Worker // Defines the class interface for ContextNULL, implementing ContextImpl. 8*8975f5c5SAndroid Build Coastguard Worker // 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker #ifndef LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_ 11*8975f5c5SAndroid Build Coastguard Worker #define LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_ 12*8975f5c5SAndroid Build Coastguard Worker 13*8975f5c5SAndroid Build Coastguard Worker #include "libANGLE/renderer/ContextImpl.h" 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Worker namespace rx 16*8975f5c5SAndroid Build Coastguard Worker { 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Worker class AllocationTrackerNULL : angle::NonCopyable 19*8975f5c5SAndroid Build Coastguard Worker { 20*8975f5c5SAndroid Build Coastguard Worker public: 21*8975f5c5SAndroid Build Coastguard Worker explicit AllocationTrackerNULL(size_t maxTotalAllocationSize); 22*8975f5c5SAndroid Build Coastguard Worker ~AllocationTrackerNULL(); 23*8975f5c5SAndroid Build Coastguard Worker 24*8975f5c5SAndroid Build Coastguard Worker // Check if it is possible to change an allocation from oldSize to newSize. If it is possible, 25*8975f5c5SAndroid Build Coastguard Worker // the allocation is registered and true is returned else false is returned. 26*8975f5c5SAndroid Build Coastguard Worker bool updateMemoryAllocation(size_t oldSize, size_t newSize); 27*8975f5c5SAndroid Build Coastguard Worker 28*8975f5c5SAndroid Build Coastguard Worker private: 29*8975f5c5SAndroid Build Coastguard Worker size_t mAllocatedBytes; 30*8975f5c5SAndroid Build Coastguard Worker const size_t mMaxBytes; 31*8975f5c5SAndroid Build Coastguard Worker }; 32*8975f5c5SAndroid Build Coastguard Worker 33*8975f5c5SAndroid Build Coastguard Worker class ContextNULL : public ContextImpl 34*8975f5c5SAndroid Build Coastguard Worker { 35*8975f5c5SAndroid Build Coastguard Worker public: 36*8975f5c5SAndroid Build Coastguard Worker ContextNULL(const gl::State &state, 37*8975f5c5SAndroid Build Coastguard Worker gl::ErrorSet *errorSet, 38*8975f5c5SAndroid Build Coastguard Worker AllocationTrackerNULL *allocationTracker); 39*8975f5c5SAndroid Build Coastguard Worker ~ContextNULL() override; 40*8975f5c5SAndroid Build Coastguard Worker 41*8975f5c5SAndroid Build Coastguard Worker angle::Result initialize(const angle::ImageLoadContext &imageLoadContext) override; 42*8975f5c5SAndroid Build Coastguard Worker 43*8975f5c5SAndroid Build Coastguard Worker // Flush and finish. 44*8975f5c5SAndroid Build Coastguard Worker angle::Result flush(const gl::Context *context) override; 45*8975f5c5SAndroid Build Coastguard Worker angle::Result finish(const gl::Context *context) override; 46*8975f5c5SAndroid Build Coastguard Worker 47*8975f5c5SAndroid Build Coastguard Worker // Drawing methods. 48*8975f5c5SAndroid Build Coastguard Worker angle::Result drawArrays(const gl::Context *context, 49*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 50*8975f5c5SAndroid Build Coastguard Worker GLint first, 51*8975f5c5SAndroid Build Coastguard Worker GLsizei count) override; 52*8975f5c5SAndroid Build Coastguard Worker angle::Result drawArraysInstanced(const gl::Context *context, 53*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 54*8975f5c5SAndroid Build Coastguard Worker GLint first, 55*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 56*8975f5c5SAndroid Build Coastguard Worker GLsizei instanceCount) override; 57*8975f5c5SAndroid Build Coastguard Worker angle::Result drawArraysInstancedBaseInstance(const gl::Context *context, 58*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 59*8975f5c5SAndroid Build Coastguard Worker GLint first, 60*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 61*8975f5c5SAndroid Build Coastguard Worker GLsizei instanceCount, 62*8975f5c5SAndroid Build Coastguard Worker GLuint baseInstance) override; 63*8975f5c5SAndroid Build Coastguard Worker 64*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElements(const gl::Context *context, 65*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 66*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 67*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 68*8975f5c5SAndroid Build Coastguard Worker const void *indices) override; 69*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElementsBaseVertex(const gl::Context *context, 70*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 71*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 72*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 73*8975f5c5SAndroid Build Coastguard Worker const void *indices, 74*8975f5c5SAndroid Build Coastguard Worker GLint baseVertex) override; 75*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElementsInstanced(const gl::Context *context, 76*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 77*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 78*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 79*8975f5c5SAndroid Build Coastguard Worker const void *indices, 80*8975f5c5SAndroid Build Coastguard Worker GLsizei instances) override; 81*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElementsInstancedBaseVertex(const gl::Context *context, 82*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 83*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 84*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 85*8975f5c5SAndroid Build Coastguard Worker const void *indices, 86*8975f5c5SAndroid Build Coastguard Worker GLsizei instances, 87*8975f5c5SAndroid Build Coastguard Worker GLint baseVertex) override; 88*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElementsInstancedBaseVertexBaseInstance(const gl::Context *context, 89*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 90*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 91*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 92*8975f5c5SAndroid Build Coastguard Worker const void *indices, 93*8975f5c5SAndroid Build Coastguard Worker GLsizei instances, 94*8975f5c5SAndroid Build Coastguard Worker GLint baseVertex, 95*8975f5c5SAndroid Build Coastguard Worker GLuint baseInstance) override; 96*8975f5c5SAndroid Build Coastguard Worker angle::Result drawRangeElements(const gl::Context *context, 97*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 98*8975f5c5SAndroid Build Coastguard Worker GLuint start, 99*8975f5c5SAndroid Build Coastguard Worker GLuint end, 100*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 101*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 102*8975f5c5SAndroid Build Coastguard Worker const void *indices) override; 103*8975f5c5SAndroid Build Coastguard Worker angle::Result drawRangeElementsBaseVertex(const gl::Context *context, 104*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 105*8975f5c5SAndroid Build Coastguard Worker GLuint start, 106*8975f5c5SAndroid Build Coastguard Worker GLuint end, 107*8975f5c5SAndroid Build Coastguard Worker GLsizei count, 108*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 109*8975f5c5SAndroid Build Coastguard Worker const void *indices, 110*8975f5c5SAndroid Build Coastguard Worker GLint baseVertex) override; 111*8975f5c5SAndroid Build Coastguard Worker angle::Result drawArraysIndirect(const gl::Context *context, 112*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 113*8975f5c5SAndroid Build Coastguard Worker const void *indirect) override; 114*8975f5c5SAndroid Build Coastguard Worker angle::Result drawElementsIndirect(const gl::Context *context, 115*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 116*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 117*8975f5c5SAndroid Build Coastguard Worker const void *indirect) override; 118*8975f5c5SAndroid Build Coastguard Worker 119*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawArrays(const gl::Context *context, 120*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 121*8975f5c5SAndroid Build Coastguard Worker const GLint *firsts, 122*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 123*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 124*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawArraysInstanced(const gl::Context *context, 125*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 126*8975f5c5SAndroid Build Coastguard Worker const GLint *firsts, 127*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 128*8975f5c5SAndroid Build Coastguard Worker const GLsizei *instanceCounts, 129*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 130*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawArraysIndirect(const gl::Context *context, 131*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 132*8975f5c5SAndroid Build Coastguard Worker const void *indirect, 133*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount, 134*8975f5c5SAndroid Build Coastguard Worker GLsizei stride) override; 135*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawElements(const gl::Context *context, 136*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 137*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 138*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 139*8975f5c5SAndroid Build Coastguard Worker const GLvoid *const *indices, 140*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 141*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawElementsInstanced(const gl::Context *context, 142*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 143*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 144*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 145*8975f5c5SAndroid Build Coastguard Worker const GLvoid *const *indices, 146*8975f5c5SAndroid Build Coastguard Worker const GLsizei *instanceCounts, 147*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 148*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawElementsIndirect(const gl::Context *context, 149*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 150*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 151*8975f5c5SAndroid Build Coastguard Worker const void *indirect, 152*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount, 153*8975f5c5SAndroid Build Coastguard Worker GLsizei stride) override; 154*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawArraysInstancedBaseInstance(const gl::Context *context, 155*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 156*8975f5c5SAndroid Build Coastguard Worker const GLint *firsts, 157*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 158*8975f5c5SAndroid Build Coastguard Worker const GLsizei *instanceCounts, 159*8975f5c5SAndroid Build Coastguard Worker const GLuint *baseInstances, 160*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 161*8975f5c5SAndroid Build Coastguard Worker angle::Result multiDrawElementsInstancedBaseVertexBaseInstance(const gl::Context *context, 162*8975f5c5SAndroid Build Coastguard Worker gl::PrimitiveMode mode, 163*8975f5c5SAndroid Build Coastguard Worker const GLsizei *counts, 164*8975f5c5SAndroid Build Coastguard Worker gl::DrawElementsType type, 165*8975f5c5SAndroid Build Coastguard Worker const GLvoid *const *indices, 166*8975f5c5SAndroid Build Coastguard Worker const GLsizei *instanceCounts, 167*8975f5c5SAndroid Build Coastguard Worker const GLint *baseVertices, 168*8975f5c5SAndroid Build Coastguard Worker const GLuint *baseInstances, 169*8975f5c5SAndroid Build Coastguard Worker GLsizei drawcount) override; 170*8975f5c5SAndroid Build Coastguard Worker 171*8975f5c5SAndroid Build Coastguard Worker // Device loss 172*8975f5c5SAndroid Build Coastguard Worker gl::GraphicsResetStatus getResetStatus() override; 173*8975f5c5SAndroid Build Coastguard Worker 174*8975f5c5SAndroid Build Coastguard Worker // EXT_debug_marker 175*8975f5c5SAndroid Build Coastguard Worker angle::Result insertEventMarker(GLsizei length, const char *marker) override; 176*8975f5c5SAndroid Build Coastguard Worker angle::Result pushGroupMarker(GLsizei length, const char *marker) override; 177*8975f5c5SAndroid Build Coastguard Worker angle::Result popGroupMarker() override; 178*8975f5c5SAndroid Build Coastguard Worker 179*8975f5c5SAndroid Build Coastguard Worker // KHR_debug 180*8975f5c5SAndroid Build Coastguard Worker angle::Result pushDebugGroup(const gl::Context *context, 181*8975f5c5SAndroid Build Coastguard Worker GLenum source, 182*8975f5c5SAndroid Build Coastguard Worker GLuint id, 183*8975f5c5SAndroid Build Coastguard Worker const std::string &message) override; 184*8975f5c5SAndroid Build Coastguard Worker angle::Result popDebugGroup(const gl::Context *context) override; 185*8975f5c5SAndroid Build Coastguard Worker 186*8975f5c5SAndroid Build Coastguard Worker // State sync with dirty bits. 187*8975f5c5SAndroid Build Coastguard Worker angle::Result syncState(const gl::Context *context, 188*8975f5c5SAndroid Build Coastguard Worker const gl::state::DirtyBits dirtyBits, 189*8975f5c5SAndroid Build Coastguard Worker const gl::state::DirtyBits bitMask, 190*8975f5c5SAndroid Build Coastguard Worker const gl::state::ExtendedDirtyBits extendedDirtyBits, 191*8975f5c5SAndroid Build Coastguard Worker const gl::state::ExtendedDirtyBits extendedBitMask, 192*8975f5c5SAndroid Build Coastguard Worker gl::Command command) override; 193*8975f5c5SAndroid Build Coastguard Worker 194*8975f5c5SAndroid Build Coastguard Worker // Disjoint timer queries 195*8975f5c5SAndroid Build Coastguard Worker GLint getGPUDisjoint() override; 196*8975f5c5SAndroid Build Coastguard Worker GLint64 getTimestamp() override; 197*8975f5c5SAndroid Build Coastguard Worker 198*8975f5c5SAndroid Build Coastguard Worker // Context switching 199*8975f5c5SAndroid Build Coastguard Worker angle::Result onMakeCurrent(const gl::Context *context) override; 200*8975f5c5SAndroid Build Coastguard Worker 201*8975f5c5SAndroid Build Coastguard Worker // Native capabilities, unmodified by gl::Context. 202*8975f5c5SAndroid Build Coastguard Worker gl::Caps getNativeCaps() const override; 203*8975f5c5SAndroid Build Coastguard Worker const gl::TextureCapsMap &getNativeTextureCaps() const override; 204*8975f5c5SAndroid Build Coastguard Worker const gl::Extensions &getNativeExtensions() const override; 205*8975f5c5SAndroid Build Coastguard Worker const gl::Limitations &getNativeLimitations() const override; 206*8975f5c5SAndroid Build Coastguard Worker const ShPixelLocalStorageOptions &getNativePixelLocalStorageOptions() const override; 207*8975f5c5SAndroid Build Coastguard Worker 208*8975f5c5SAndroid Build Coastguard Worker // Shader creation 209*8975f5c5SAndroid Build Coastguard Worker CompilerImpl *createCompiler() override; 210*8975f5c5SAndroid Build Coastguard Worker ShaderImpl *createShader(const gl::ShaderState &data) override; 211*8975f5c5SAndroid Build Coastguard Worker ProgramImpl *createProgram(const gl::ProgramState &data) override; 212*8975f5c5SAndroid Build Coastguard Worker ProgramExecutableImpl *createProgramExecutable( 213*8975f5c5SAndroid Build Coastguard Worker const gl::ProgramExecutable *executable) override; 214*8975f5c5SAndroid Build Coastguard Worker 215*8975f5c5SAndroid Build Coastguard Worker // Framebuffer creation 216*8975f5c5SAndroid Build Coastguard Worker FramebufferImpl *createFramebuffer(const gl::FramebufferState &data) override; 217*8975f5c5SAndroid Build Coastguard Worker 218*8975f5c5SAndroid Build Coastguard Worker // Texture creation 219*8975f5c5SAndroid Build Coastguard Worker TextureImpl *createTexture(const gl::TextureState &state) override; 220*8975f5c5SAndroid Build Coastguard Worker 221*8975f5c5SAndroid Build Coastguard Worker // Renderbuffer creation 222*8975f5c5SAndroid Build Coastguard Worker RenderbufferImpl *createRenderbuffer(const gl::RenderbufferState &state) override; 223*8975f5c5SAndroid Build Coastguard Worker 224*8975f5c5SAndroid Build Coastguard Worker // Buffer creation 225*8975f5c5SAndroid Build Coastguard Worker BufferImpl *createBuffer(const gl::BufferState &state) override; 226*8975f5c5SAndroid Build Coastguard Worker 227*8975f5c5SAndroid Build Coastguard Worker // Vertex Array creation 228*8975f5c5SAndroid Build Coastguard Worker VertexArrayImpl *createVertexArray(const gl::VertexArrayState &data) override; 229*8975f5c5SAndroid Build Coastguard Worker 230*8975f5c5SAndroid Build Coastguard Worker // Query and Fence creation 231*8975f5c5SAndroid Build Coastguard Worker QueryImpl *createQuery(gl::QueryType type) override; 232*8975f5c5SAndroid Build Coastguard Worker FenceNVImpl *createFenceNV() override; 233*8975f5c5SAndroid Build Coastguard Worker SyncImpl *createSync() override; 234*8975f5c5SAndroid Build Coastguard Worker 235*8975f5c5SAndroid Build Coastguard Worker // Transform Feedback creation 236*8975f5c5SAndroid Build Coastguard Worker TransformFeedbackImpl *createTransformFeedback( 237*8975f5c5SAndroid Build Coastguard Worker const gl::TransformFeedbackState &state) override; 238*8975f5c5SAndroid Build Coastguard Worker 239*8975f5c5SAndroid Build Coastguard Worker // Sampler object creation 240*8975f5c5SAndroid Build Coastguard Worker SamplerImpl *createSampler(const gl::SamplerState &state) override; 241*8975f5c5SAndroid Build Coastguard Worker 242*8975f5c5SAndroid Build Coastguard Worker // Program Pipeline object creation 243*8975f5c5SAndroid Build Coastguard Worker ProgramPipelineImpl *createProgramPipeline(const gl::ProgramPipelineState &data) override; 244*8975f5c5SAndroid Build Coastguard Worker 245*8975f5c5SAndroid Build Coastguard Worker // Memory object creation. 246*8975f5c5SAndroid Build Coastguard Worker MemoryObjectImpl *createMemoryObject() override; 247*8975f5c5SAndroid Build Coastguard Worker 248*8975f5c5SAndroid Build Coastguard Worker // Semaphore creation. 249*8975f5c5SAndroid Build Coastguard Worker SemaphoreImpl *createSemaphore() override; 250*8975f5c5SAndroid Build Coastguard Worker 251*8975f5c5SAndroid Build Coastguard Worker // Overlay creation. 252*8975f5c5SAndroid Build Coastguard Worker OverlayImpl *createOverlay(const gl::OverlayState &state) override; 253*8975f5c5SAndroid Build Coastguard Worker 254*8975f5c5SAndroid Build Coastguard Worker angle::Result dispatchCompute(const gl::Context *context, 255*8975f5c5SAndroid Build Coastguard Worker GLuint numGroupsX, 256*8975f5c5SAndroid Build Coastguard Worker GLuint numGroupsY, 257*8975f5c5SAndroid Build Coastguard Worker GLuint numGroupsZ) override; 258*8975f5c5SAndroid Build Coastguard Worker angle::Result dispatchComputeIndirect(const gl::Context *context, GLintptr indirect) override; 259*8975f5c5SAndroid Build Coastguard Worker 260*8975f5c5SAndroid Build Coastguard Worker angle::Result memoryBarrier(const gl::Context *context, GLbitfield barriers) override; 261*8975f5c5SAndroid Build Coastguard Worker angle::Result memoryBarrierByRegion(const gl::Context *context, GLbitfield barriers) override; 262*8975f5c5SAndroid Build Coastguard Worker 263*8975f5c5SAndroid Build Coastguard Worker void handleError(GLenum errorCode, 264*8975f5c5SAndroid Build Coastguard Worker const char *message, 265*8975f5c5SAndroid Build Coastguard Worker const char *file, 266*8975f5c5SAndroid Build Coastguard Worker const char *function, 267*8975f5c5SAndroid Build Coastguard Worker unsigned int line); 268*8975f5c5SAndroid Build Coastguard Worker 269*8975f5c5SAndroid Build Coastguard Worker private: 270*8975f5c5SAndroid Build Coastguard Worker gl::Caps mCaps; 271*8975f5c5SAndroid Build Coastguard Worker gl::TextureCapsMap mTextureCaps; 272*8975f5c5SAndroid Build Coastguard Worker gl::Extensions mExtensions; 273*8975f5c5SAndroid Build Coastguard Worker gl::Limitations mLimitations; 274*8975f5c5SAndroid Build Coastguard Worker ShPixelLocalStorageOptions mPLSOptions; 275*8975f5c5SAndroid Build Coastguard Worker 276*8975f5c5SAndroid Build Coastguard Worker AllocationTrackerNULL *mAllocationTracker; 277*8975f5c5SAndroid Build Coastguard Worker }; 278*8975f5c5SAndroid Build Coastguard Worker 279*8975f5c5SAndroid Build Coastguard Worker } // namespace rx 280*8975f5c5SAndroid Build Coastguard Worker 281*8975f5c5SAndroid Build Coastguard Worker #endif // LIBANGLE_RENDERER_NULL_CONTEXTNULL_H_ 282