HoloLens 개발 메모 #2

Holographic API는 RenderTexture Array를 이용해서 해서 양쪽 눈 각각에 대해 렌더링을 수행한다. 이게 분명히 성능상 이득이 있다. 문제는 이렇게 만들려니 기존 코드를 와장창 갈아엎어야한다. 일단 Holograhic 디바이스에서 사용하는지 아닌지 여부에 따라 shader코드와 렌더링 코드가 달라져야 한다. 기본적으로 HoloLens디바이스는 DX11.3을 준수하므로 Shader의 모든 스테이지에서 SV_RenderTargetArrayIndex를 지정할 수 있다. 하지만 에뮬레이터의 경우 에뮬레이터를 실행하는 PC의 GPU가 스펙을 … More HoloLens 개발 메모 #2

최근3년간 만든것들. 생각나는대로 정리해봄.

최근3년간 만든것들. 생각나는대로 정리해봄. 내가 하는 짓이 얼마나 마이너한 짓인지 확인하고 싶어서 적어봄. CUDA 응용 (Processing collision in Game, Baking Light-map, etc…) – nvidia CUDA SDK + C++ https://doc.co/xKcRcB OneDrivePlayerW81 (OneDrive의 음악파일들의 재생목록 생성/저장/플레이, 백그라운드로 재생목록의 곡들을 다운로드해서 곡 넘어갈때 끊김없이 플레이해줌.) – for Windows 8.1 WinRT: WinRT API + CPP RESET SDK + C++/CX … More 최근3년간 만든것들. 생각나는대로 정리해봄.

I created a library that controls the Surface Dial in C ++.

I created a library that controls the Surface Dial in C ++. It supports both Desktop App and UWP App. https://github.com/megayuchi/RadialController Of course, I know that few people develop UWP apps in C ++. I would like to help people who develop both UWP and Desktop apps in C ++ like me. The library for … More I created a library that controls the Surface Dial in C ++.

C++/CX 와 C++/WinRT 같은 프로젝트에서 사용하기

C++/WinRT에 꽤 흥미를 느껴서 점진적으로 C++/CX로 작성한 UWP앱 프로젝트들을 C++/WinRT로 바꿔가기로 마음 먹었다. 그 전에 한가지 해결하고 가야하는데 C++/WinRT프로젝트에서 XAML Designer를 사용할 방법을 찾는것. C++/CX프로젝트(/ZW스위치 on)에서는 Visual Studio의 XAML Designer에서 XAML코드를 생성하면 정적으로 바인딩할 수 있는 추가의 코드를 생성해준다. 물론 C++/WinRT과는 전혀 호환이 되지 않는다. 단독으로 C++/WinRT만 사용할 경우 XAML Designer는 전혀 사용할 수 없다. … More C++/CX 와 C++/WinRT 같은 프로젝트에서 사용하기

WinRT, C++/CX , WRL

먼저 WinRT에 대해서 얘기해보자. Windows 8시절부터 Store App을 개발하던 프로그래머가 아니라면 좀 생소할 수도 있는데 Windows Runtime의 약자이고 Store App을 위한 새로운 Windows API이다. 공식적으로 소비자 대상으론 WinRT란 표현은 거의 쓰지 않는다. 하지만 API이름이 Windows Runtime이고 실제 개발을 하다보면 WinRT란 이름이 엄청나게 많이 나온다. Windows 8.x가 망한 탓에 Windows 10에선 WinRT란 표현을 쓰고 싶어하지 않는것 … More WinRT, C++/CX , WRL

UWP + C++/CX 로 OneDrive앱 개발하기

그저 내가 개발중인 게임과 툴에서 OneDrive에 억세스 하고 싶었다. C++에서 C#코드를 부를 생각은 없었다. 네이티브 C++로 하고 싶었다. 예전에 Casablanca(C++ Rest SDK)를 사용해서 OneDrivePlayerW81이란 앱을 만든 적이 있다. 그때 Casablanca 쓰면서 엄청 짜증났던 기억이 있다. 그래서 이번엔 Casablanca를 쓰지 않고 UWP API와 C++/CX로 구현할 생각이다. 일단 UWP 앱이지만 데스크탑앱에서도 UWP의 HttpClient를 사용할 수 있으므로 추후 … More UWP + C++/CX 로 OneDrive앱 개발하기

GetTickCount() -> GetTickCount64()로 변경하기.

1. Redstone에선 UWP에서 IOCP를 쓸 수 있다. 그래서 개발중인 프로젝트의 UWP버전에서 StreamSocket을 사용한 네트워크코드를 걷어내고 IOCP기반의 win32코드로 교체하기로 결정. 2. 코드 고치다보니 GetTickCount()가 거슬림. PC가 부팅되고 최대 47일밖에 보장이 안되는 카운터라 안그래도 계속 바꾸려고 생각하고 있었음. 좋다. GetTickCount64()로 바꾸자. 3. 이게 조심해서 고쳐야 하는게  4바이트에서 8바이트로 사이즈가 증가하는거라 메모리 옵셋으로 다루는 부분이 있는지 확인하고 언더플로우나 … More GetTickCount() -> GetTickCount64()로 변경하기.

Windows 10 Redstone의 UWP에서 IOCP사용 가능.

예전에도 언급했지만 Windows 10 Redstone에선 UWP에서도 IOCP사용가능하다. 예전에 만들었던 IOCP 네트워크 라이브러리를 UWP로 포팅완료했다. 잘 작동한다. 수정한 코드는 클라이언트에서 사용시 소켓이벤트를 통보하기 위한 HWND와 PostMessage()를 CoreDispatcher와 람다함수로 바꾼것 뿐. 스레드와 winsock코드는 한줄도 안고치고 빌드 성공. 이제 UWP로 서버도 만들 수 있다.… 만세~

Game Dev – XBOX ONE(UWP버전)과 PC의 네트워크 플레이

이전에도 계속 포스팅했다시피 난 이 게임(데모)를 Windows Store를 통해 공개할 생각이다. 따라서 엔진을 개발할때부터 UWP버전을 같이 작업해왔다. 그리고 가능하면 XBOX ONE과 Windows 10 Phone에서도 동일한 게임을 플레이하게 하려고 나름 노력하고 있다. 몇 개월전 MS는 하나의 Store를 강조하며 XBOX ONE에서 UWP App을 돌릴 수 있게 하겠다고 발표했다. 얼마 지나지 않아서 프리뷰지만 XBOX ONE에서 UWP App을 돌릴 … More Game Dev – XBOX ONE(UWP버전)과 PC의 네트워크 플레이

모바일 GPU 관련 오늘의 교훈.

모바일 GPU(Adreno 430)에서 Compute Shader를 호출할때 Group 개수를 0으로 세팅하면 GPU 익셉션 발생. 그 여파로 DirectX Device를 더 이상 사용할 수 없게 된다.(Error:D3DDevice removed). 이건 퀄컴 GPU만의 문제일것도 아닐것이고 DirectX만의 문제도 아닐것이다. 비슷한 케이스의 문제라면 모든 모바일 GPU가 해당되리라 예상한다. Group 개수를 0으로 해서 호출하는건 바보짓이지만 그렇다고 GPU에서 익셉션을 발생시킬 정도의 치명적인 에러는 아니라고 생각하는데. … More 모바일 GPU 관련 오늘의 교훈.