• 가상 소멸자는 구조체의 크기를 증가시킴

  • 내부 바이트 정렬 기준에 따라 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

+ Recent posts

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });