가상 소멸자는 구조체의 크기를 증가시킴
내부 바이트 정렬 기준에 따라 padding 값이 추가 될 수 있음 (부모에 가상 소멸자일 떄와, 자식에만 가상 소멸자일 떄, 오프셋이 다른 이유)
padding추가는 자식의 가상소멸자에 의해 부모의 멤버가 밀릴 때는 발생하지 않음.
- 이미 부모 클래스 메모리 구조가 정렬규칙에 따라 배치되었기 때문
//입력 조립기에게 정점 버퍼의 구조를 알려주기 위한 구조체를 반환한다. D3D12_INPUT_LAYOUT_DESC CShader::CreateInputLayout() { UINT nInputElementDescs = 2; D3D12_INPUT_ELEMENT_DESC* pd3dInputElementDescs = new D3D12_INPUT_ELEMENT_DESC[nInputElementDescs]; // 가상소멸자에 의해 8바이트 뒤로 밀림 (64비트 기준) pd3dInputElementDescs[0] = { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 8, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }; // 자식만 가상 소멸자 pd3dInputElementDescs[1] = { "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 20, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }; // 부모에 가상 소멸자 pd3dInputElementDescs[1] = { "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 24, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }; D3D12_INPUT_LAYOUT_DESC d3dInputLayoutDesc; d3dInputLayoutDesc.pInputElementDescs = pd3dInputElementDescs; d3dInputLayoutDesc.NumElements = nInputElementDescs; return(d3dInputLayoutDesc); }
'프레임워크 > DirectX' 카테고리의 다른 글
| 그리기_연산02 (2) | 2025.04.14 |
|---|---|
| 06.그리기_연산01_2 (7) | 2025.04.08 |
| 06.그리기_연산01_1 (0) | 2025.04.05 |
| 06.그리기_연산01 (0) | 2025.03.25 |
| 05. 렌더링파이프 개념문제 개인제작 (1) | 2025.03.15 |