목록Season 1/Misc (8)
Graphics Programming
베이스가 되는 Packet 클래스가 있고, 이를 상속한 PacketA, PacketB, PacketC 클래스가 있다. 그리고 각 패킷 클래스에 대응하는 enum이 있다. // packet.henum class PacketType : uint16_t {PACKET_A = 0,PACKET_B = 1,PACKET_C = 2,NUM_PACKETS = 3} struct Packet {Packet(PacketType type);PacketType type;}; struct PacketA : Packet {PacketA();}; struct PacketB : Packet {PacketB();}; struct PacketC : Packet {PacketC();}; // packet.cpp Packet::Packet(P..
로그를 찍을 때 작업의 디테일한 정도나 호출 순서를 알아보기 쉽게 하려고 들여쓰기를 쓰는 경우가 있다. 단순한 상황으로 함수 A 안에서 함수 B를 호출할 때, 콘솔에 A를 쓰고 들여쓰기한 다음 B를 쓴다고 치자. #include void A() { std::cout
[MSDN] Thread Pools: https://msdn.microsoft.com/en-us/library/windows/desktop/ms686760(v=vs.85).aspx 쓰레드를 직접 생성하고 관리하는 것이 아니라 워크 오브젝트를 쓰레드 풀에 제출한다. 쓰레드를 생성할 때 콜백 함수와 콜백 함수가 받을 인자를 지정하는데, 워크 오브젝트도 마찬가지다. 쓰레드 풀은 윈도우즈 커널이 알아서 관리하며, 제출된 워크 오브젝트들을 적절히 스케줄링하여 처리한다. // 의 예제 코드를 조금 수정한 것 #include #include #include #include /* 1. Invoke InitializeThreadpoolEnvironment().2. Create work objects.3. Invoke S..
크로스 플랫폼 환경에서 작업하거나 극단적인 리눅스 진영 사람들을 많이 접하면 표준은 무조건 지켜야만 하며, 네이티브 코드가 죄악이라는 세뇌를 점차 당한다. 하지만 목적에 따라 어느 API를 쓸지 신중하게 결정해야 한다. C++로 작성되었고 윈도우즈에서만 돌아가는 게임을 예로 들어보자. 무언가 새 기능을 구현해야 하는데 파일시스템 API가 필요하다. 선택지가 적어도 4가지가 있다. 1. 게임 엔진의 파일시스템 모듈게임 엔진에는 대개 파일 I/O를 래핑한 모듈 혹은 서브시스템이 들어있다. 이 경우는 C++로 작성했으니 C 런타임 라이브러리 또는 C++ STL을 래핑했을 것이고, 사용법도 비슷할 것이다. 2. C 런타임 라이브러리 (CRT)게임 엔진이나 네이티브 API에 대한 사전지식이 필요 없고 STL보다 ..
Visual Studio .NET 2003, 그러니까 버전 넘버로 따지면 v7.1에서 작성된 비주얼 스튜디오 솔루션을 Visual Studio 2013에서 빌드를 시도해봤다. 무려 10년도 더 된 프로젝트다. 예상대로 수백개의 오류와 에러 메시지가 떴다. Deprecated되었습니다이걸 언제 일일이 고쳐... -_-_CRT_SECURE_NO_WARNINGS와 _CRT_NONSTDC_NO_DEPRECATE를 전처리 옵션에 넣어서 통과. 더 이상 지원하지 않는 라이브러리입니다MFC 멀티바이트는 더 이상 지원되지 않으니 유니코드를 써야 한단다.그냥 마이크로소프트 사이트에서 MFC 멀티바이트 라이브러리를 설치해서 해결. WINVER가 낮으시네요MFC가 이번에는 윈도우즈 버전을 가지고 불평을 한다. 윈도우즈 10..
원문: GPU Gems 2: Chapter 8. Per-Pixel Displacement Mapping with Distance Functions 주소: https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter08.html 용어 번역 distance function: 거리 함수 displacement mapping: 변위 매핑 ray tracing: 광선 추적 surface: 표면 implicit function: 음함수 mapping: 매핑(사상) fragment shader: 조각 셰이더 William Donnelly University of Waterloo 이번 장에서는 물체에 소규모 변위 매핑을 적용하기 위한, 거리 매핑이라는 픽셀 셰이더 기..
주소 http://jsfiddle.net/codeonwort/v4LEc/ 카오스(http://www.yes24.com/24/goods/8949034)를 읽고 jsfiddle에서 만들었다. 누른 곳 기준으로 확대하게 만들었는데 실수 변수 정밀도 때문에 얼마 안 가서 뭉개진다. 뭉개지지 않고 계속 확대되는 동영상(http://www.youtube.com/watch?v=0jGaio87u3A)을 봤는데 이렇게 하려면 Big Number를 구현하거나 꼼수를 찾아봐야 할 것 같다. 올ㅋ 이거 끼워넣기도 됨?
원문 링크 http://www.gskinner.com/blog/archives/2008/07/source_code_lic_1.html 소스 코드 라이센스 내 생각에 플래시와 플렉스 업계 사람들은 여러 소스 코드 라이센스의 의미를 잘 모르는 듯하다. 우리는 회사가 성장함에 따라 중요 고객의 중대한 프로젝트를 여러 개 맡았고, 나는 소스 코드 라이센스를 배워 우리 팀에게 가르쳐야 했다. 나는 소스 코드 라이센스가 매우 중요한 주제라고 생각하여, 많은 노력을 들여 오늘날 플래시 커뮤니티에서 널리 쓰이는 소스 코드 라이센스들을 수집했다. 이 글을 여러분의 블로그에 링크한다거나 동료들과 공유하여 주변으로 퍼뜨리기를 권한다. 아마 이 글은 소스 코드를 공유하는 개발자들이 적당한 라이센스를 고르고(나는 LGPL 소스..