Hash :
b11ad26b
Author :
Date :
2015-04-09T14:43:34
Implement FenceNVGL. BUG=angleproject:888 Change-Id: Iea6993fe5459cf829f4bd23b0df5e223f22903f5 Reviewed-on: https://chromium-review.googlesource.com/264989 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
//
// Copyright 2015 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.
//
// FenceNVGL.cpp: Implements the class methods for FenceNVGL.
#include "libANGLE/renderer/gl/FenceNVGL.h"
#include "common/debug.h"
#include "libANGLE/renderer/gl/FunctionsGL.h"
namespace rx
{
FenceNVGL::FenceNVGL(const FunctionsGL *functions)
: FenceNVImpl(),
mFunctions(functions)
{
mFunctions->genFencesNV(1, &mFence);
}
FenceNVGL::~FenceNVGL()
{
mFunctions->deleteFencesNV(1, &mFence);
mFence = 0;
}
gl::Error FenceNVGL::set(GLenum condition)
{
ASSERT(condition == GL_ALL_COMPLETED_NV);
mFunctions->setFenceNV(mFence, condition);
return gl::Error(GL_NO_ERROR);
}
gl::Error FenceNVGL::test(GLboolean *outFinished)
{
ASSERT(outFinished);
*outFinished = mFunctions->testFenceNV(mFence);
return gl::Error(GL_NO_ERROR);
}
gl::Error FenceNVGL::finish()
{
mFunctions->finishFenceNV(mFence);
return gl::Error(GL_NO_ERROR);
}
}