aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/samples_v2/SampleBase/CommonUIController.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/samples_v2/SampleBase/CommonUIController.h
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'APEX_1.4/samples_v2/SampleBase/CommonUIController.h')
-rw-r--r--APEX_1.4/samples_v2/SampleBase/CommonUIController.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/APEX_1.4/samples_v2/SampleBase/CommonUIController.h b/APEX_1.4/samples_v2/SampleBase/CommonUIController.h
new file mode 100644
index 00000000..9790957f
--- /dev/null
+++ b/APEX_1.4/samples_v2/SampleBase/CommonUIController.h
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
+*
+* NVIDIA CORPORATION and its licensors retain all intellectual property
+* and proprietary rights in and to this software, related documentation
+* and any modifications thereto. Any use, reproduction, disclosure or
+* distribution of this software and related documentation without an express
+* license agreement from NVIDIA CORPORATION is strictly prohibited.
+*/
+
+#ifndef COMMON_UI_CONTROLLER_H
+#define COMMON_UI_CONTROLLER_H
+
+#include "SampleManager.h"
+#include <DirectXMath.h>
+#include "AntTweakBar.h"
+#pragma warning(push)
+#pragma warning(disable : 4350)
+#include <string>
+#include <list>
+#pragma warning(pop)
+#include "PxPhysicsAPI.h"
+
+class CFirstPersonCamera;
+class ApexRenderer;
+class ApexController;
+
+class CommonUIController : public ISampleController
+{
+ public:
+ CommonUIController(CFirstPersonCamera* cam, ApexRenderer* r, ApexController* a);
+ virtual ~CommonUIController() {};
+
+ virtual HRESULT DeviceCreated(ID3D11Device* pDevice);
+ virtual void DeviceDestroyed();
+ virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual void Animate(double fElapsedTimeSeconds);
+ virtual void Render(ID3D11Device*, ID3D11DeviceContext*, ID3D11RenderTargetView*, ID3D11DepthStencilView*);
+ virtual void BackBufferResized(ID3D11Device* pDevice, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc);
+
+ void addHintLine(std::string hintLine);
+
+ void addApexDebugRenderParam(std::string name, std::string module = "", float value = 1.0f, std::string uiName = "");
+ void addPhysXDebugRenderParam(physx::PxVisualizationParameter::Enum parameter);
+
+ static void TW_CALL setWireframeEnabled(const void* value, void* clientData);
+ static void TW_CALL getWireframeEnabled(void* value, void* clientData);
+
+ static void TW_CALL setDebugRenderParam(const void* value, void* clientData);
+ static void TW_CALL getDebugRenderParam(void* value, void* clientData);
+
+ static void TW_CALL onReloadShadersButton(void* clientData);
+
+ private:
+ void toggleCameraSpeed(bool overspeed);
+
+ CFirstPersonCamera* mCamera;
+ ApexRenderer* mApexRenderer;
+ ApexController* mApexController;
+ TwBar* mSettingsBar;
+
+ UINT mWidth;
+ UINT mHeight;
+
+ std::list<std::string> mHintOnLines;
+ std::list<std::string> mHintOffLines;
+ bool mShowHint;
+
+ class IDebugRenderParam
+ {
+ public:
+ virtual ~IDebugRenderParam() {}
+ virtual bool isParamEnabled() = 0;
+ virtual void setParamEnabled(bool) = 0;
+ };
+
+ class ApexDebugRenderParam : public IDebugRenderParam
+ {
+ public:
+ ApexDebugRenderParam(CommonUIController* controller, std::string name, std::string module, float value)
+ : mController(controller), mName(name), mModule(module), mValue(value) {}
+
+ virtual bool isParamEnabled();
+ virtual void setParamEnabled(bool);
+
+ private:
+ CommonUIController* mController;
+ std::string mName;
+ std::string mModule;
+ float mValue;
+ };
+
+ class PhysXDebugRenderParam : public IDebugRenderParam
+ {
+ public:
+ PhysXDebugRenderParam(CommonUIController* controller, physx::PxVisualizationParameter::Enum parameter)
+ : mController(controller), mParameter(parameter) {}
+
+ virtual bool isParamEnabled();
+ virtual void setParamEnabled(bool);
+
+ private:
+ CommonUIController* mController;
+ physx::PxVisualizationParameter::Enum mParameter;
+ };
+
+ std::list<IDebugRenderParam*> mDebugRenderParams;
+};
+
+#endif \ No newline at end of file