void SERVER_DISPATCH_APIENTRY crServerDispatchNewList( GLuint list, GLenum mode ) { if (mode == GL_COMPILE_AND_EXECUTE) crWarning("using glNewList(GL_COMPILE_AND_EXECUTE) can confuse the crserver"); list = TranslateListID( list ); crStateNewList( list, mode ); cr_server.head_spu->dispatch_table.NewList( list, mode ); }
void REPLICATESPU_APIENTRY replicatespu_NewList(GLuint listIdentifier, GLenum mode) { GET_THREAD(thread); if (listIdentifier == 0) { crStateError(__LINE__, __FILE__, GL_INVALID_VALUE, "replicate: NewList with zero list identifier"); return; } if (mode != GL_COMPILE && mode != GL_COMPILE_AND_EXECUTE) { crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "replicate: NewList with bad mode (0x%x)", mode); return; } if (thread->currentContext->displayListMode != GL_FALSE) { crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION, "replicate: NewList called while list %d was open", thread->currentContext->displayListIdentifier); return; } /* All okay. Tell the state tracker and the DLM that we've * started a new display list. */ crStateNewList(listIdentifier, mode); crDLMNewList(listIdentifier, mode); /* Remember ourselves, too, so we don't have to waste a function * call to figure out whether we're in a list or not. */ thread->currentContext->displayListMode = mode; thread->currentContext->displayListIdentifier = listIdentifier; /* Pack it up so we can send it to all the connected * VNC clients. */ if (replicate_spu.swap) { crPackNewListSWAP(listIdentifier, mode); } else { crPackNewList(listIdentifier, mode); } }