void ISPCLaunch(void **taskGroupPtr, void *func, void *data, int count) { TaskGroup *taskGroup; if (*taskGroupPtr == NULL) { InitTaskSystem(); taskGroup = AllocTaskGroup(); *taskGroupPtr = taskGroup; } else taskGroup = (TaskGroup *)(*taskGroupPtr); int baseIndex = taskGroup->AllocTaskInfo(count); for (int i = 0; i < count; ++i) { TaskInfo *ti = taskGroup->GetTaskInfo(baseIndex+i); ti->func = (TaskFuncType)func; ti->data = data; ti->taskIndex = i; ti->taskCount = count; } taskGroup->Launch(baseIndex, count); }