*
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#ifndef IConstantBuffer11_h__
|
||||
#define IConstantBuffer11_h__
|
||||
|
||||
#include "render/IConstantBuffer.h"
|
||||
|
||||
#include <d3d11.h>
|
||||
#include <dxgi.h>
|
||||
#include <d3dx11.h>
|
||||
#include "Globals.h"
|
||||
#include <log/CLog.h>
|
||||
|
||||
namespace LifeGraphics
|
||||
{
|
||||
class IConstantBuffer11 : public IConstantBuffer
|
||||
{
|
||||
public:
|
||||
ID3D11Buffer* buffer;
|
||||
ID3D11Device* device;
|
||||
ID3D11DeviceContext* context;
|
||||
int size;
|
||||
D3D11_MAPPED_SUBRESOURCE subresource;
|
||||
|
||||
IConstantBuffer11(ID3D11Device* _device, int _size)
|
||||
{
|
||||
if((_size % 0x10) !=0 )
|
||||
{
|
||||
LOG_ERROR("Buffer size must be multiple of 16", "IConstantBuffer11", "ctor()");
|
||||
return;
|
||||
}
|
||||
device = _device;
|
||||
size = _size;
|
||||
|
||||
D3D11_BUFFER_DESC desc = {0};
|
||||
desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
|
||||
desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
|
||||
desc.ByteWidth = _size;
|
||||
desc.Usage = D3D11_USAGE_DYNAMIC;
|
||||
|
||||
HRESULT hr = device->CreateBuffer(&desc,NULL, &buffer);
|
||||
|
||||
device->GetImmediateContext(&context);
|
||||
/*
|
||||
BufferDescription desc = new BufferDescription();
|
||||
desc.BindFlags = BindFlags.ConstantBuffer;
|
||||
desc.CpuAccessFlags = CpuAccessFlags.Write;
|
||||
desc.OptionFlags = ResourceOptionFlags.None;
|
||||
desc.SizeInBytes = size;
|
||||
desc.StructureByteStride = 0;
|
||||
desc.Usage = D3D11.ResourceUsage.Dynamic;
|
||||
|
||||
buffer = new D3D11.Buffer(device, desc);*/
|
||||
}
|
||||
~IConstantBuffer11()
|
||||
{
|
||||
SAFE_RELEASE(buffer);
|
||||
context = NULL;
|
||||
}
|
||||
void Update(void* pData, int dataLength);
|
||||
};
|
||||
}
|
||||
#endif // IConstantBuffer11_h__
|
||||
Reference in New Issue
Block a user