e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CROcclusionObject *q = (CROcclusionObject *) crAlloc(sizeof(CROcclusionObject));
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrStateDeleteQueriesARB(GLsizei n, const GLuint *ids)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /*CRStateBits *sb = GetCurrentBits();*/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /*CROcclusionBits *bb = &(sb->occlusion);*/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glDeleteQueriesARB called in Begin/End");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (n < 0) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glDeleteQueriesARB(n < 0)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync for (i = 0; i < n; i++) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGenQueriesARB called in Begin/End");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (n < 0) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGenQueriesARB(n < 0)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync for (i = 0; i < n; i++)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_OUT_OF_MEMORY, "glGenQueriesARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glIsQueryARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrStateGetQueryivARB(GLenum target, GLenum pname, GLint *params)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryivARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryivARB(pname)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrStateGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryObjectivARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync q = (CROcclusionObject *) crHashtableSearch(o->objects, id);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (!q || q->active) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetQueryObjectivARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetQueryObjectivARB(pname)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrStateGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryObjectuivARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync q = (CROcclusionObject *) crHashtableSearch(o->objects, id);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (!q || q->active) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetQueryObjectuivARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /* XXX revisit when we have a hardware implementation! */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetQueryObjectuivARB(pname)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryObjectuivARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glBeginQueryARB(target)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glBeginQueryARB(target)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync q = (CROcclusionObject *) crHashtableSearch(o->objects, id);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (q && q->active) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION, "glBeginQueryARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync else if (!q) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_OUT_OF_MEMORY, "glBeginQueryARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glGetGetQueryObjectuivARB called in begin/end");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glEndQueryARB(target)");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync q = (CROcclusionObject *) crHashtableSearch(o->objects, o->currentQueryObject);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (!q || !q->active) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync "glEndQueryARB with glBeginQueryARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid crStateOcclusionDiff(CROcclusionBits *bb, CRbitvalue *bitID,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /* Apparently, no occlusion state differencing needed */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * XXX this function might need some testing/fixing.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid crStateOcclusionSwitch(CROcclusionBits *bb, CRbitvalue *bitID,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /* Apparently, no occlusion state switching needed */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync /* Note: we better not do a switch while we're inside a glBeginQuery/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * glEndQuery sequence.