1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "framework.h"
ID3D11Buffer* ObStar::fillVertexBuffer = nullptr;
ID3D11Buffer* ObStar::vertexBuffer = nullptr;
 
void ObStar::CreateStaticMember()
{
    VertexPC* Vertex;
    Vertex = new VertexPC[5 * 3];
 
    for (UINT i = 0; i < 5; i++)
    {
        Vertex[i * 3].position.x = 0.0f;
        Vertex[i * 3].position.y = 0.0f;
        Vertex[i * 3].color = Color(1.0f, 1.0f, 1.0f, 1.0f);
 
        Vertex[i * 3 + 1].position.x = cosf(i * 144 * ToRadian) * 0.5f;
        Vertex[i * 3 + 1].position.y = sinf(i * 144 * ToRadian) * 0.5f;
        Vertex[i * 3 + 1].color = Color(0.0f, 0.0f, 0.0f, 1.0f);
 
        Vertex[i * 3 + 2].position.x = cosf((i + 1* 144 * ToRadian) * 0.5f;
        Vertex[i * 3 + 2].position.y = sinf((i + 1* 144 * ToRadian) * 0.5f;
        Vertex[i * 3 + 2].color = Color(0.0f, 0.0f, 0.0f, 1.0f);     
    }
 
    //정점들이 버퍼로 옮겨지는 코드
    //익명 스코프
    {
        D3D11_BUFFER_DESC desc;
        desc = { 0 }; //멤버변수 전부 0으로
        desc.Usage = D3D11_USAGE_DEFAULT;//버퍼를 읽고 쓰는 방법
        desc.ByteWidth = sizeof(VertexPC) * 360 * 3//버퍼 크기 (바이트)입니다.
        desc.BindFlags = D3D11_BIND_VERTEX_BUFFER;//버퍼가 파이프 라인에 바인딩되는 방법을 식별하십시오
 
        D3D11_SUBRESOURCE_DATA data = { 0 };
        //하위 리소스를 초기화하기위한 데이터를 지정합니다.
        data.pSysMem = Vertex;
        //초기화 데이터의 포인터.
 
        //버퍼 만들기
        //                                           서술    원본       복사대상   
        HRESULT hr = D3D->GetDevice()->CreateBuffer(&desc, &data, &fillVertexBuffer);
        assert(SUCCEEDED(hr));
 
    }
 
    delete[] Vertex;
 
    Vertex = new VertexPC[6];
 
    ...
}
 
 
cs

 

'⭐ DirectX > DirectX11 2D + WinAPI' 카테고리의 다른 글

[DX11] D3D11 TEXTURE ADDRESS  (0) 2022.09.13
[DirectX11] 렌더링 파이프라인  (0) 2022.08.11
[WinAPI] 포물선 충돌 및 마찰계수 설정  (0) 2022.08.11
[WinAPI] 충돌  (0) 2022.08.10
[WinAPI] 마우스 회전  (0) 2022.08.09