Commit cc79b8c6 by Geoff Lang

Update clear calls to return Error objects instead of calling gl::error.

BUG=angle:520 Change-Id: I474a6ed29b882963f7f3425515e7d65f8f69b3e4 Reviewed-on: https://chromium-review.googlesource.com/211440Reviewed-by: 's avatarShannon Woods <shannonwoods@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 2a1c15a1
...@@ -1543,28 +1543,28 @@ void Context::markTransformFeedbackUsage() ...@@ -1543,28 +1543,28 @@ void Context::markTransformFeedbackUsage()
} }
} }
void Context::clear(GLbitfield mask) Error Context::clear(GLbitfield mask)
{ {
if (mState.isRasterizerDiscardEnabled()) if (mState.isRasterizerDiscardEnabled())
{ {
return; return Error(GL_NO_ERROR);
} }
ClearParameters clearParams = mState.getClearParameters(mask); ClearParameters clearParams = mState.getClearParameters(mask);
if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport
{ {
return; return Error(GL_NO_ERROR);
} }
mRenderer->clear(clearParams, mState.getDrawFramebuffer()); return mRenderer->clear(clearParams, mState.getDrawFramebuffer());
} }
void Context::clearBufferfv(GLenum buffer, int drawbuffer, const float *values) Error Context::clearBufferfv(GLenum buffer, int drawbuffer, const float *values)
{ {
if (mState.isRasterizerDiscardEnabled()) if (mState.isRasterizerDiscardEnabled())
{ {
return; return Error(GL_NO_ERROR);
} }
// glClearBufferfv can be called to clear the color buffer or depth buffer // glClearBufferfv can be called to clear the color buffer or depth buffer
...@@ -1588,17 +1588,17 @@ void Context::clearBufferfv(GLenum buffer, int drawbuffer, const float *values) ...@@ -1588,17 +1588,17 @@ void Context::clearBufferfv(GLenum buffer, int drawbuffer, const float *values)
if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport
{ {
return; return Error(GL_NO_ERROR);
} }
mRenderer->clear(clearParams, mState.getDrawFramebuffer()); return mRenderer->clear(clearParams, mState.getDrawFramebuffer());
} }
void Context::clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *values) Error Context::clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *values)
{ {
if (mState.isRasterizerDiscardEnabled()) if (mState.isRasterizerDiscardEnabled())
{ {
return; return Error(GL_NO_ERROR);
} }
// glClearBufferuv can only be called to clear a color buffer // glClearBufferuv can only be called to clear a color buffer
...@@ -1612,17 +1612,17 @@ void Context::clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int * ...@@ -1612,17 +1612,17 @@ void Context::clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *
if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport
{ {
return; return Error(GL_NO_ERROR);
} }
mRenderer->clear(clearParams, mState.getDrawFramebuffer()); return mRenderer->clear(clearParams, mState.getDrawFramebuffer());
} }
void Context::clearBufferiv(GLenum buffer, int drawbuffer, const int *values) Error Context::clearBufferiv(GLenum buffer, int drawbuffer, const int *values)
{ {
if (mState.isRasterizerDiscardEnabled()) if (mState.isRasterizerDiscardEnabled())
{ {
return; return Error(GL_NO_ERROR);
} }
// glClearBufferfv can be called to clear the color buffer or stencil buffer // glClearBufferfv can be called to clear the color buffer or stencil buffer
...@@ -1646,17 +1646,17 @@ void Context::clearBufferiv(GLenum buffer, int drawbuffer, const int *values) ...@@ -1646,17 +1646,17 @@ void Context::clearBufferiv(GLenum buffer, int drawbuffer, const int *values)
if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport
{ {
return; return Error(GL_NO_ERROR);
} }
mRenderer->clear(clearParams, mState.getDrawFramebuffer()); return mRenderer->clear(clearParams, mState.getDrawFramebuffer());
} }
void Context::clearBufferfi(GLenum buffer, int drawbuffer, float depth, int stencil) Error Context::clearBufferfi(GLenum buffer, int drawbuffer, float depth, int stencil)
{ {
if (mState.isRasterizerDiscardEnabled()) if (mState.isRasterizerDiscardEnabled())
{ {
return; return Error(GL_NO_ERROR);
} }
// glClearBufferfi can only be called to clear a depth stencil buffer // glClearBufferfi can only be called to clear a depth stencil buffer
...@@ -1668,10 +1668,10 @@ void Context::clearBufferfi(GLenum buffer, int drawbuffer, float depth, int sten ...@@ -1668,10 +1668,10 @@ void Context::clearBufferfi(GLenum buffer, int drawbuffer, float depth, int sten
if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport if (!applyRenderTarget(GL_TRIANGLES, true)) // Clips the clear to the scissor rectangle but not the viewport
{ {
return; return Error(GL_NO_ERROR);
} }
mRenderer->clear(clearParams, mState.getDrawFramebuffer()); return mRenderer->clear(clearParams, mState.getDrawFramebuffer());
} }
void Context::readPixels(GLint x, GLint y, GLsizei width, GLsizei height, void Context::readPixels(GLint x, GLint y, GLsizei width, GLsizei height,
......
...@@ -185,11 +185,11 @@ class Context ...@@ -185,11 +185,11 @@ class Context
bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams); bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams);
bool getIndexedQueryParameterInfo(GLenum target, GLenum *type, unsigned int *numParams); bool getIndexedQueryParameterInfo(GLenum target, GLenum *type, unsigned int *numParams);
void clear(GLbitfield mask); Error clear(GLbitfield mask);
void clearBufferfv(GLenum buffer, int drawbuffer, const float *values); Error clearBufferfv(GLenum buffer, int drawbuffer, const float *values);
void clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *values); Error clearBufferuiv(GLenum buffer, int drawbuffer, const unsigned int *values);
void clearBufferiv(GLenum buffer, int drawbuffer, const int *values); Error clearBufferiv(GLenum buffer, int drawbuffer, const int *values);
void clearBufferfi(GLenum buffer, int drawbuffer, float depth, int stencil); Error clearBufferfi(GLenum buffer, int drawbuffer, float depth, int stencil);
void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei *bufSize, void* pixels); void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei *bufSize, void* pixels);
void drawArrays(GLenum mode, GLint first, GLsizei count, GLsizei instances); void drawArrays(GLenum mode, GLint first, GLsizei count, GLsizei instances);
......
...@@ -654,7 +654,12 @@ void __stdcall glClear(GLbitfield mask) ...@@ -654,7 +654,12 @@ void __stdcall glClear(GLbitfield mask)
return; return;
} }
context->clear(mask); gl::Error error = context->clear(mask);
if (error.isError())
{
context->recordError(error);
return;
}
} }
} }
...@@ -6598,7 +6603,12 @@ void __stdcall glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* val ...@@ -6598,7 +6603,12 @@ void __stdcall glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* val
return; return;
} }
context->clearBufferiv(buffer, drawbuffer, value); gl::Error error = context->clearBufferiv(buffer, drawbuffer, value);
if (error.isError())
{
context->recordError(error);
return;
}
} }
} }
...@@ -6630,7 +6640,12 @@ void __stdcall glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* v ...@@ -6630,7 +6640,12 @@ void __stdcall glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* v
return; return;
} }
context->clearBufferuiv(buffer, drawbuffer, value); gl::Error error = context->clearBufferuiv(buffer, drawbuffer, value);
if (error.isError())
{
context->recordError(error);
return;
}
} }
} }
...@@ -6670,7 +6685,12 @@ void __stdcall glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* v ...@@ -6670,7 +6685,12 @@ void __stdcall glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* v
return; return;
} }
context->clearBufferfv(buffer, drawbuffer, value); gl::Error error = context->clearBufferfv(buffer, drawbuffer, value);
if (error.isError())
{
context->recordError(error);
return;
}
} }
} }
...@@ -6702,7 +6722,12 @@ void __stdcall glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, G ...@@ -6702,7 +6722,12 @@ void __stdcall glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, G
return; return;
} }
context->clearBufferfi(buffer, drawbuffer, depth, stencil); gl::Error error = context->clearBufferfi(buffer, drawbuffer, depth, stencil);
if (error.isError())
{
context->recordError(error);
return;
}
} }
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "libGLESv2/Uniform.h" #include "libGLESv2/Uniform.h"
#include "libGLESv2/angletypes.h" #include "libGLESv2/angletypes.h"
#include "libGLESv2/Caps.h" #include "libGLESv2/Caps.h"
#include "libGLESv2/Error.h"
#include <cstdint> #include <cstdint>
...@@ -140,7 +141,7 @@ class Renderer ...@@ -140,7 +141,7 @@ class Renderer
virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices,
gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances) = 0; gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances) = 0;
virtual void clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer) = 0; virtual gl::Error clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer) = 0;
virtual void markAllStateDirty() = 0; virtual void markAllStateDirty() = 0;
......
...@@ -148,7 +148,7 @@ Clear11::~Clear11() ...@@ -148,7 +148,7 @@ Clear11::~Clear11()
SafeRelease(mRasterizerState); SafeRelease(mRasterizerState);
} }
void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer) gl::Error Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer)
{ {
// First determine if a scissored clear is needed, this will always require drawing a quad. // First determine if a scissored clear is needed, this will always require drawing a quad.
// //
...@@ -183,7 +183,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -183,7 +183,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
else else
{ {
UNREACHABLE(); UNREACHABLE();
return; return gl::Error(GL_INVALID_OPERATION);
} }
if (clearParams.scissorEnabled && (clearParams.scissor.x >= framebufferSize.width || if (clearParams.scissorEnabled && (clearParams.scissor.x >= framebufferSize.width ||
...@@ -192,7 +192,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -192,7 +192,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
clearParams.scissor.y + clearParams.scissor.height <= 0)) clearParams.scissor.y + clearParams.scissor.height <= 0))
{ {
// Scissor is enabled and the scissor rectangle is outside the renderbuffer // Scissor is enabled and the scissor rectangle is outside the renderbuffer
return; return gl::Error(GL_NO_ERROR);
} }
bool needScissoredClear = clearParams.scissorEnabled && (clearParams.scissor.x > 0 || clearParams.scissor.y > 0 || bool needScissoredClear = clearParams.scissorEnabled && (clearParams.scissor.x > 0 || clearParams.scissor.y > 0 ||
...@@ -214,8 +214,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -214,8 +214,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getRenderTarget()); RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getRenderTarget());
if (!renderTarget) if (!renderTarget)
{ {
ERR("Render target pointer unexpectedly null."); return gl::Error(GL_OUT_OF_MEMORY, "Internal render target view pointer unexpectedly null.");
return;
} }
const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(attachment->getInternalFormat()); const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(attachment->getInternalFormat());
...@@ -259,8 +258,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -259,8 +258,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
ID3D11RenderTargetView *framebufferRTV = renderTarget->getRenderTargetView(); ID3D11RenderTargetView *framebufferRTV = renderTarget->getRenderTargetView();
if (!framebufferRTV) if (!framebufferRTV)
{ {
ERR("Render target view pointer unexpectedly null."); return gl::Error(GL_OUT_OF_MEMORY, "Internal render target view pointer unexpectedly null.");
return;
} }
const gl::InternalFormat &actualFormatInfo = gl::GetInternalFormatInfo(attachment->getActualFormat()); const gl::InternalFormat &actualFormatInfo = gl::GetInternalFormatInfo(attachment->getActualFormat());
...@@ -289,8 +287,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -289,8 +287,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getRenderTarget()); RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getRenderTarget());
if (!renderTarget) if (!renderTarget)
{ {
ERR("Depth stencil render target pointer unexpectedly null."); return gl::Error(GL_OUT_OF_MEMORY, "Internal depth stencil view pointer unexpectedly null.");
return;
} }
const gl::InternalFormat &actualFormatInfo = gl::GetInternalFormatInfo(attachment->getActualFormat()); const gl::InternalFormat &actualFormatInfo = gl::GetInternalFormatInfo(attachment->getActualFormat());
...@@ -307,8 +304,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -307,8 +304,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
ID3D11DepthStencilView *framebufferDSV = renderTarget->getDepthStencilView(); ID3D11DepthStencilView *framebufferDSV = renderTarget->getDepthStencilView();
if (!framebufferDSV) if (!framebufferDSV)
{ {
ERR("Depth stencil view pointer unexpectedly null."); return gl::Error(GL_OUT_OF_MEMORY, "Internal depth stencil view pointer unexpectedly null.");
return;
} }
UINT clearFlags = (clearParams.clearDepth ? D3D11_CLEAR_DEPTH : 0) | UINT clearFlags = (clearParams.clearDepth ? D3D11_CLEAR_DEPTH : 0) |
...@@ -355,8 +351,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -355,8 +351,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
ID3D11RenderTargetView *rtv = renderTarget->getRenderTargetView(); ID3D11RenderTargetView *rtv = renderTarget->getRenderTargetView();
if (!rtv) if (!rtv)
{ {
ERR("Render target view unexpectedly null."); return gl::Error(GL_OUT_OF_MEMORY, "Internal render target view pointer unexpectedly null.");
return;
} }
rtvs[i] = rtv; rtvs[i] = rtv;
...@@ -378,8 +373,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -378,8 +373,7 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
HRESULT result = deviceContext->Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); HRESULT result = deviceContext->Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource);
if (FAILED(result)) if (FAILED(result))
{ {
ERR("Failed to map masked clear vertex buffer, HRESULT: 0x%X.", result); return gl::Error(GL_OUT_OF_MEMORY, "Failed to map internal masked clear vertex buffer, HRESULT: 0x%X.", result);
return;
} }
const gl::Rectangle *scissorPtr = clearParams.scissorEnabled ? &clearParams.scissor : NULL; const gl::Rectangle *scissorPtr = clearParams.scissorEnabled ? &clearParams.scissor : NULL;
...@@ -444,6 +438,8 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame ...@@ -444,6 +438,8 @@ void Clear11::clearFramebuffer(const gl::ClearParameters &clearParams, gl::Frame
// Clean up // Clean up
mRenderer->markAllStateDirty(); mRenderer->markAllStateDirty();
} }
return gl::Error(GL_NO_ERROR);
} }
ID3D11BlendState *Clear11::getBlendState(const std::vector<MaskedRenderTarget>& rts) ID3D11BlendState *Clear11::getBlendState(const std::vector<MaskedRenderTarget>& rts)
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#define LIBGLESV2_RENDERER_CLEAR11_H_ #define LIBGLESV2_RENDERER_CLEAR11_H_
#include "libGLESv2/angletypes.h" #include "libGLESv2/angletypes.h"
#include "libGLESv2/Error.h"
#include <map> #include <map>
#include <vector> #include <vector>
...@@ -31,7 +32,7 @@ class Clear11 ...@@ -31,7 +32,7 @@ class Clear11
~Clear11(); ~Clear11();
// Clears the framebuffer with the supplied clear parameters, assumes that the framebuffer is currently applied. // Clears the framebuffer with the supplied clear parameters, assumes that the framebuffer is currently applied.
void clearFramebuffer(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer); gl::Error clearFramebuffer(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer);
private: private:
Renderer11 *mRenderer; Renderer11 *mRenderer;
......
...@@ -1521,10 +1521,17 @@ void Renderer11::applyUniforms(const gl::ProgramBinary &programBinary) ...@@ -1521,10 +1521,17 @@ void Renderer11::applyUniforms(const gl::ProgramBinary &programBinary)
} }
} }
void Renderer11::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer) gl::Error Renderer11::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer)
{ {
mClear->clearFramebuffer(clearParams, frameBuffer); gl::Error error = mClear->clearFramebuffer(clearParams, frameBuffer);
if (error.isError())
{
return error;
}
invalidateFramebufferSwizzles(frameBuffer); invalidateFramebufferSwizzles(frameBuffer);
return gl::Error(GL_NO_ERROR);
} }
void Renderer11::markAllStateDirty() void Renderer11::markAllStateDirty()
......
...@@ -89,7 +89,7 @@ class Renderer11 : public Renderer ...@@ -89,7 +89,7 @@ class Renderer11 : public Renderer
virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices,
gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances); gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances);
virtual void clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer); virtual gl::Error clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer);
virtual void markAllStateDirty(); virtual void markAllStateDirty();
......
...@@ -1713,13 +1713,13 @@ void Renderer9::applyUniformnbv(gl::LinkedUniform *targetUniform, const GLint *v ...@@ -1713,13 +1713,13 @@ void Renderer9::applyUniformnbv(gl::LinkedUniform *targetUniform, const GLint *v
applyUniformnfv(targetUniform, (GLfloat*)vector); applyUniformnfv(targetUniform, (GLfloat*)vector);
} }
void Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer) gl::Error Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer)
{ {
if (clearParams.colorClearType != GL_FLOAT) if (clearParams.colorClearType != GL_FLOAT)
{ {
// Clearing buffers with non-float values is not supported by Renderer9 and ES 2.0 // Clearing buffers with non-float values is not supported by Renderer9 and ES 2.0
UNREACHABLE(); UNREACHABLE();
return; return gl::Error(GL_INVALID_OPERATION);
} }
bool clearColor = clearParams.clearColor[0]; bool clearColor = clearParams.clearColor[0];
...@@ -1729,7 +1729,7 @@ void Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *f ...@@ -1729,7 +1729,7 @@ void Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *f
{ {
// Clearing individual buffers other than buffer zero is not supported by Renderer9 and ES 2.0 // Clearing individual buffers other than buffer zero is not supported by Renderer9 and ES 2.0
UNREACHABLE(); UNREACHABLE();
return; return gl::Error(GL_INVALID_OPERATION);
} }
} }
...@@ -1926,6 +1926,8 @@ void Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *f ...@@ -1926,6 +1926,8 @@ void Renderer9::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *f
mDevice->Clear(0, NULL, dxClearFlags, color, depth, stencil); mDevice->Clear(0, NULL, dxClearFlags, color, depth, stencil);
} }
return gl::Error(GL_NO_ERROR);
} }
void Renderer9::markAllStateDirty() void Renderer9::markAllStateDirty()
......
...@@ -90,7 +90,7 @@ class Renderer9 : public Renderer ...@@ -90,7 +90,7 @@ class Renderer9 : public Renderer
virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, virtual void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices,
gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances); gl::Buffer *elementArrayBuffer, const TranslatedIndexData &indexInfo, GLsizei instances);
virtual void clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer); virtual gl::Error clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer);
virtual void markAllStateDirty(); virtual void markAllStateDirty();
......
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