-DX 시스템 구조
일반적인 경우 : Win32 Application <-> GDI(Graphic Device Interface) <-> DDI(Device Driver Interface) <-> Graphics Hardware
다이렉트 X : Win32 Application <-> Direct3D API <-> HAL(Hardware Abstraction Layer) Device <-> DDI(Device Driver Interface) <-> Graphics Hardware
Win32 Application Flow
1. 윈도우 클래스 설정 : 배경색, 커서 등 윈도우 형태 지정 ┓CALLBACK() 함수 이름 결정
CALLBACK()함수 등록 ┃
2. 윈도우 클래스 등록 : Register()함수를 이용하여 등록 CALLBACK()함수-Message를 분석하여 처리
3. 화면 생성 : Create Window()함수를 이용하여 생성 ┃
4. 화면 출력 : ShowWindow()함수를 이용하여 출력 ┃
5. 메시지 루프 : 메시지를 받을 경우 CALLBACK()함수에게 전달 ┛Message가 있는 경우 Message 전달
1~5번 단계가 종료시 까지 계속 순환
DirectX API Structure
WIN32 APISystem > DirectX API System
------------------
한창 이론설명중....
이거 쉽게좀 풀이해주실분?ㄱ-
HEL 같은건 이제 손도 안대니까 요새는 hal/hel 구분도 안하겠네요.
그냥 유저는 윈도우 쓰는 pc에서 direct3d를 써서 비디오카드에 명령을 내리며 프로그램을 짜게 되는데, 그 중간에 끼는 direct3d가 어떤 비디오카드를 쓰든간에 유저는 d3d를 상대로 똑같은 방식으로 명령을 내릴 수 있다 라고만 생각하시면 됩니다.
다시 설명하자면, radeon을 쓰는거랑 geforce를 쓰는거랑 다른 방식을 써서 프로그래밍해야한다면 얼마나 귀찮겠습니까. 지포스랑 레디온 외에도 뭐 인텔 gma950도 있을거고 옛날에 블레이드3d, 부두 이런것들 각각 다 프로그램 짜는 방식이 다르면 졸라 골때립니다. 중간에 똑같은 형태로 프로그래밍 할 수 있도록 하나 찡겨넣은거라고 보면 됩니다.
그리고 1~5번 단계가 반복된다기 보다는, 일반적으로 5번만 반복된다고 보시면 됩니다.
말 그대로 윈도우 어떻게 생겼고, 어떤 버튼이 있고, 어떤 다이얼로그가 뜬다 등등을 셋팅한 뒤 화면에 표시해주는게 1~4인데요,
콜백은 요런 상황일 때 이 함수를 불러주삼 하고 등록해두는겁니다.
버튼이 눌렀을 때 어떻게 대처해라 빈칸에 숫자넣고 엔터치면 어디다 어떻게 해라 등등을 셋팅한 함수를 프로그램에 붙여주는 겁니다.
그리고 win32가 directx api 보다 크다 작다를 논할 수 있나요; ? 이건 좀 생각하기 묘한 문제인데요.