From 0b5491e0a2f1a9a4023e2c4eb171287bede41388 Mon Sep 17 00:00:00 2001 From: Marc Sunet Date: Fri, 21 Nov 2025 09:41:06 -0800 Subject: Switch to plain C --- dxg/include/dxg/dxcommon.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 dxg/include/dxg/dxcommon.h (limited to 'dxg/include') diff --git a/dxg/include/dxg/dxcommon.h b/dxg/include/dxg/dxcommon.h new file mode 100644 index 0000000..bfcdbe8 --- /dev/null +++ b/dxg/include/dxg/dxcommon.h @@ -0,0 +1,55 @@ +#pragma once + +#include +#include +#include + +#include +#include + +#define TRAP(ERROR) { \ + fprintf(stderr, "Error in file:[%s] line:%d: %s", __FILE__, __LINE__, ERROR);\ + assert(false);\ + __debugbreak();\ +} + +#define TRAP_HRESULT(RESULT) { \ + fprintf(stderr, "HRESULT: %u", RESULT);\ + TRAP("API call failed")\ +} + +#define TrapIfFailed(RESULT) {\ + if (RESULT != S_OK) {\ + TRAP_HRESULT(RESULT);\ + }\ +} + +#define SafeRelease(PTR) {\ + if (PTR) {\ + PTR->lpVtbl->Release(PTR);\ + PTR = 0;\ + }\ +} + +#define CD3DX12_CPU_DESCRIPTOR_HANDLE(HANDLE, INDEX, SIZE) \ + (D3D12_CPU_DESCRIPTOR_HANDLE){HANDLE.ptr + (INDEX * SIZE)} + +#define OFFSET_HANDLE(HANDLE, OFFSET, SIZE) \ + (D3D12_CPU_DESCRIPTOR_HANDLE){HANDLE.ptr + (OFFSET * SIZE)} + +static inline D3D12_RESOURCE_BARRIER CD3DX12_RESOURCE_BARRIER_Transition( + _In_ ID3D12Resource* pResource, + D3D12_RESOURCE_STATES stateBefore, + D3D12_RESOURCE_STATES stateAfter) { + return (D3D12_RESOURCE_BARRIER){ + .Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION, + .Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE, + .Transition.pResource = pResource, + .Transition.StateBefore = stateBefore, + .Transition.StateAfter = stateAfter, + .Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES}; +} + +typedef enum SampleMask { + PointSampling = 0xffffffff +} SampleMask; -- cgit v1.2.3