VOGL_FUNC_TRACER
uint buffer = 0;
- if (get(binding_enum, 0, &buffer))
+ if (get(binding_enum, 0, &buffer, 1, false))
{
buffer = static_cast<uint>(remapper.remap_handle(VOGL_NAMESPACE_BUFFERS, buffer));
+ GL_ENTRYPOINT(glBindBuffer)(set_enum, 0);
+ VOGL_CHECK_GL_ERROR;
+
GL_ENTRYPOINT(glBindBuffer)(set_enum, buffer);
VOGL_CHECK_GL_ERROR;
uint64_t start, size = 0;
uint buffer = 0;
- if (get(binding_enum, index, &buffer, indexed_variant) &&
- get(start_enum, index, &start, indexed_variant) &&
- get(size_enum, index, &size, indexed_variant))
+ if (get(binding_enum, index, &buffer, 1, indexed_variant) &&
+ get(start_enum, index, &start, 1, indexed_variant) &&
+ get(size_enum, index, &size, 1, indexed_variant))
{
if (buffer)
{
ADD_PROCESSED_STATE(GL_ELEMENT_ARRAY_BUFFER_BINDING, 0);
// restore transform feedback targets
- restore_buffer_binding(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER, remapper);
- ADD_PROCESSED_STATE(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, 0);
for (uint i = 0; i < context_info.get_max_transform_feedback_separate_attribs(); i++)
{
restore_buffer_binding_range(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_START, GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER, i, true, remapper);
ADD_PROCESSED_STATE_INDEXED_VARIANT(GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, i);
}
+ restore_buffer_binding(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER, remapper);
+ ADD_PROCESSED_STATE(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, 0);
+
// restore uniform buffer binding target, and the indexed variants
- restore_buffer_binding(GL_UNIFORM_BUFFER_BINDING, GL_UNIFORM_BUFFER, remapper);
- ADD_PROCESSED_STATE(GL_UNIFORM_BUFFER_BINDING, 0);
for (uint i = 0; i < context_info.get_max_uniform_buffer_bindings(); i++)
{
restore_buffer_binding_range(GL_UNIFORM_BUFFER_BINDING, GL_UNIFORM_BUFFER_START, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER, i, true, remapper);
ADD_PROCESSED_STATE_INDEXED_VARIANT(GL_UNIFORM_BUFFER_SIZE, i);
}
+ restore_buffer_binding(GL_UNIFORM_BUFFER_BINDING, GL_UNIFORM_BUFFER, remapper);
+ ADD_PROCESSED_STATE(GL_UNIFORM_BUFFER_BINDING, 0);
+
// TODO: these GL4 guys have indexed and offset/size variants
restore_buffer_binding(GL_ATOMIC_COUNTER_BUFFER_BINDING, GL_ATOMIC_COUNTER_BUFFER, remapper);
ADD_PROCESSED_STATE(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0);
//----------------------------------------
+ GL_ENTRYPOINT(glBindBuffer)(GL_ARRAY_BUFFER, 0);
+ VOGL_CHECK_GL_ERROR;
+
GL_ENTRYPOINT(glBindBuffer)(GL_ARRAY_BUFFER, prev_array_buffer_binding);
VOGL_CHECK_GL_ERROR;