| // SwiftShader Software Renderer | |
| // | |
| // Copyright(c) 2005-2012 TransGaming Inc. | |
| // | |
| // All rights reserved. No part of this software may be copied, distributed, transmitted, | |
| // transcribed, stored in a retrieval system, translated into any human or computer | |
| // language by any means, or disclosed to third parties without the explicit written | |
| // agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express | |
| // or implied, including but not limited to any patent rights, are granted to you. | |
| // | |
| // Fence.h: Defines the Fence class, which supports the GL_NV_fence extension. | |
| #ifndef LIBGLESV2_FENCE_H_ | |
| #define LIBGLESV2_FENCE_H_ | |
| #include "common/Object.hpp" | |
| #include <GLES2/gl2.h> | |
| namespace es2 | |
| { | |
| class Fence | |
| { | |
| public: | |
| Fence(); | |
| virtual ~Fence(); | |
| GLboolean isFence(); | |
| void setFence(GLenum condition); | |
| GLboolean testFence(); | |
| void finishFence(); | |
| void getFenceiv(GLenum pname, GLint *params); | |
| private: | |
| bool mQuery; | |
| GLenum mCondition; | |
| GLboolean mStatus; | |
| }; | |
| class FenceSync : public gl::NamedObject | |
| { | |
| public: | |
| FenceSync(GLuint name, GLenum condition, GLbitfield flags); | |
| virtual ~FenceSync(); | |
| GLenum clientWait(GLbitfield flags, GLuint64 timeout); | |
| void serverWait(GLbitfield flags, GLuint64 timeout); | |
| GLenum getCondition() const { return mCondition; } | |
| GLbitfield getFlags() const { return mFlags; } | |
| private: | |
| GLenum mCondition; | |
| GLbitfield mFlags; | |
| }; | |
| } | |
| #endif // LIBGLESV2_FENCE_H_ |