Home | History | Annotate | Download | only in renderer
      1 //
      2 // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 // FenceImpl.h: Defines the rx::FenceImpl class.
      8 
      9 #ifndef LIBGLESV2_RENDERER_FENCEIMPL_H_
     10 #define LIBGLESV2_RENDERER_FENCEIMPL_H_
     11 
     12 #include "common/angleutils.h"
     13 
     14 namespace rx
     15 {
     16 
     17 class FenceImpl
     18 {
     19   public:
     20     FenceImpl() : mStatus(GL_FALSE), mCondition(GL_NONE) { };
     21     virtual ~FenceImpl() { };
     22 
     23     virtual GLboolean isFence() = 0;
     24     virtual void setFence(GLenum condition) = 0;
     25     virtual GLboolean testFence() = 0;
     26     virtual void finishFence() = 0;
     27     virtual void getFenceiv(GLenum pname, GLint *params) = 0;
     28 
     29   protected:
     30     void setStatus(GLboolean status) { mStatus = status; }
     31     GLboolean getStatus() const { return mStatus; }
     32 
     33     void setCondition(GLuint condition) { mCondition = condition; }
     34     GLuint getCondition() const { return mCondition; }
     35 
     36   private:
     37     DISALLOW_COPY_AND_ASSIGN(FenceImpl);
     38 
     39     GLboolean mStatus;
     40     GLenum mCondition;
     41 };
     42 
     43 }
     44 
     45 #endif // LIBGLESV2_RENDERER_FENCEIMPL_H_
     46