pragma pack()실수 찾기 – pragma pack(show)

오늘의 개삽질. VOXEL HORIZON프로젝트의 UWP버전을 빌드하던중 다음의 에러를 마주쳤다. error C3621: ‘Windows::Foundation::EventHandler<Windows::ApplicationModel::Core::UnhandledErrorDetectedEventArgs ^>::__abi_IDelegate’: only the default packing value (16) is allowed for WinRT types 에러 내용을 액면 그대로 해석하자면 WinRT타입 개체들(ref class)는 기본 팩킹 사이즈가 16bytes만 허용된다고. 처음엔 되게 황당했다. 이게 뭔 소리여? struct align이라고 표시해줬으면 좀더 빨리 눈치챘을텐데. 하여간 WinRT타입 개체들은 struct align이 x64일 … More pragma pack()실수 찾기 – pragma pack(show)

D = A()->B()->C(); 이게 뭔 ㅈ ㄹ 이고?

변수명이야 종교와 문화라고 생각하면 넘어갈 수 있다. 아래처럼 함수의 리턴값을 막바로 caller로 사용하는건 이해할 수 없다. A) width = pObjManager->GetInstance()->CalcRect()->GetWidth();   난 무조건 다음과 같이 짜는데 이유가 디버깅 때문이다. B) pInstance = pObjManager->GetInstance(); pRect = pInstnace->CalcRect(); width = pRect->GetWidth();   A) 처럼 짜면 짤때야 편하겠지. 타이핑을 몇 자라도 줄일테니까. 근데 디버깅할때, 특히 코드 분석하려고 디버거로 … More D = A()->B()->C(); 이게 뭔 ㅈ ㄹ 이고?

GPU를 이용한 PVS계산

[데모 설명] 카메라가 위치한 방에서 버튼을 눌러서 PvS를 계산한다. 이후 이 방으로부터 볼 수 있는 공간들은 노란색 와이어프레임으로 표시된다. 1. 월드 공간을 KD-Tree로 분할. 2. 삼각형과 교차하지 않는 공간이 leaf가 된다. 또는 특정 사이즈 이하로 공간이 작아지면 leaf가 된다. 3. leaf가 삼각형과 교차하는 경우 서브 트리로 분할. 서브트리에서 다시 삼각형과 교차하지 않는 leaf의 AABB만 수집 … More GPU를 이용한 PVS계산

Surface Pro X benchmark from the programmer’s point of view.

Windows on ARM I love Windows. Of course, I don’t have much attachment to Windows 3.1 and 95, but I really love Windows after the NT kernel. I also like Windows programming. Windows programming with Visual Studio is fun. So I was very excited when I heard about NT kernel-based Windows running on a CPU … More Surface Pro X benchmark from the programmer’s point of view.

프로그래머 관점에서의 Surface Pro X 벤치마크

Windows on ARM 나는 Windows를 사랑한다. 정말로 사랑한다. 물론 Windows 3.1과 95에 대한 애착은 크지 않지만 NT커널 이후의 Windows는 정말 사랑한다. 또한 Windows 프로그래밍을 좋아한다. Visual Studio로 Windows프로그래밍을 하는 것은 즐겁다. 그래서 x86이외의 CPU에서 돌아가는 NT커널 기반의 Windows의 소식을 들었을때 무척 흥분했다. Visual Studio로 ARM디바이스에서 돌아가는 Windows 어플리케이션을 개발할 수 있다니! 물론 초기 Windows Phone … More 프로그래머 관점에서의 Surface Pro X 벤치마크

nvapi에서 NvAPI_GetMemoryInfo()주소 얻어오기 – (어셈블리어 학습해야하나요?)

Voxel Horizon은 NVAPI를 사용한다. NVAPI는 GPU의 상태를 확인하거나 일부 기능을 제어할 수 있는 nvidia 그래픽 드라이버에서 제공하는 API이다. NVAPI SDK는 nvidia 개발자 홈페이지에서 다운로드할 수 있다. C스타일의 .h / .lib / .dll로 구성된 아주 간단한 SDK다. 이걸로 게임 플레이중 GPU점유율과 GPU온도, 남은 GPU메모리의 양을 확인한다. 물론 일반 유저들을 위한 기능은 아니고 개발할때 필요한 디버깅용 기능으로 … More nvapi에서 NvAPI_GetMemoryInfo()주소 얻어오기 – (어셈블리어 학습해야하나요?)