Files
XCEngine/BattleFireDirect.h

39 lines
1.7 KiB
C
Raw Normal View History

2026-03-11 17:38:11 +08:00
#pragma once
#include <d3d12.h>
#include <dxgi1_4.h>
#include <d3dcompiler.h>
#include <DirectXMath.h>
#include <stdio.h>
D3D12_RESOURCE_BARRIER InitResourceBarrier(
ID3D12Resource* inResource, D3D12_RESOURCE_STATES inPrevState,
D3D12_RESOURCE_STATES inNextState);
ID3D12RootSignature* InitRootSignature();
ID3D12RootSignature* InitVolumeRootSignature();
2026-03-11 17:38:11 +08:00
void CreateShaderFromFile(
LPCTSTR inShaderFilePath,
const char* inMainFunctionName,
const char* inTarget,//"vs_5_0","ps_5_0","vs_4_0"
D3D12_SHADER_BYTECODE* inShader);
ID3D12Resource* CreateConstantBufferObject(int inDataLen);
void UpdateConstantBuffer(ID3D12Resource* inCB, void* inData, int inDataLen);
ID3D12Resource* CreateBufferObject(ID3D12GraphicsCommandList* inCommandList,
void* inData, int inDataLen, D3D12_RESOURCE_STATES inFinalResourceState);
ID3D12PipelineState* CreatePSO(ID3D12RootSignature* inID3D12RootSignature,
D3D12_SHADER_BYTECODE inVertexShader, D3D12_SHADER_BYTECODE inPixelShader,
D3D12_SHADER_BYTECODE inGSShader);
ID3D12PipelineState* CreateVolumePSO(ID3D12RootSignature* inID3D12RootSignature,
D3D12_SHADER_BYTECODE inVertexShader, D3D12_SHADER_BYTECODE inPixelShader);
2026-03-11 17:38:11 +08:00
bool InitD3D12(HWND inHWND, int inWidth, int inHeight);
ID3D12GraphicsCommandList* GetCommandList();
ID3D12CommandAllocator* GetCommandAllocator();
void WaitForCompletionOfCommandList();
void EndCommandList();
void BeginRenderToSwapChain(ID3D12GraphicsCommandList* inCommandList);
void EndRenderToSwapChain(ID3D12GraphicsCommandList* inCommandList);
void SwapD3D12Buffers();
ID3D12Resource* CreateTexture2D(ID3D12GraphicsCommandList* inCommandList,
const void*inPixelData,int inDataSizeInBytes,int inWidth,int inHeight,
DXGI_FORMAT inFormat);
ID3D12Device* GetD3DDevice();