1 #include "..\include\raMain.h" 6 bool bAlpha,
bool bAdditive,
bool bDepthDisable, D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode)
7 :
raVisual(dx, bAlpha, bAdditive, bDepthDisable, fillMode, cullMode)
23 #pragma omp parallel for 31 #pragma omp parallel for 41 int numElementsGroup = numElements + 4;
43 D3D11_INPUT_ELEMENT_DESC* pLayoutGroupe =
new D3D11_INPUT_ELEMENT_DESC[numElementsGroup];
50 for(
int i = 0; i < numElementsGroup; i++)
52 pLayoutGroupe[i] = desc[i];
54 UINT AlignedByteOffset = 0;
55 for(
int i = numElements; i < numElementsGroup; i++)
57 pLayoutGroupe[i].SemanticName =
"mTransform";
58 pLayoutGroupe[i].SemanticIndex = i - numElements;
59 pLayoutGroupe[i].Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
60 pLayoutGroupe[i].InputSlot = 1;
61 pLayoutGroupe[i].AlignedByteOffset = AlignedByteOffset;
62 pLayoutGroupe[i].InputSlotClass = D3D11_INPUT_PER_INSTANCE_DATA;
63 pLayoutGroupe[i].InstanceDataStepRate = 1;
64 AlignedByteOffset += 16;
68 delete[] pLayoutGroupe;
69 RERROR(
"Beim Erstellen des VertexLayout");
72 delete[] pLayoutGroupe;
74 ROK(
"VertexLayout erstellt");
85 D3D11_BUFFER_DESC bufferDesc =
89 D3D11_BIND_VERTEX_BUFFER,
90 D3D11_CPU_ACCESS_WRITE,
95 D3D11_MAPPED_SUBRESOURCE MappedResource;
97 NULL, &MappedResource);
112 UINT Offsets[2] = {0,0};
116 ID3D11Buffer* pVB[2];
128 D3D11_PRIMITIVE_TOPOLOGY PrimType =
138 HRESULT hr = pTech->GetDesc(&techdesc);
145 for(UINT p = 0; p < techdesc.
Passes; p++)
184 D3D11_MAPPED_SUBRESOURCE MappedResource;
187 NULL, &MappedResource);
189 D3DXMATRIX* pMatrices = (D3DXMATRIX*)MappedResource.pData;
virtual ID3D11Buffer * GetIndexBuffer()=0
virtual void SetWorldMatrix(const raMatrix &value)
virtual raMaterial * GetMaterial(UINT n)
ID3D11Buffer * m_pInstanceData
raMatrix m_InstanceMatrices[MAX_INSTANCES]
RAPI raMatrix raGetRandMatrix(float scaleX, float scaleY, float scaleZ, float offsetY)
ID3D11DeviceContext * GetImmediateContext(void)
raMatrix raMatrixIdentity()
void UpdateInstanceMatrices()
virtual UINT GetNumSubsets()
virtual const D3D11_INPUT_ELEMENT_DESC * GetVertexLayout()=0
interface ID3DX11EffectTechnique ID3DX11EffectTechnique
void RAPI RERROR_DX11(raString x, HRESULT h)
virtual bool RenderMesh(LPCSTR techniqueName="")
ID3D11Device * GetDevice(void)
virtual D3D11_PRIMITIVE_TOPOLOGY GetPrimitiveTopology(UINT n)
int m_iNumInstancesToDraw
virtual raMatrix * GetWorldMatrix(void)
raMatrix * m_pInstanceList
ID3D11InputLayout * m_pVertexLayout
virtual ID3D11Buffer * GetVertexBuffer()=0
virtual void LoadInstanceData()
void RAPI ROK(raString x)
virtual SDKMESH_SUBSET * GetSubset(UINT n)
virtual UINT GetStrideSize()=0
virtual DXGI_FORMAT GetIndexBufferFormat()=0
void CreateRandomMatrices(float scaleX=1.0f, float scaleY=1.0f, float scaleZ=1.0f, float offsetY=0.0f)
virtual bool CreateVertexLayout()
virtual UINT GetNumElements()=0
UINT AddInstance(const raMatrix &world)
raSmartPointer< raDirectX > m_dx
void RAPI RERROR_OUTOFMEM()
void InitInstanceMatrices()
raGroup(raSmartPointer< raDirectX > dx, IRAMesh *pVisual, int numInstancesToDraw=0, bool bAlpha=false, bool bAdditive=false, bool bDepthDisable=false, D3D11_FILL_MODE fillMode=D3D11_FILL_SOLID, D3D11_CULL_MODE cullMode=D3D11_CULL_BACK)
ID3DX11EffectTechnique * GetEffectTechnique(LPCSTR techniqueName="")
void RAPI RERROR(raString x)