| 29 | } |
| 30 | |
| 31 | const D3D12_STATE_SUBOBJECT* StateObjectBuilder::AddSubObject(const void* subObjDesc, uint64 subObjDescSize, D3D12_STATE_SUBOBJECT_TYPE type) |
| 32 | { |
| 33 | Assert_(subObjDesc != nullptr); |
| 34 | Assert_(subObjDescSize > 0); |
| 35 | Assert_(type < D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID); |
| 36 | Assert_(subObjDescSize <= MaxSubObjDescSize); |
| 37 | Assert_(NumSubObjects < MaxSubObjects); |
| 38 | |
| 39 | const uint64 subObjOffset = NumSubObjects * MaxSubObjDescSize; |
| 40 | memcpy(SubObjectData.Data() + subObjOffset, subObjDesc, subObjDescSize); |
| 41 | |
| 42 | D3D12_STATE_SUBOBJECT& newSubObj = SubObjects[NumSubObjects]; |
| 43 | newSubObj.Type = type; |
| 44 | newSubObj.pDesc = SubObjectData.Data() + subObjOffset; |
| 45 | |
| 46 | NumSubObjects += 1; |
| 47 | |
| 48 | return &newSubObj; |
| 49 | } |
| 50 | |
| 51 | void StateObjectBuilder::BuildDesc(D3D12_STATE_OBJECT_TYPE type, D3D12_STATE_OBJECT_DESC& desc) |
| 52 | { |
no test coverage detected