mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
glGetQueryBufferObjectiv and its three siblings were stubs. They are the ordinary query getters with the destination changed from client memory to a buffer object, so everything about the query itself - the name, whether it is still active, the parameter - is already answered by the shared GetQueryObjectValue, including the errors it raises. What was left is the destination: a negative offset is INVALID_VALUE, a name that is not a buffer object is INVALID_OPERATION, and so is a write that would run past the end of the buffer. The four differ only in the width they store, so they share one template. direct_state_access.queries_errors passes on both backends, putting the group at 4 of 5. queries_functional now reaches further into the test and ends in an unrelated InternalError rather than a plain failure.
33 lines
1.6 KiB
C++
33 lines
1.6 KiB
C++
// MobileGL - MobileGL/MG_Impl/GLImpl/Query/GL_Query.h
|
|
// Copyright (c) 2025-2026 MobileGL-Dev
|
|
// Licensed under the GNU Lesser General Public License v3.0:
|
|
// https://www.gnu.org/licenses/gpl-3.0.txt
|
|
// https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
// End of Source File Header
|
|
|
|
#pragma once
|
|
#include <Includes.h>
|
|
|
|
namespace MobileGL::MG_Impl::GLImpl {
|
|
void GenQueries(GLsizei n, GLuint* ids);
|
|
void CreateQueries(GLenum target, GLsizei n, GLuint* ids);
|
|
void DeleteQueries(GLsizei n, const GLuint* ids);
|
|
GLboolean IsQuery(GLuint id);
|
|
void BeginQuery(GLenum target, GLuint id);
|
|
void EndQuery(GLenum target);
|
|
void GetQueryiv(GLenum target, GLenum pname, GLint* params);
|
|
void BeginQueryIndexed(GLenum target, GLuint index, GLuint id);
|
|
void EndQueryIndexed(GLenum target, GLuint index);
|
|
void GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint* params);
|
|
void GetQueryObjectiv(GLuint id, GLenum pname, GLint* params);
|
|
void GetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params);
|
|
void GetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params);
|
|
void GetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params);
|
|
void GetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
|
void GetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
|
void GetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
|
void GetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
|
void QueryCounter(GLuint id, GLenum target);
|
|
} // namespace MobileGL::MG_Impl::GLImpl
|