Skip to content

Commit c1c94d1

Browse files
committed
Allow NULL in glClear*Buffer and glClear*Tex functions
* The spec says that if data is NULL, it acts like a buffer filled with zeroes, so we can just memset.
1 parent c6ab587 commit c1c94d1

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

renderdoc/driver/gl/wrappers/gl_draw_funcs.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3600,7 +3600,10 @@ bool WrappedOpenGL::Serialise_glClearNamedBufferDataEXT(GLuint buffer, GLenum in
36003600
case eGL_UNSIGNED_INT_10_10_10_2:
36013601
case eGL_UNSIGNED_INT_2_10_10_10_REV: s = 4; break;
36023602
}
3603-
memcpy(val, data, s);
3603+
if(data)
3604+
memcpy(val, data, s);
3605+
else
3606+
memset(val, 0, s);
36043607
}
36053608

36063609
m_pSerialiser->SerialisePODArray<4>("data", val);
@@ -3730,7 +3733,10 @@ bool WrappedOpenGL::Serialise_glClearNamedBufferSubDataEXT(GLuint buffer, GLenum
37303733
case eGL_UNSIGNED_INT_10_10_10_2:
37313734
case eGL_UNSIGNED_INT_2_10_10_10_REV: s = 4; break;
37323735
}
3733-
memcpy(val, data, s);
3736+
if(data)
3737+
memcpy(val, data, s);
3738+
else
3739+
memset(val, 0, s);
37343740
}
37353741

37363742
m_pSerialiser->SerialisePODArray<4>("data", val);
@@ -4013,7 +4019,10 @@ bool WrappedOpenGL::Serialise_glClearTexImage(GLuint texture, GLint level, GLenu
40134019
case eGL_UNSIGNED_INT_10_10_10_2:
40144020
case eGL_UNSIGNED_INT_2_10_10_10_REV: s = 4; break;
40154021
}
4016-
memcpy(val, data, s);
4022+
if(data)
4023+
memcpy(val, data, s);
4024+
else
4025+
memset(val, 0, s);
40174026
}
40184027

40194028
m_pSerialiser->SerialisePODArray<4>("data", val);
@@ -4117,7 +4126,10 @@ bool WrappedOpenGL::Serialise_glClearTexSubImage(GLuint texture, GLint level, GL
41174126
case eGL_UNSIGNED_INT_10_10_10_2:
41184127
case eGL_UNSIGNED_INT_2_10_10_10_REV: s = 4; break;
41194128
}
4120-
memcpy(val, data, s);
4129+
if(data)
4130+
memcpy(val, data, s);
4131+
else
4132+
memset(val, 0, s);
41214133
}
41224134

41234135
m_pSerialiser->SerialisePODArray<4>("data", val);

0 commit comments

Comments
 (0)