update bullet so it actually works

Moved the addSourceDirectory for physics/Bullet into the Engine/Source/CMakeLists.txt file that way it can actually appear where we expect it to in the solution explorer.
This commit is contained in:
marauder2k7 2026-06-03 15:08:51 +01:00
parent c7be48130a
commit 13fa178cf6
5986 changed files with 1811270 additions and 453803 deletions

View file

@ -15,7 +15,6 @@ subject to the following restrictions:
#include "Bullet3Common/b3Scalar.h"
#ifndef BT_WIN32_THREAD_SUPPORT_H
#define BT_WIN32_THREAD_SUPPORT_H
@ -23,97 +22,94 @@ subject to the following restrictions:
#include "b3ThreadSupportInterface.h"
typedef void (*b3Win32ThreadFunc)(void* userPtr,void* lsMemory);
typedef void (*b3Win32ThreadFunc)(void* userPtr, void* lsMemory);
typedef void* (*b3Win32lsMemorySetupFunc)();
typedef void (*b3Win32lsMemoryReleaseFunc)(void*);
///b3Win32ThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication
class b3Win32ThreadSupport : public b3ThreadSupportInterface
class b3Win32ThreadSupport : public b3ThreadSupportInterface
{
public:
///placeholder, until libspe2 support is there
struct b3ThreadStatus
struct b3ThreadStatus
{
int m_taskId;
int m_commandId;
int m_status;
int m_taskId;
int m_commandId;
int m_status;
b3Win32ThreadFunc m_userThreadFunc;
void* m_userPtr; //for taskDesc etc
void* m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc
b3Win32ThreadFunc m_userThreadFunc;
void* m_userPtr; //for taskDesc etc
void* m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc
void* m_threadHandle; //this one is calling 'Win32ThreadFunc'
b3Win32lsMemoryReleaseFunc m_lsMemoryReleaseFunc;
void* m_eventStartHandle;
char m_eventStartHandleName[32];
void* m_threadHandle; //this one is calling 'Win32ThreadFunc'
void* m_eventCompletetHandle;
char m_eventCompletetHandleName[32];
void* m_eventStartHandle;
char m_eventStartHandleName[32];
void* m_eventCompletetHandle;
char m_eventCompletetHandleName[32];
};
private:
b3AlignedObjectArray<b3ThreadStatus> m_activeThreadStatus;
b3AlignedObjectArray<void*> m_completeHandles;
private:
b3AlignedObjectArray<b3ThreadStatus> m_activeThreadStatus;
b3AlignedObjectArray<void*> m_completeHandles;
int m_maxNumTasks;
public:
///Setup and initialize SPU/CELL/Libspe2
struct Win32ThreadConstructionInfo
struct Win32ThreadConstructionInfo
{
Win32ThreadConstructionInfo(const char* uniqueName,
b3Win32ThreadFunc userThreadFunc,
b3Win32lsMemorySetupFunc lsMemoryFunc,
int numThreads=1,
int threadStackSize=65535
)
:m_uniqueName(uniqueName),
m_userThreadFunc(userThreadFunc),
m_lsMemoryFunc(lsMemoryFunc),
m_numThreads(numThreads),
m_threadStackSize(threadStackSize),
m_priority(0)
b3Win32lsMemorySetupFunc lsMemoryFunc,
b3Win32lsMemoryReleaseFunc lsMemoryReleaseFunc,
int numThreads = 1,
int threadStackSize = 65535)
: m_uniqueName(uniqueName),
m_userThreadFunc(userThreadFunc),
m_lsMemoryFunc(lsMemoryFunc),
m_lsMemoryReleaseFunc(lsMemoryReleaseFunc),
m_numThreads(numThreads),
m_threadStackSize(threadStackSize),
m_priority(0)
{
}
const char* m_uniqueName;
b3Win32ThreadFunc m_userThreadFunc;
b3Win32lsMemorySetupFunc m_lsMemoryFunc;
int m_numThreads;
int m_threadStackSize;
int m_priority;
const char* m_uniqueName;
b3Win32ThreadFunc m_userThreadFunc;
b3Win32lsMemorySetupFunc m_lsMemoryFunc;
b3Win32lsMemoryReleaseFunc m_lsMemoryReleaseFunc;
int m_numThreads;
int m_threadStackSize;
int m_priority;
};
b3Win32ThreadSupport(const Win32ThreadConstructionInfo& threadConstructionInfo);
///cleanup/shutdown Libspe2
virtual ~b3Win32ThreadSupport();
///cleanup/shutdown Libspe2
virtual ~b3Win32ThreadSupport();
void startThreads(const Win32ThreadConstructionInfo& threadInfo);
void startThreads(const Win32ThreadConstructionInfo& threadInfo);
///send messages to SPUs
virtual void runTask(int uiCommand, void* uiArgument0, int uiArgument1);
///send messages to SPUs
virtual void runTask(int uiCommand, void* uiArgument0, int uiArgument1);
///check for messages from SPUs
virtual void waitForResponse(int* puiArgument0, int* puiArgument1);
///check for messages from SPUs
virtual void waitForResponse(int *puiArgument0, int *puiArgument1);
virtual bool isTaskCompleted(int* puiArgument0, int* puiArgument1, int timeOutInMilliseconds);
virtual bool isTaskCompleted(int *puiArgument0, int *puiArgument1, int timeOutInMilliseconds);
///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)
virtual void startThreads();
///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)
virtual void startThreads();
///tell the task scheduler we are done with the SPU tasks
virtual void stopThreads();
///tell the task scheduler we are done with the SPU tasks
virtual void stopThreads();
virtual void setNumTasks(int numTasks)
virtual void setNumTasks(int numTasks)
{
m_maxNumTasks = numTasks;
}
@ -123,19 +119,17 @@ public:
return m_maxNumTasks;
}
virtual void* getThreadLocalMemory(int taskId)
virtual void* getThreadLocalMemory(int taskId)
{
return m_activeThreadStatus[taskId].m_lsMemory;
}
virtual b3Barrier* createBarrier();
virtual b3Barrier* createBarrier();
virtual b3CriticalSection* createCriticalSection();
virtual void deleteBarrier(b3Barrier* barrier);
virtual void deleteCriticalSection(b3CriticalSection* criticalSection);
virtual void deleteCriticalSection(b3CriticalSection* criticalSection);
};
#endif //BT_WIN32_THREAD_SUPPORT_H
#endif //BT_WIN32_THREAD_SUPPORT_H