mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-30 08:50:33 +00:00
3c52570552
Delete sample load, hook things up. It now builds but doesn't run Reformat, add an event
64 lines
2.0 KiB
C++
64 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include <ppltasks.h> // For create_task
|
|
|
|
namespace DX
|
|
{
|
|
inline void ThrowIfFailed(HRESULT hr)
|
|
{
|
|
if (FAILED(hr))
|
|
{
|
|
// Set a breakpoint on this line to catch Win32 API errors.
|
|
throw Platform::Exception::CreateException(hr);
|
|
}
|
|
}
|
|
|
|
// Function that reads from a binary file asynchronously.
|
|
inline Concurrency::task<std::vector<byte>> ReadDataAsync(const std::wstring& filename)
|
|
{
|
|
using namespace Windows::Storage;
|
|
using namespace Concurrency;
|
|
|
|
auto folder = Windows::ApplicationModel::Package::Current->InstalledLocation;
|
|
|
|
return create_task(folder->GetFileAsync(Platform::StringReference(filename.c_str()))).then([] (StorageFile^ file)
|
|
{
|
|
return FileIO::ReadBufferAsync(file);
|
|
}).then([] (Streams::IBuffer^ fileBuffer) -> std::vector<byte>
|
|
{
|
|
std::vector<byte> returnBuffer;
|
|
returnBuffer.resize(fileBuffer->Length);
|
|
Streams::DataReader::FromBuffer(fileBuffer)->ReadBytes(Platform::ArrayReference<byte>(returnBuffer.data(), fileBuffer->Length));
|
|
return returnBuffer;
|
|
});
|
|
}
|
|
|
|
// Converts a length in device-independent pixels (DIPs) to a length in physical pixels.
|
|
inline float ConvertDipsToPixels(float dips, float dpi)
|
|
{
|
|
static const float dipsPerInch = 96.0f;
|
|
return floorf(dips * dpi / dipsPerInch + 0.5f); // Round to nearest integer.
|
|
}
|
|
|
|
#if defined(_DEBUG)
|
|
// Check for SDK Layer support.
|
|
inline bool SdkLayersAvailable()
|
|
{
|
|
HRESULT hr = D3D11CreateDevice(
|
|
nullptr,
|
|
D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device.
|
|
0,
|
|
D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers.
|
|
nullptr, // Any feature level will do.
|
|
0,
|
|
D3D11_SDK_VERSION, // Always set this to D3D11_SDK_VERSION for Windows Store apps.
|
|
nullptr, // No need to keep the D3D device reference.
|
|
nullptr, // No need to know the feature level.
|
|
nullptr // No need to keep the D3D device context reference.
|
|
);
|
|
|
|
return SUCCEEDED(hr);
|
|
}
|
|
#endif
|
|
}
|