Lines Matching refs:dlm

6 #include "dlm.h"
14 * directory. The dlm module basically takes care of API dispatch,
70 CRDLM *dlm;
79 dlm = crAlloc(sizeof(*dlm));
80 if (!dlm) {
88 if (!(dlm->displayLists = crAllocHashtable())) {
89 crFree(dlm);
94 dlm->userCount = 1;
102 crInitMutex(&(dlm->dlMutex));
113 crInitTSDF(&(dlm->tsdKey), threadDestructor);
128 dlm->bufferSize = config.bufferSize;
131 return dlm;
134 void DLM_APIENTRY crDLMUseDLM(CRDLM *dlm)
136 DLM_LOCK(dlm);
137 dlm->userCount++;
138 DLM_UNLOCK(dlm);
146 void DLM_APIENTRY crDLMFreeDLM(CRDLM *dlm)
149 DLM_LOCK(dlm)
156 dlm->userCount--;
157 if (dlm->userCount == 0) {
164 crFreeHashtable(dlm->displayLists, crdlm_free_list);
165 dlm->displayLists = NULL;
168 DLM_UNLOCK(dlm)
188 crFreeMutex(&(dlm->dlMutex));
196 crFreeTSD(&(dlm->tsdKey));
201 crFree(dlm);
207 DLM_UNLOCK(dlm)
221 CRDLMContextState DLM_APIENTRY *crDLMNewContext(CRDLM *dlm)
231 state->dlm = dlm;
241 crDLMUseDLM(dlm);
283 crDLMFreeDLM(state->dlm);
284 state->dlm = NULL;
310 CRDLMError DLM_APIENTRY crDLMDeleteListContent(CRDLM *dlm, unsigned long listIdentifier)
315 listInfo = (DLMListInfo *) crHashtableSearch(dlm->displayLists, listIdentifier);
348 * dlm - the display list manager context
352 void DLM_APIENTRY crDLMReplayDLMList(CRDLM *dlm, unsigned long listIdentifier, SPUDispatchTable *dispatchTable)
356 listInfo = (DLMListInfo *)crHashtableSearch(dlm->displayLists, listIdentifier);
375 crDLMReplayDLMList(listState->dlm, listIdentifier, dispatchTable);
382 * dlm - the display list manager context
386 void DLM_APIENTRY crDLMReplayDLMListState(CRDLM *dlm, unsigned long listIdentifier, SPUDispatchTable *dispatchTable)
390 listInfo = (DLMListInfo *)crHashtableSearch(dlm->displayLists, listIdentifier);
408 crDLMReplayDLMListState(listState->dlm, listIdentifier, dispatchTable);
434 void DLM_APIENTRY crDLMReplayDLMLists(CRDLM *dlm, GLsizei n, GLenum type, const GLvoid * lists, SPUDispatchTable *dispatchTable)
444 crDLMReplayDLMList(dlm, listId, dispatchTable);\
459 crDLMReplayDLMLists(listState->dlm, n, type, lists, dispatchTable);
463 void DLM_APIENTRY crDLMReplayDLMListsState(CRDLM *dlm, GLsizei n, GLenum type, const GLvoid * lists, SPUDispatchTable *dispatchTable)
473 crDLMReplayDLMListState(dlm, listId, dispatchTable);\
488 crDLMReplayDLMListsState(listState->dlm, n, type, lists, dispatchTable);
515 void DLM_APIENTRY crDLMSendDLMList(CRDLM *dlm, unsigned long listIdentifier,
519 crDLMReplayDLMList(dlm, listIdentifier, dispatchTable);
527 crDLMSendDLMList(listState->dlm, listIdentifier, dispatchTable);
532 CRDLM *dlm;
540 crDLMSendDLMList(parms->dlm, key, parms->dispatchTable);
543 void DLM_APIENTRY crDLMSendAllDLMLists(CRDLM *dlm, SPUDispatchTable *dispatchTable)
550 parms.dlm = dlm;
553 crHashtableWalk(dlm->displayLists, sendListsCallback, (void *)&parms);
560 crDLMSendAllDLMLists(listState->dlm, dispatchTable);
592 int DLM_APIENTRY crDLMGetReferences(CRDLM *dlm, unsigned long listIdentifier,
597 listInfo = (DLMListInfo *) crHashtableSearch(dlm->displayLists, listIdentifier);
616 CRDLMError DLM_APIENTRY crDLMGetDLMBounds(CRDLM *dlm, unsigned long listIdentifier, CRDLMBounds *bounds)
619 = (DLMListInfo *) crHashtableSearch(dlm->displayLists, listIdentifier);
633 return crDLMGetDLMBounds(listState->dlm, listIdentifier, bounds);
644 void DLM_APIENTRY crDLMSetDLMBounds(CRDLM *dlm, unsigned long listIdentifier,
649 = (DLMListInfo *) crHashtableSearch(dlm->displayLists, listIdentifier);
654 crHashtableReplace(listState->dlm->displayLists,
673 crDLMSetDLMBounds(listState->dlm, listIdentifier,
681 GLboolean DLM_APIENTRY crDLMListHasDLMBounds(CRDLM *dlm, unsigned long listIdentifier)
684 = (DLMListInfo *) crHashtableSearch(dlm->displayLists, listIdentifier);
695 return crDLMListHasDLMBounds(listState->dlm, listIdentifier);