Visual Studio는 Compile시 multi-processor compilation을 지원한다. processor는 각각 파일 하나씩을 담당하여 compile을 진행한다. 따라서 core가 많을수록 compile속도는 증가한다. multi-processor compilation 옵션을 켰을 때 compile속도가 50초에서 6초로 줄어 들었다. Project 의Property Pages에서 Configuration Properties -> C/C++ ->General 맨 밑의 Multi-processor Compilation을 YES로 변경 만약 Minimal Rebuild가 켜져 있을 경우 /MP가 무시되므로 아래와 같이 변경해준다. Configuration Properties -> C/C++..
펌 : http://blog.naver.com/seeper0/120035377157 카메라를 흔들려면 카메라를 흔드는 폭을 알아야 한다. 그런데 이 폭을 생각처럼 이쁘게 얻기 힘들다. 그래서 이쁜 공식에 대한 화두를 던저볼까 한다. 1. y = sin(x) 먼저 생각해 볼 수 있고 만만한 공식은 바로 sin 이다. sin 특성상 파형을 나타낸다. 오르락 내리락 하는것이 단순하면서도 직선적이지 않아 카메라 흔들때 딱이라는 느낌이 온다. 하지만.. 너무 단조롭지 않은가? 점점 감쇄할수 있다면 좋을것 같다. 2. y = powf(0.5f, x) : 흔히 말하는 y=(1/2)^x 그래프 이다. 감쇄하는 모양이 아주 이쁘다. 특히나 5 정도를 지나면 0이 아니라 0에 수렴하는 곡선이다. 이 그래프의 감쇄 정도를 ..
좀 오래 됐지만 우선 정리.. 예전에 요청중에 타이틀 바 드래그시 멈춤 현상? 이라고 해야 하나. 어쨋든 요새 게임은 드래그 해도 계속 렌더링되는 게임들이 있다보니. 회사분이 왜 우리는 안되냐고 해달라고 막 쪼르길래 ㅠ. 뒤지고 뒤져보니 보통 세가지 방법이 있다. 1. 윈도우 타이틀바 없애고 유아이로 대체하고 닫기버튼,최소화버튼 등을 따로 처리 2. 메세지 처리 부분만 스레드로 별도 처리 3. 어찌 어찌 메세지막고 해서 MoveWindow함수로 하기.. 1번째는 애초에 이건 아니다 싶어서 포기. 2번째 방법을 쓰니 문제들이 많았었는데. 우선 윈도우를 생성한 스레드와 PeekMessage의 스레드가 다를 경우 메세지가 제대로 나오지가 않아서 문제가 있었다. 시간이 꽤 지나서 기억이 가물가물한데;; 그래서 ..
Awesomium 게임 상에서 웹페이지를 뛰울수 있게 도와주는 도구이다?. 사이트는 http://www.awesomium.com/ 이다. 사용법은 되게 간단한데.. 실제 게임상에서 웹사이트를 뛰우는 방식은 윈도우,오프스크린 두가지 방법이다. 윈도우는 윈도우를 만들어서 Awesomium 자체 윈도우?가 있는듯 한데 그걸 새로만든 윈도우에 자식으로 붙이는 방식이다. 그러다 보니 실제 게임에서 쓰기엔 무리가 있다. 그래서 사용하는 오프스크린 방식으로 사용한다. 오프스크린은 윈도우보단 좀 신경 써주어야 한다. 윈도우는 걍 자체적으로 메세지처리를 해주어서 해줄게 없는데. 오프스크린은 그런 메세지처리들을 해줘야 한다. 다른건 별문제가 없지만 IME문제는 좀 골이 아프다. 더군다나 Awesomium은 처음 사용법만 ..
이것도 예전 이글루스블로그에서 옮겨옴.#include _CrtDumpMemoryLeaks(); _CrtSetBreakAlloc( 에러 번지? ); 회사에서 일하면서 처음 알게 된 것... 그 전엔 혼자 공부하다보니 누수가 나건 말건 했으니.. 어쨋든 _CrtDumpMemoryLeaks()을 코드 끝 부분에 넣고 디버깅을 함. 그러고 나서 이짓 저짓 하다가 닫으면 메모리 누수가 난 곳들을 디버그 출력창에 에러번지? 들을 뱉어냄. 그러면 그 에러번지들을 _CrtSetBreakAlloc에 넣고 디버깅하면 해당 부분에서 브레이크가 걸림
이것도 예전 이글루스 블로그에서 옮겨 온건데.. 지금 보니 뭔말인지 잘모르겠네 ㅋㅋ... 으흠. 전에 책에서 보기로 컴파일러가 알아서 inline화한다고 본거 같은데 흠냐 역시 정리를 해야하는데.. 어쨋든 함수를 inline했을 시 매크로함수와 같이 컴파일시 함수호출방식이 아니라 그 지점에 함수를 박아?넣는다라는 어쨋든 일반 함수로 했을시보다 컴파일 속도가 빠르다. 하지만 함수정의부분이 헤더파일에 있어야한다. 컴파일시 함수의 사이즈를 알아야 하기때문이다. 또한 매크로함수와 비슷하지만 매크로함수의 제약인 변수타입을 지정할 수 없이 치환하는 형태에서 좀더 편하게 쓸 수 있다. 아 말이 이상하게 꼬이지만 뭐. 시간봐서 수정을 해야겠다.
예전에 쓰던 이글루스 블로그에 적은 것들을 옮겨 와야겠다.. 넘 횡하네 _MSC_VER 이름 그대로 마이크로소프트 컴파일러 버전이다. #ifdef _MSC_VER #pragma comment(lib,"Irrlicht.lib") #endif _MSC_VER 값 컴파일러 버전 Visual Studio 버전 ( _MSC_VER => 1000 ) 4.0 ( _MSC_VER => 1100 ) 5.0 ( _MSC_VER => 1200 ) 6.0 vs6 ( _MSC_VER => 1310 ) 7.1 vs2003 ( _MSC_VER => 1400 ) 8.0 vs2005 ( _MSC_VER => 1500 ) 9.0 vs2008 ( _MSC_VER => 1600 ) 10.0 vs2010