summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp')
-rw-r--r--src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp145
1 files changed, 143 insertions, 2 deletions
diff --git a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp b/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp
index f41f0f0f3..71540b1ad 100644
--- a/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp
+++ b/src/render/renderers/opengl/graphicshelpers/graphicshelperes2.cpp
@@ -163,17 +163,29 @@ void GraphicsHelperES2::drawArrays(GLenum primitiveType,
void GraphicsHelperES2::drawElementsIndirect(GLenum, GLenum, void *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Indirect Drawing is not supported with OpenGL ES 2";
}
void GraphicsHelperES2::drawArraysIndirect(GLenum , void *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Indirect Drawing is not supported with OpenGL ES 2";
}
void GraphicsHelperES2::setVerticesPerPatch(GLint verticesPerPatch)
{
Q_UNUSED(verticesPerPatch);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Tessellation not supported with OpenGL ES 2";
}
@@ -235,6 +247,10 @@ QVector<ShaderUniformBlock> GraphicsHelperES2::programUniformBlocks(GLuint progr
{
Q_UNUSED(programId);
QVector<ShaderUniformBlock> blocks;
+ static bool showWarning = true;
+ if (!showWarning)
+ return blocks;
+ showWarning = false;
qWarning() << "UBO are not supported by OpenGL ES 2.0 (since OpenGL ES 3.0)";
return blocks;
}
@@ -243,6 +259,10 @@ QVector<ShaderStorageBlock> GraphicsHelperES2::programShaderStorageBlocks(GLuint
{
Q_UNUSED(programId);
QVector<ShaderStorageBlock> blocks;
+ static bool showWarning = true;
+ if (!showWarning)
+ return blocks;
+ showWarning = false;
qWarning() << "SSBO are not supported by OpenGL ES 2.0 (since OpenGL ES 3.1)";
return blocks;
}
@@ -281,12 +301,20 @@ void GraphicsHelperES2::vertexAttributePointer(GLenum shaderDataType,
void GraphicsHelperES2::readBuffer(GLenum mode)
{
Q_UNUSED(mode)
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glReadBuffer not supported by OpenGL ES 2.0 (since OpenGL ES 3.0)";
}
void GraphicsHelperES2::drawBuffer(GLenum mode)
{
Q_UNUSED(mode);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glDrawBuffer is not supported with OpenGL ES 2";
}
@@ -328,6 +356,10 @@ void GraphicsHelperES2::blendFunci(GLuint buf, GLenum sfactor, GLenum dfactor)
Q_UNUSED(sfactor);
Q_UNUSED(dfactor);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glBlendFunci() not supported by OpenGL ES 2.0";
}
@@ -339,6 +371,10 @@ void GraphicsHelperES2::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRGB,
Q_UNUSED(sAlpha);
Q_UNUSED(dAlpha);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glBlendFuncSeparatei() not supported by OpenGL ES 2.0";
}
@@ -366,6 +402,10 @@ void GraphicsHelperES2::frontFace(GLenum mode)
void GraphicsHelperES2::setMSAAEnabled(bool enabled)
{
Q_UNUSED(enabled);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "MSAA not available with OpenGL ES 2.0";
}
@@ -479,8 +519,13 @@ bool GraphicsHelperES2::supportsFeature(GraphicsHelperInterface::Feature feature
return false;
}
}
+
void GraphicsHelperES2::drawBuffers(GLsizei, const int *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "drawBuffers is not supported by ES 2.0";
}
@@ -494,6 +539,10 @@ void GraphicsHelperES2::bindUniformBlock(GLuint programId, GLuint uniformBlockIn
Q_UNUSED(programId);
Q_UNUSED(uniformBlockIndex);
Q_UNUSED(uniformBlockBinding);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "UBO are not supported by ES 2.0 (since ES 3.0)";
}
@@ -502,6 +551,10 @@ void GraphicsHelperES2::bindShaderStorageBlock(GLuint programId, GLuint shaderSt
Q_UNUSED(programId);
Q_UNUSED(shaderStorageBlockIndex);
Q_UNUSED(shaderStorageBlockBinding);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "SSBO are not supported by ES 2.0 (since ES 3.1)";
}
@@ -510,6 +563,10 @@ void GraphicsHelperES2::bindBufferBase(GLenum target, GLuint index, GLuint buffe
Q_UNUSED(target);
Q_UNUSED(index);
Q_UNUSED(buffer);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "bindBufferBase is not supported by ES 2.0 (since ES 3.0)";
}
@@ -518,6 +575,10 @@ void GraphicsHelperES2::buildUniformBuffer(const QVariant &v, const ShaderUnifor
Q_UNUSED(v);
Q_UNUSED(description);
Q_UNUSED(buffer);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "UBO are not supported by ES 2.0 (since ES 3.0)";
}
@@ -593,6 +654,10 @@ void GraphicsHelperES2::disableClipPlane(int)
void GraphicsHelperES2::setClipPlane(int, const QVector3D &, float)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Clip planes not supported by OpenGL ES 2.0";
}
@@ -604,6 +669,10 @@ GLint GraphicsHelperES2::maxClipPlaneCount()
void GraphicsHelperES2::memoryBarrier(QMemoryBarrier::Operations barriers)
{
Q_UNUSED(barriers);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "memory barrier is not supported by OpenGL ES 2.0 (since 4.3)";
}
@@ -624,6 +693,10 @@ void GraphicsHelperES2::clearBufferf(GLint drawbuffer, const QVector4D &values)
{
Q_UNUSED(drawbuffer);
Q_UNUSED(values);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glClearBuffer*() not supported by OpenGL ES 2.0";
}
@@ -643,6 +716,10 @@ void GraphicsHelperES2::enablei(GLenum cap, GLuint index)
{
Q_UNUSED(cap);
Q_UNUSED(index);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glEnablei() not supported by OpenGL ES 2.0";
}
@@ -650,12 +727,20 @@ void GraphicsHelperES2::disablei(GLenum cap, GLuint index)
{
Q_UNUSED(cap);
Q_UNUSED(index);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glDisablei() not supported by OpenGL ES 2.0";
}
void GraphicsHelperES2::setSeamlessCubemap(bool enable)
{
Q_UNUSED(enable);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "GL_TEXTURE_CUBE_MAP_SEAMLESS not supported by OpenGL ES 2.0";
}
@@ -686,6 +771,10 @@ void GraphicsHelperES2::dispatchCompute(GLuint wx, GLuint wy, GLuint wz)
Q_UNUSED(wx);
Q_UNUSED(wy);
Q_UNUSED(wz);
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Compute Shaders are not supported by ES 2.0 (since ES 3.1)";
}
@@ -693,6 +782,10 @@ char *GraphicsHelperES2::mapBuffer(GLenum target, GLsizeiptr size)
{
Q_UNUSED(target);
Q_UNUSED(size);
+ static bool showWarning = true;
+ if (!showWarning)
+ return nullptr;
+ showWarning = false;
qWarning() << "Map buffer is not a core requirement for ES 2.0";
return nullptr;
}
@@ -700,6 +793,10 @@ char *GraphicsHelperES2::mapBuffer(GLenum target, GLsizeiptr size)
GLboolean GraphicsHelperES2::unmapBuffer(GLenum target)
{
Q_UNUSED(target);
+ static bool showWarning = true;
+ if (!showWarning)
+ return false;
+ showWarning = false;
qWarning() << "unMap buffer is not a core requirement for ES 2.0";
return false;
}
@@ -746,21 +843,37 @@ void GraphicsHelperES2::glUniform4iv(GLint location, GLsizei count, const GLint
void GraphicsHelperES2::glUniform1uiv(GLint , GLsizei , const GLuint *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniform1uiv not supported by ES 2";
}
void GraphicsHelperES2::glUniform2uiv(GLint , GLsizei , const GLuint *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniform2uiv not supported by ES 2";
}
void GraphicsHelperES2::glUniform3uiv(GLint , GLsizei , const GLuint *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniform3uiv not supported by ES 2";
}
void GraphicsHelperES2::glUniform4uiv(GLint , GLsizei , const GLuint *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniform4uiv not supported by ES 2";
}
@@ -781,31 +894,55 @@ void GraphicsHelperES2::glUniformMatrix4fv(GLint location, GLsizei count, const
void GraphicsHelperES2::glUniformMatrix2x3fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix2x3fv not supported by ES 2";
}
void GraphicsHelperES2::glUniformMatrix3x2fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix3x2fv not supported by ES 2";
}
void GraphicsHelperES2::glUniformMatrix2x4fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix2x4fv not supported by ES 2";
}
void GraphicsHelperES2::glUniformMatrix4x2fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix4x2fv not supported by ES 2";
}
void GraphicsHelperES2::glUniformMatrix3x4fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix3x4fv not supported by ES 2";
}
void GraphicsHelperES2::glUniformMatrix4x3fv(GLint , GLsizei , const GLfloat *)
{
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "glUniformMatrix4x3fv not supported by ES 2";
}
@@ -854,9 +991,13 @@ UniformType GraphicsHelperES2::uniformTypeFromGLType(GLenum type)
void GraphicsHelperES2::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
- if (!m_supportFramebufferBlit)
+ if (!m_supportFramebufferBlit) {
+ static bool showWarning = true;
+ if (!showWarning)
+ return;
+ showWarning = false;
qWarning() << "Framebuffer blits are not supported by ES 2.0 (since ES 3.1)";
- else
+ } else
m_ext->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}