WINDOWS 4

윈도우 핸들 (Windows Handle Object)

핸들이란 무엇일까? 우리가 흔히 핸들이라고 하면 자동차의 핸들을 떠올리기 마련이다.자동차 바퀴의 방향을 제어하기 위해 이 핸들을 사용하게 된다. 갖다 붙이기 나름이지만,윈도우의 핸들이 바로 이 자동차의 핸들과 유사하다. 좌회전을 한다고 가정하면운전자는 바퀴를 움직이다가 직접 손으로 바퀴를 돌리지 않고핸들이라는 조향 장치를 이용해 간접적으로 바퀴의 방향을 제어하게 된다. 마찬가지로 윈도우의 핸들도커널 오브젝트(혹은 GDI, 사용자 오브젝트)를 사용하기 위해필요한 하나의 장치라고 보면 된다. 프로세스가 초기화되면 운영체제는프로세스가 커널 오브젝트를 사용할 수 있게 하려고핸들 테이블을 할당하게 된다.(GDI, User 오브젝트는 핸들 테이블을 할당하지 않는다.고유 핸들 값만 받아서 바로 사용한다.) 핸들 테이..

WINDOWS 2024.05.24

HLSL 의 개요

왜 HLSL를 배우는가? 이유는 유니티 홈페이지를 구경하다가 해당 구문을 찾았다. 유니티는 왜 HLSL을 쓸까? 고민했는데 간단하다. DX를 쓰니, HLSL로 셰이더를 짠 것이다. 그럼 만약 회사에 들어가서 그래픽스에 관련된 작업을 해야할 때, HLSL을 써야할 일이 생길 수도 있다는 생각이 들었고, 게임업계 관련 채용 공고를 찾아보니 HLSL을 사용한다고 써져있었기에 배운다. 본론 게임 개발자가 되기 위해서는 특화된 여러가지 기술을 요한다. 대규모 멀티 프로그래밍, 그래픽 API, Direct3D는 렌더링 파이프라인을 사용하여 기본 요소를 그리거나 컴퓨팅 셰이더를 사용하여 병렬 작업을 수행하기 위한 하위 수준 API이다. Direct3D 12 API를 사용하려면 D3d12.h를 포함하고, D3d12.l..

WIN API (1)

WIN API int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { MyRegisterClass(hInstance); WIN API에서 _IN_ 은 필수적으로 필요로 하는 매개변수로, _IN_은 우리가 수정할 수 없는 매개변수로 0값을 절대적으로 들어오지 못하게 만든다. 만약 0값이 들어오게 되면 프로그램은 폭파된다. hlnstance = 게임의 주소값이 들어가는 자리이다. nCmdShow = 작업 관리자나 아래에는 창이 들어와있지만 보여주지 않을 것이냐 보여줄 것이냐 하는 역할을 담당한다. MyRegisterClass(hlnstanc..

WINDOWS 2023.02.13