mirror of
https://github.com/NVIDIA/cuda-samples.git
synced 2024-11-25 02:39:15 +08:00
59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
|
/*
|
||
|
* Copyright 1993-2018 NVIDIA Corporation. All rights reserved.
|
||
|
*
|
||
|
* Please refer to the NVIDIA end user license agreement (EULA) associated
|
||
|
* with this source code for terms and conditions that govern your use of
|
||
|
* this software. Any use, reproduction, disclosure, or distribution of
|
||
|
* this software and related documentation outside the terms of the EULA
|
||
|
* is strictly prohibited.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "DXSampleHelper.h"
|
||
|
#include "Win32Application.h"
|
||
|
|
||
|
class DX12CudaSample
|
||
|
{
|
||
|
public:
|
||
|
DX12CudaSample(UINT width, UINT height, std::string name);
|
||
|
virtual ~DX12CudaSample();
|
||
|
|
||
|
virtual void OnInit() = 0;
|
||
|
virtual void OnRender() = 0;
|
||
|
virtual void OnDestroy() = 0;
|
||
|
|
||
|
// Samples override the event handlers to handle specific messages.
|
||
|
virtual void OnKeyDown(UINT8 /*key*/) {}
|
||
|
virtual void OnKeyUp(UINT8 /*key*/) {}
|
||
|
|
||
|
// Accessors.
|
||
|
UINT GetWidth() const { return m_width; }
|
||
|
UINT GetHeight() const { return m_height; }
|
||
|
const CHAR* GetTitle() const { return m_title.c_str(); }
|
||
|
|
||
|
void ParseCommandLineArgs(_In_reads_(argc) WCHAR* argv[], int argc);
|
||
|
|
||
|
protected:
|
||
|
std::wstring GetAssetFullPath(const char* assetName);
|
||
|
void GetHardwareAdapter(_In_ IDXGIFactory2* pFactory, _Outptr_result_maybenull_ IDXGIAdapter1** ppAdapter);
|
||
|
void SetCustomWindowText(const char* text);
|
||
|
std::wstring string2wstring(const std::string& s);
|
||
|
|
||
|
// Viewport dimensions.
|
||
|
UINT m_width;
|
||
|
UINT m_height;
|
||
|
float m_aspectRatio;
|
||
|
|
||
|
// Adapter info.
|
||
|
bool m_useWarpDevice;
|
||
|
|
||
|
private:
|
||
|
// Root assets path.
|
||
|
std::string m_assetsPath;
|
||
|
|
||
|
// Window title.
|
||
|
std::string m_title;
|
||
|
};
|