[c#] directX 연동 및 툴 만들기 - 1
안녕하세요. 그 동안 시험이랑 회사일이 많아 포스팅이 뜸했습니다.
오늘 포스팅 할것은 C# Form에서 DirectX연동할건데요.
여러 기능도 추가하고 꾸준히 올리도록 노력하겠습니다.
1. 먼저 파일 - 새로만들기 - 프로젝트를 눌러줍니다.
2. Visual C# - Windows Form응용프로그램을 누르고 이름과 경로는 원하는 것으로 만들어줍니다.
3. 확인을 누르면 아래와 같이 Form1이라는 창이 나타납니다. 왼쪽 .cs들은 c++에서 .cpp와 .h와 같은 것이라고 보면 됩니다.
4. 먼저 DirectX를 쓰기 위해서 c++에서는 lib와 include를 해주었는데 c#에서는 왼쪽메뉴 중에 참조 - 참조추가를 해주어야됩니다.
5. 잉? .NET, .COM, 프로젝트 등등을 찾아봐도 DirectX가 안보이네요? DirectX는 직접 찾아가서 추가해줘야 되는데요.
찾아보기를 눌러준 후 아래 경로에서 3개의 dll들을 추가해줍니다.
C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.dll
C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3D.dll
C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3DX.dll
6. 자 이제 빌드를 해봅시다~ 했는데 빌드가 안됨....
대체 왜 안되는거야!(야채 안 머겅!)
7. 버전이 안 맞아서 생기는 문제라고 하는데요~ 아래와 같이 하면 됩니다.
프로젝트 마우스 오른쪽 버튼을 누르고 추가 - 새항목을 눌러줍니다.
8. 응용 프로그램 구성 파일을 누르고 .config파일을 하나 만들어주는데요.
이름은 App으로 했습니다.
9. 해당 config에 아래와 같이 적고 빌드해주면 됩니다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy ="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
10. 빌드가 되었으니 이제 폼 설정을 한건데요. 보통 Init()->Update()->Render() 이 순서로 계속 돌지요?
넵 그렇습니다~ 초기화를 먼저 해주겠습니다.
먼저 "폼을 클릭"해주시고 "마우스 오른쪽 버튼"을 누르고 "속성"에 들어갑니다.
<- 마우스 오른쪽 클릭
<-속성 선택
11. 속성에 들어가면 "AZ아래로 된 버튼"과 "해리포터번개 버튼"을 누르면 해당 폼에 대한
이벤트 함수들이 쭉 정렬되는데요. Load 누르고 옆에 함수이름을 원하는데로 정하면 함수가 생깁니다.
이 함수가 로드할 때 불리는 이벤트 함수입니다.
12. 해당 함수내에서 초기화를 시켜줍니다.
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
먼저 헤더쪽에 위 두개를 using해주고
디바이스 변수 선언.
main_load함수 내 디바이스 설정 및 생성
여기서 중요한것
device = new Device(0, DeviceType.Hardware, _renderWindows, CreateFlags.SoftwareVertexProcessing, pp);
에서 _renderWindows는 아래 11번부터 생성할 pannel입니다.
(저 같은 경우는 디바이스 클래스를 생성해서 pannel의 이름을 인자값으로 넘겨서 _renderWindows의 이름으로 받았습니다.)
this.MainPannel == _renderWindows
<- 같음
13. 준비가 됐으니 화면에 나타낼 패널이 필요한데요.
도구상자 - panel을 누르고 폼 위에 원하는 곳에 배치합니다.
아래로 가면 panel이 있음 누르고 폼 위에 배치하면 됨.
14. 아까와 마찬가지로 이번에는 패널창을 누르고 - 마우스오른쪽 버튼 - 속성
15. 해당 컨트롤(panel) 누르고 오른쪽버튼 - 속성에 보면 Paint라는 부분이 보입니다. 이 부분에 c++에서 했던 begin() end()등을 넣어 그릴것입니다.
this.MainPannel == _renderWindows
16. 위에서 만든 함수 안에 아래와 같이 적어줍니다.
완성~
'Programming > DirectX' 카테고리의 다른 글
[c#] directX 연동 및 툴 만들기 - 3 (3) | 2018.01.02 |
---|---|
[c#] directX 연동 및 툴 만들기 - 2 (1) | 2017.12.26 |
DirectX7 Blt함수 (0) | 2016.11.09 |
게임 벡터, 벡터 덧셈, 뺄셈, 크기, 단위 벡터 (0) | 2016.11.02 |
랜더링파이프라인의 정의 (0) | 2016.10.31 |