本文整理汇总了C++中Ptr::Clear方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::Clear方法的具体用法?C++ Ptr::Clear怎么用?C++ Ptr::Clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ptr
的用法示例。
在下文中一共展示了Ptr::Clear方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
JNIEXPORT void JNICALL Java_de_fruitfly_ovr_OculusRift_destroySubsystem(JNIEnv *env, jobject jobj) {
printf("Destroying Oculus Rift device interface.\n");
pSensor.Clear();
pManager.Clear();
System::Destroy();
}
示例2: CloseRiftApi
extern "C" RIFTAPI_API int CloseRiftApi(void)
{
pSensor.Clear();
pManager.Clear();
OVR::System::Destroy();
return 1;
}
示例3: Clear
void Clear()
{
pSensor.Clear();
pHMD.Clear();
pManager.Clear();
System::Destroy();
}
示例4: clearRift
extern "C" void clearRift() {
pSensor.Clear();
pHMD.Clear();
pManager.Clear();
delete pFusion;
System::Destroy();
}
示例5: Clear
void Clear()
{
pSensor.Clear();
pHMD.Clear();
pManager.Clear();
delete pFusionResult;
System::Destroy();
}
示例6:
JNIEXPORT void JNICALL Java_de_fruitfly_ovr_OculusRift_destroySubsystem(JNIEnv *env, jobject jobj)
{
if (Initialized)
{
printf("Destroying Oculus Rift device interface.\n");
pSensor.Clear();
pManager.Clear();
pHMD.Clear(); // Ensure HMDDevice is also cleared
System::Destroy();
Initialized = false;
}
}
示例7: IN_MotionSensor_Init
void IN_MotionSensor_Init(void)
{
//Carl: Don't initialize has* here to false, because they can also be set by command line parameters
// *** Oculus Sensor Initialization
OVR::System::Init(OVR::Log::ConfigureDefaultLog(OVR::LogMask_All));
// Create DeviceManager and first available HMDDevice from it.
// Sensor object is created from the HMD, to ensure that it is on the
// correct device.
pManager = *DeviceManager::Create();
// We'll handle it's messages in this case.
//pManager->SetMessageHandler(this);
// Release Sensor/HMD in case this is a retry.
pSensor.Clear();
pHMD.Clear();
pHMD = *pManager->EnumerateDevices<HMDDevice>().CreateDevice();
if (pHMD)
{
pSensor = *pHMD->GetSensor();
}
else
{
// If we didn't detect an HMD, try to create the sensor directly.
// This is useful for debugging sensor interaction; it is not needed in
// a shipping app.
pSensor = *pManager->EnumerateDevices<SensorDevice>().CreateDevice();
}
if (!pHMD && !pSensor)
common->Warning("Oculus Rift not detected.\n");
else if (!pHMD)
common->Warning("Oculus Sensor detected; HMD Display not detected.\n");
else if (!pSensor)
common->Warning("Oculus HMD Display detected; Sensor not detected.\n");
//else if (HMDInfo.DisplayDeviceName[0] == '\0')
// common->Printf("Oculus Sensor detected; HMD display EDID not detected.\n");
if (pSensor)
{
SFusion.AttachToSensor(pSensor);
SFusion.SetPredictionEnabled(true);
hasOculusRift = true;
hasHMD = true;
}
if (!pSensor)
LoadVR920();
hasHMD = hasHMD || hasVR920Tracker;
//Hillcrest libfreespace stuff
LPDWORD dwThreadId=0;
struct freespace_message message;
int numIds;
int rc;
int i;
// Initialize the freespace library
rc = freespace_init();
if (rc != FREESPACE_SUCCESS) {
common->Warning("Hillcrest Initialization error. rc=%d\n", rc);
return;
}
/** --- START EXAMPLE INITIALIZATION OF DEVICE -- **/
rc = freespace_getDeviceList(&device, 1, &numIds);
if (numIds == 0) {
common->Warning("MotionSensor: Didn't find any devices.\n");
return;
}
rc = freespace_openDevice(device);
if (rc != FREESPACE_SUCCESS) {
common->Warning("MotionSensor: Error opening device: %d\n", rc);
return;
}
rc = freespace_flush(device);
if (rc != FREESPACE_SUCCESS) {
common->Warning("MotionSensor: Error flushing device: %d\n", rc);
return;
}
memset(&message, 0, sizeof(message));
message.messageType = FREESPACE_MESSAGE_DATAMODECONTROLV2REQUEST;
message.dataModeControlV2Request.packetSelect = 2;
message.dataModeControlV2Request.modeAndStatus |= 0 << 1;
rc = freespace_sendMessage(device, &message);
if (rc != FREESPACE_SUCCESS) {
common->Warning("freespaceInputThread: Could not send message: %d.\n", rc);
}
CreateThread(NULL, //Choose default security
0, //Default stack size
(LPTHREAD_START_ROUTINE)&IN_MotionSensor_Thread,
//Routine to execute
(LPVOID) &i, //Thread parameter
0, //Immediately run the thread
//.........这里部分代码省略.........
示例8: SaveCache
// Serializes the profiles to disk.
void ProfileManager::SaveCache()
{
String path = GetProfilePath(true);
Lock::Locker lockScope(&ProfileLock);
Ptr<JSON> oldroot = *JSON::Load(path);
if (oldroot)
{
if (oldroot->GetItemCount() >= 3)
{
JSON* item0 = oldroot->GetFirstItem();
JSON* item1 = oldroot->GetNextItem(item0);
oldroot->GetNextItem(item1);
if (item0->Name == "Oculus Profile Version")
{
int major = atoi(item0->Value.ToCStr());
if (major > MAX_PROFILE_MAJOR_VERSION)
oldroot.Clear(); // don't use the file on unsupported major version number
}
else
{
oldroot.Clear();
}
}
else
{
oldroot.Clear();
}
}
// Create a new json root
Ptr<JSON> root = *JSON::CreateObject();
root->AddNumberItem("Oculus Profile Version", PROFILE_VERSION);
root->AddStringItem("CurrentProfile", DefaultProfile);
root->AddNumberItem("ProfileCount", (double) ProfileCache.GetSize());
// Generate a JSON subtree for each profile
for (unsigned int i=0; i<ProfileCache.GetSize(); i++)
{
Profile* profile = ProfileCache[i];
// Write the base profile information
JSON* json_profile = JSON::CreateObject();
json_profile->Name = "Profile";
json_profile->AddStringItem("Name", profile->Name);
const char* gender;
switch (profile->GetGender())
{
case Profile::Gender_Male: gender = "Male"; break;
case Profile::Gender_Female: gender = "Female"; break;
default: gender = "Unspecified";
}
json_profile->AddStringItem("Gender", gender);
json_profile->AddNumberItem("PlayerHeight", profile->PlayerHeight);
json_profile->AddNumberItem("IPD", profile->IPD);
const char* device_name = NULL;
// Create a device-specific subtree for the cached device
if (profile->Type == Profile_RiftDK1)
{
device_name = "RiftDK1";
RiftDK1Profile* rift = (RiftDK1Profile*)profile;
JSON* json_rift = JSON::CreateObject();
json_profile->AddItem(device_name, json_rift);
const char* eyecup = "A";
switch (rift->EyeCups)
{
case EyeCup_A: eyecup = "A"; break;
case EyeCup_B: eyecup = "B"; break;
case EyeCup_C: eyecup = "C"; break;
}
json_rift->AddStringItem("EyeCup", eyecup);
json_rift->AddNumberItem("LL", rift->LL);
json_rift->AddNumberItem("LR", rift->LR);
json_rift->AddNumberItem("RL", rift->RL);
json_rift->AddNumberItem("RR", rift->RR);
}
else if (profile->Type == Profile_RiftDKHD)
{
device_name = "RiftDKHD";
RiftDKHDProfile* rift = (RiftDKHDProfile*)profile;
JSON* json_rift = JSON::CreateObject();
json_profile->AddItem(device_name, json_rift);
const char* eyecup = "A";
switch (rift->EyeCups)
{
case EyeCup_A: eyecup = "A"; break;
case EyeCup_B: eyecup = "B"; break;
case EyeCup_C: eyecup = "C"; break;
}
json_rift->AddStringItem("EyeCup", eyecup);
//json_rift->AddNumberItem("LL", rift->LL);
//json_rift->AddNumberItem("LR", rift->LR);
//.........这里部分代码省略.........
示例9: TestEmbeddedObjectKill
void TestEmbeddedObjectKill(void)
{
char szClusterMissileState[64];
char szMissile1State[64];
ObjectsInit();
Ptr<CRoot> pRoot = ORoot();
Ptr<CGameWorld> pWorld = OMalloc(CGameWorld)->Init();
pRoot->Add(pWorld);
Ptr<CClusterMissile> pClusterMissile = ONMalloc(CClusterMissile, "Anna")->Init(pWorld);
pWorld = NULL;
Ptr<CPointerContainer> pPointerPointer = OMalloc(CPointerContainer);
pRoot->Add(pPointerPointer);
pPointerPointer->Init(&pClusterMissile->mcMissile1);
Ptr<CPointerContainer> pPointerPointer2 = OMalloc(CPointerContainer);
pRoot->Add(pPointerPointer2);
pPointerPointer2->Init(&pClusterMissile);
//The number of allocated object shouldn't change until all the froms are removed
//both from the embedded object and the 'normal' object.
AssertLongLongInt(7, gcObjects.GetMemory()->NumIndexed());
AssertLongLongInt(7, gcUnknowns.NumElements());
pClusterMissile->SetKillString(szClusterMissileState);
pClusterMissile->mcMissile1.SetKillString(szMissile1State);
AssertInt(2, pClusterMissile->NumHeapFroms());
AssertInt(1, pClusterMissile->CEmbeddedObject::NumHeapFroms());
AssertInt(1, pClusterMissile->mcMissile1.NumHeapFroms());
strcpy(szClusterMissileState, "Alive");
strcpy(szMissile1State, "Alive");
pPointerPointer->Clear();
AssertInt(1, pClusterMissile->NumHeapFroms());
AssertInt(1, pClusterMissile->CEmbeddedObject::NumHeapFroms());
AssertInt(0, pClusterMissile->mcMissile1.NumHeapFroms());
AssertString("Alive", szClusterMissileState);
AssertString("Alive", szMissile1State);
pPointerPointer->mp = &pClusterMissile->mcMissile1;
AssertInt(2, pClusterMissile->NumHeapFroms());
AssertInt(1, pClusterMissile->CEmbeddedObject::NumHeapFroms());
AssertInt(1, pClusterMissile->mcMissile1.NumHeapFroms());
pPointerPointer2->Clear();
AssertInt(1, pClusterMissile->NumHeapFroms());
AssertInt(0, pClusterMissile->CEmbeddedObject::NumHeapFroms());
AssertInt(1, pClusterMissile->mcMissile1.NumHeapFroms());
AssertString("Alive", szClusterMissileState);
AssertString("Alive", szMissile1State);
pClusterMissile = NULL;
//Make sure nothing has been de-allocated.
AssertLongLongInt(7, gcObjects.GetMemory()->NumIndexed());
AssertLongLongInt(7, gcUnknowns.NumElements());
pPointerPointer->Clear();
AssertString("Killed", szClusterMissileState);
AssertString("Killed", szMissile1State);
AssertLongLongInt(6, gcObjects.GetMemory()->NumIndexed());
AssertLongLongInt(6, gcUnknowns.NumElements());
gcObjects.Flush(TRUE, FALSE);
AssertLongLongInt(0, gcObjects.GetMemory()->NumIndexed());
AssertLongLongInt(0, gcUnknowns.NumElements());
ObjectsKill();
}