버텍스 버퍼, 인덱스 버퍼와 동일한 과성으로 상수버퍼도 추가해주었다.
글이 나뉘는게 좀 불편하긴 한데, 글 제목이 너무 길어지는 것도 거슬려서 따로 작성하였다.
template <typename DataType>
void CreateConstantBuffer(DataType& _Data)
{
D3D11_BUFFER_DESC CBDesc;
CBDesc.ByteWidth = sizeof(DataType);
CBDesc.Usage = D3D11_USAGE_DYNAMIC;
CBDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
CBDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
CBDesc.MiscFlags = 0;
CBDesc.StructureByteStride = 0;
D3D11_SUBRESOURCE_DATA InitData;
InitData.pSysMem = &_Data;
InitData.SysMemPitch = 0;
InitData.SysMemSlicePitch = 0;
HRESULT Result =
EngineBase::GetInstance().GetDevice()->CreateBuffer(&CBDesc, &InitData, ConstantBuffer.GetAddressOf());
if (Result != S_OK)
{
std::cout << Name << " :" << "CreateConstantBuffer() failed." << std::hex << "\nResult : " << Result << std::endl;
};
}
동일한 방식에 옵션만 다르게 하여 상수버퍼도 만들어주었다.
상수버퍼는 일단 Transform에 대해서만 사용할 예정이지만, 추후 어떤 타입이 추가될지 알 수 없기 때문에
템플릿을 이용하여 여러 자료형에 대한 가능성을 열어놓은 채로 정의하였다.
일단 실행은 잘 되는데, 화면에 보이지를 않으니 제대로 되고 있는건지 잘 모르겠다.
빨리 쉐이더까지 추가를 해보아야 할 듯 하다.
'프로젝트 > Direct X 그래픽스' 카테고리의 다른 글
프로젝트 : DirectX를 활용한 그래픽스 (7 - 렌더링) (1) | 2024.05.02 |
---|---|
프로젝트 : DirectX를 활용한 그래픽스 (6 - 버텍스 쉐이더, 인풋 레이아웃, 픽셀 쉐이더) (1) | 2024.05.01 |
프로젝트 : DirectX를 활용한 그래픽스(4 - 릭 제거) (0) | 2024.05.01 |
프로젝트 : DirectX를 활용한 그래픽스 (3 - 버텍스 버퍼, 인덱스 버퍼) (0) | 2024.05.01 |
프로젝트 : DirectX를 활용한 그래픽스 (2 - 다이렉트X 초기화) (1) | 2024.04.30 |