
다이렉트 X는 정말 어렵다. 배우고는 싶었는데 개인포폴이랑 자료구조 공부랑 병행 할 엄두가 안났다. 당장 필요한것도 아니고 나중에 공부하자 생각해서 카테고리도 숨겨놨었는데 수업을 듣다보니 좀 욕심이 생겨서 제대로 좀 해보려고 한다. 몇 개월 전부터 렌더링 파이프라인이라는 단어는 수도없이 듣고 시험도 봤지만 머리속에 잘 들어오지 않았다. 하지만 다이렉트X 수업을 들을때 렌더링 파이프라인에 대한 이해가 없으면 많이 힘들거같아서 혼자 유튜브로 공부를 좀 했다. 그 내용을 조금 정리하려고 한다. 렌더링 파이프라인 이란? 우리가 '파이프라인' 이라는 단어를 떠올린다면 이런 파이프라인이 떠오를것이다. 렌더링 파이프라인 이라는것은 우리가 렌더링 정보들을 GPU에 주입시켜서 우리가 보는 화면에 출력해주기 까지의 과정을..

드디어 다이렉트X를 시작했다. 처음 세팅하는게 좀 복잡했는데 코드가 이해 안가는건 어쩔수 없는거지만 세팅이 안되면 코딩도 할 수 없으니 문제였다. 30명에 가까운 학생들을 한명한명 다 봐주다보니 진행속도가 너무 더뎠다. 그래도 내일부턴 괜찮아질거 같다. 다이렉트X 와 openGL openGL 3D 그래픽 카드가 출시 되고 이에 맞춰 하드웨어와 소프트웨어가 발전해왔다. 하지만 당시 하드웨어 규격이 제대로 잡혀있지 않았고, 이 하드웨어를 돌리려면 OS에서 지원을 해주어야 하는데 소프트웨어도 기준이 제대로 잡혀있지 않았다. 이 발전해가는 3D그래픽카드를 사용할 수 있는 api가 필요했는데, 그래픽카드회사에서 직접 제공하는 api는 수준이 낮았다. 그래서 openGL이 나왔다. 기반은 유닉스였으며 이름 그대로 ..

WINAPI의 마지막이다. 다음 수업부터는 DirectX에 들어간다. 그림을 그리는 과정이 이해가 안돼서 개념정리를 살짝 하고 가려고 한다. 2.2 그리기 예 [Windows API] (ehclub.co.kr) 이 블로그의 자료들을 참고 했다. 이 블로그 주인분은 아래와 같은 글을 쓰셨다. 지금에 와서 Windows API를 학습하는 이유는 윈도우즈 프로그램이 어떠한 원리로 동작하는지 이해하기 위한 부분이 실제 프로그래밍에 사용하기 위한 것보다 많다고 볼 수 있습니다. 이미 MFC나 Windosw Form, WPF 등의 보다 강력하고 개발 비용이 적게 드는 기술들이 많기 때문에 실제 Windows API를 이용하여 윈도우즈 프로그래밍을 주로 할 일은 많지 않습니다. 나도 윈도우즈 프로그램을 만들어보고 싶..

라디오버튼 만들기 #define ID_BUTTON1 100 #define ID_RADIO1 101 #define ID_RADIO2 102 #define ID_RADIO3 103 #define ID_RADIO4 104 #define ID_RADIO5 105 #define ID_RADIO6 106 HINSTANCE g_Inst; LRESULT CALLBACK MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { //윈도우 창이 생성될때 메세지 case WM_CREATE: //프로그램 이름, 버튼 이름, 스타일 (자식형태|or연산으로 합침) CreateWindow(L"button", L"Test", WS_CHIL..

그림판 기능 구현 #include #include #include //포인트를 저장하는 리스트 변수 std::list Pointlist; //메세지 프로시저가 이 함수를 호춣함 LRESULT CALLBACK MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { //그림그리는 구조체 PAINTSTRUCT ps; //그림 그리는 핸들러 HDC hdc; switch (uMsg) { //마우스가 움직일때마다 발생하는 메세지 case WM_MOUSEMOVE: if (wParam == MK_LBUTTON) { Pointlist.push_back({ LOWORD(lParam), HIWORD(lParam) }); InvalidateRect(hWnd,..

이해가 안가는 것들이 많아서 추가로 개념을 정리하고 가려고 한다. RegisterClass – 언제나 휴일 (ehpub.co.kr) 이곳에 정리가 잘 되어있어서 자료를 가져왔다. 윈도우즈 프로그램의 기본 흐름 1. 아까 입력했던것 처럼 WNDCLASS로 윈도우 프로그램을 다 설정해준다. 2. RegisterClass를 통해 윈도우 클래스를 등록한다. 3. CreateWindow를 통해 인스턴스를 생성한다. 4. ShowWindow를 통해 만든 인스턴스를 시각화하고 5. 메시지를 루프시킨다. RegisterClass ATOM WINAPI RegisterClass(WNDCLASS *lpWndClass); 이 함수의 원형을 찾아가보면 WNDCLASS형 포인터 변수를 매개변수로 입력해줘야 한다. Register..