Fixes infinite recursion in QueryX::getResult due to similarly named base class accessor.

TRAC #22716 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1988 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 3812323a
......@@ -55,8 +55,8 @@ void Query11::end()
mRenderer->getDeviceContext()->End(mQuery);
setStatus(GL_FALSE);
setResult(GL_FALSE);
mStatus = GL_FALSE;
mResult = GL_FALSE;
}
GLuint Query11::getResult()
......@@ -75,7 +75,7 @@ GLuint Query11::getResult()
}
}
return getResult();
return mResult;
}
GLboolean Query11::isResultAvailable()
......@@ -85,24 +85,24 @@ GLboolean Query11::isResultAvailable()
testQuery();
}
return getStatus();
return mStatus;
}
GLboolean Query11::testQuery()
{
if (mQuery != NULL && getStatus() != GL_TRUE)
if (mQuery != NULL && mStatus != GL_TRUE)
{
UINT64 numPixels = 0;
HRESULT result = mRenderer->getDeviceContext()->GetData(mQuery, &numPixels, sizeof(UINT64), 0);
if (result == S_OK)
{
setStatus(GL_TRUE);
mStatus = GL_TRUE;
switch (getType())
{
case GL_ANY_SAMPLES_PASSED_EXT:
case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
setResult((numPixels > 0) ? GL_TRUE : GL_FALSE);
mResult = (numPixels > 0) ? GL_TRUE : GL_FALSE;
break;
default:
UNREACHABLE();
......@@ -113,7 +113,7 @@ GLboolean Query11::testQuery()
return gl::error(GL_OUT_OF_MEMORY, GL_TRUE);
}
return getStatus();
return mStatus;
}
return GL_TRUE; // prevent blocking when query is null
......
......@@ -55,8 +55,8 @@ void Query9::end()
HRESULT result = mQuery->Issue(D3DISSUE_END);
ASSERT(SUCCEEDED(result));
setStatus(GL_FALSE);
setResult(GL_FALSE);
mStatus = GL_FALSE;
mResult = GL_FALSE;
}
GLuint Query9::getResult()
......@@ -76,7 +76,7 @@ GLuint Query9::getResult()
}
}
return getResult();
return mResult;
}
GLboolean Query9::isResultAvailable()
......@@ -86,25 +86,25 @@ GLboolean Query9::isResultAvailable()
testQuery();
}
return getStatus();
return mStatus;
}
GLboolean Query9::testQuery()
{
if (mQuery != NULL && getStatus() != GL_TRUE)
if (mQuery != NULL && mStatus != GL_TRUE)
{
DWORD numPixels = 0;
HRESULT hres = mQuery->GetData(&numPixels, sizeof(DWORD), D3DGETDATA_FLUSH);
if (hres == S_OK)
{
setStatus(GL_TRUE);
mStatus = GL_TRUE;
switch (getType())
{
case GL_ANY_SAMPLES_PASSED_EXT:
case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
setResult((numPixels > 0) ? GL_TRUE : GL_FALSE);
mResult = (numPixels > 0) ? GL_TRUE : GL_FALSE;
break;
default:
ASSERT(false);
......@@ -116,7 +116,7 @@ GLboolean Query9::testQuery()
return gl::error(GL_OUT_OF_MEMORY, GL_TRUE);
}
return getStatus();
return mStatus;
}
return GL_TRUE; // prevent blocking when query is null
......
......@@ -28,18 +28,13 @@ class QueryImpl
GLenum getType() const { return mType; }
protected:
void setStatus(GLboolean status) { mStatus = status; }
GLboolean getStatus() const { return mStatus; }
void setResult(GLuint result) { mResult = result; }
GLuint getResult() const { return mResult; }
GLuint mResult;
GLboolean mStatus;
private:
DISALLOW_COPY_AND_ASSIGN(QueryImpl);
GLenum mType;
GLboolean mStatus;
GLuint mResult;
};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment