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() ...@@ -55,8 +55,8 @@ void Query11::end()
mRenderer->getDeviceContext()->End(mQuery); mRenderer->getDeviceContext()->End(mQuery);
setStatus(GL_FALSE); mStatus = GL_FALSE;
setResult(GL_FALSE); mResult = GL_FALSE;
} }
GLuint Query11::getResult() GLuint Query11::getResult()
...@@ -75,7 +75,7 @@ GLuint Query11::getResult() ...@@ -75,7 +75,7 @@ GLuint Query11::getResult()
} }
} }
return getResult(); return mResult;
} }
GLboolean Query11::isResultAvailable() GLboolean Query11::isResultAvailable()
...@@ -85,24 +85,24 @@ GLboolean Query11::isResultAvailable() ...@@ -85,24 +85,24 @@ GLboolean Query11::isResultAvailable()
testQuery(); testQuery();
} }
return getStatus(); return mStatus;
} }
GLboolean Query11::testQuery() GLboolean Query11::testQuery()
{ {
if (mQuery != NULL && getStatus() != GL_TRUE) if (mQuery != NULL && mStatus != GL_TRUE)
{ {
UINT64 numPixels = 0; UINT64 numPixels = 0;
HRESULT result = mRenderer->getDeviceContext()->GetData(mQuery, &numPixels, sizeof(UINT64), 0); HRESULT result = mRenderer->getDeviceContext()->GetData(mQuery, &numPixels, sizeof(UINT64), 0);
if (result == S_OK) if (result == S_OK)
{ {
setStatus(GL_TRUE); mStatus = GL_TRUE;
switch (getType()) switch (getType())
{ {
case GL_ANY_SAMPLES_PASSED_EXT: case GL_ANY_SAMPLES_PASSED_EXT:
case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT: case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
setResult((numPixels > 0) ? GL_TRUE : GL_FALSE); mResult = (numPixels > 0) ? GL_TRUE : GL_FALSE;
break; break;
default: default:
UNREACHABLE(); UNREACHABLE();
...@@ -113,7 +113,7 @@ GLboolean Query11::testQuery() ...@@ -113,7 +113,7 @@ GLboolean Query11::testQuery()
return gl::error(GL_OUT_OF_MEMORY, GL_TRUE); return gl::error(GL_OUT_OF_MEMORY, GL_TRUE);
} }
return getStatus(); return mStatus;
} }
return GL_TRUE; // prevent blocking when query is null return GL_TRUE; // prevent blocking when query is null
......
...@@ -55,8 +55,8 @@ void Query9::end() ...@@ -55,8 +55,8 @@ void Query9::end()
HRESULT result = mQuery->Issue(D3DISSUE_END); HRESULT result = mQuery->Issue(D3DISSUE_END);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
setStatus(GL_FALSE); mStatus = GL_FALSE;
setResult(GL_FALSE); mResult = GL_FALSE;
} }
GLuint Query9::getResult() GLuint Query9::getResult()
...@@ -76,7 +76,7 @@ GLuint Query9::getResult() ...@@ -76,7 +76,7 @@ GLuint Query9::getResult()
} }
} }
return getResult(); return mResult;
} }
GLboolean Query9::isResultAvailable() GLboolean Query9::isResultAvailable()
...@@ -86,25 +86,25 @@ GLboolean Query9::isResultAvailable() ...@@ -86,25 +86,25 @@ GLboolean Query9::isResultAvailable()
testQuery(); testQuery();
} }
return getStatus(); return mStatus;
} }
GLboolean Query9::testQuery() GLboolean Query9::testQuery()
{ {
if (mQuery != NULL && getStatus() != GL_TRUE) if (mQuery != NULL && mStatus != GL_TRUE)
{ {
DWORD numPixels = 0; DWORD numPixels = 0;
HRESULT hres = mQuery->GetData(&numPixels, sizeof(DWORD), D3DGETDATA_FLUSH); HRESULT hres = mQuery->GetData(&numPixels, sizeof(DWORD), D3DGETDATA_FLUSH);
if (hres == S_OK) if (hres == S_OK)
{ {
setStatus(GL_TRUE); mStatus = GL_TRUE;
switch (getType()) switch (getType())
{ {
case GL_ANY_SAMPLES_PASSED_EXT: case GL_ANY_SAMPLES_PASSED_EXT:
case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT: case GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT:
setResult((numPixels > 0) ? GL_TRUE : GL_FALSE); mResult = (numPixels > 0) ? GL_TRUE : GL_FALSE;
break; break;
default: default:
ASSERT(false); ASSERT(false);
...@@ -116,7 +116,7 @@ GLboolean Query9::testQuery() ...@@ -116,7 +116,7 @@ GLboolean Query9::testQuery()
return gl::error(GL_OUT_OF_MEMORY, GL_TRUE); return gl::error(GL_OUT_OF_MEMORY, GL_TRUE);
} }
return getStatus(); return mStatus;
} }
return GL_TRUE; // prevent blocking when query is null return GL_TRUE; // prevent blocking when query is null
......
...@@ -28,18 +28,13 @@ class QueryImpl ...@@ -28,18 +28,13 @@ class QueryImpl
GLenum getType() const { return mType; } GLenum getType() const { return mType; }
protected: protected:
void setStatus(GLboolean status) { mStatus = status; } GLuint mResult;
GLboolean getStatus() const { return mStatus; } GLboolean mStatus;
void setResult(GLuint result) { mResult = result; }
GLuint getResult() const { return mResult; }
private: private:
DISALLOW_COPY_AND_ASSIGN(QueryImpl); DISALLOW_COPY_AND_ASSIGN(QueryImpl);
GLenum mType; 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