win16 - windows3.1 c언어(계속)
win32 - windows 95
win32s - 마이너 업그레이드
win32 for 64 가상레이어(32비트 앱이 64비트 운영체제에서 돌아감)
단점 : C언어라서 외관을 꾸미기 힘듬
WindowsAPI-> C++버전
스마트포인터, 윈도우 에디터, ...
구조가 안좋아 마이크로소프트가 MFC쓰지말고 visual basic쓰라고함
2014 사후지원 중단
사내 프로그래머가 만든 대체제->공개됨
.NET(자바 유사버전)
MFC대체제로 밀어준 API
하드웨어 가속 지원이 안됨
2014 사후지원 중단
하드웨어 가속이 탑재된 윈도우 API -> 안씀
윈도우 폰과함께 사장
윈도우 10과 함께
PC,모바일(테블릿),XBOX통합
강제(윈도우 스토어에 등록하려면 반드시 UWP로 만들어야 함)
다시 Windows API로 사용하게됨
_In_ :입력
_Out_ : 출력
void f(_In_ x)
{
}
void f(int x)
{
}
int main()
{
f(3):
}
__fastcall:함수의 매개변수를 레지스터에(가장빠른)어떻게 넘길것인지?
__stdcall : 일반적인 것
DX9 : 2002~2011
DX11 : WIN7, 초보자, 인디 개발자
DX12 : WIN10, 그래픽 전문가 보유 팀
COM(Component Object Model)
- 인터페이스(순수가상함수의 추상클래스)로 실행 → 클래스
- 접두어 : ID2ID1Factory~
- C++ 객체와 같은 방식 (new/delete) 불가능→도우미 함수 사용 필요
- 동적으로 관리됨으로 포인터임
- 모든 함수들이 HRESULT를 반환
Wrapper Class : 복잡한 기능의 클래스 캡슐화 (framework와 유사)
Library : 선언을 담은 헤더와 컴파일된 정의 파일 (범용적으로 쓰이는 약속의 집합)
API : 선언과 헤더를 제공하고 정의도 제공함(앱 개발을 위한 운영체제의 약속)
SDK : API의 기능과 유틸리티의 도구모음
FrameWork : 틀을 찍어 내기 편하게 파일포멧, 지원 파일 종류,컴파일 종류 등의 규정
Device Independent Resource(장치 독립적 리소스) : CPU, MEMORY
Device Dependent Resource(장치 의존적 리소스) : GPU V-RAM,하드웨어 가속(빠르고 제어 불가능)
Device Lost : device갱신
그래픽카드 드라이버 업데이트
cpu 내장 그래픽카드 vs GPU 스위칭
그래픽카드 물리적 원인
그래픽카드 응답없음
Device Restore : 리셋(처음상태)의 의미
device dependent resource 다시 생성
GDI (Graphics Device Interface)
winG - windows for game => 폐기
WIC - windows imaging component
COM 모델
BMP,GIF,ICO,JPG,PNG,TIFF,mediaphoto(live photo).DDS(directX용 이미지 : directdraw surface),decoder,encoder
DirectX : 직접 GPU나 VRAM에 접근, 하드웨어 가속
GDI+ : GDI+CPP (하드웨어 가속 일부) => 사장되어 Direct2D 포함
OpenGL : 토이스토리 Shader
GDI : WISWIG