yuchi's Development Home
글 수 201
네트웍 컴포넌트 -> x86, x64 코드 작성 및 테스트 완료
3D엔진 -> 진행중
진행중이라고 써놓으니 다소 억울한 감 마저 있다.
어제부터 공용 자료구조 라이브러리를 64,32비트 겸용으로 쓸 수 있도록 고치고 테스트하고 있다.
4DyuchiGXGFunc.dll이 그것인데 사실 이 놈만 64,32비트 다 돌아가면 3D엔진의 64비트 적용은 별 문제는 없다고 본다.
일단 예전에 공부하는 셈 치고 어셈으로 짰던 코드들을 다시 C로 번역(?)해서 짜넣었다.
하는 김에 자료구조쪽 코드들은 아예 COM스타일의 인터페이스를 사용하는 DLL을 새로 만들어서 집어넣고 있다.
메모리풀이랑 인덱스생성기는 어셈블리 코드를 참고해서 C로 포팅했다.
힙메모리 코드에서 손이 좀 많이 갔다.
예외처리용으로 박아놓은 int 3을 compiler intrinsic으로 바꿔넣고 몇 가지 코드 정리를 한 후에 잘 돌아갈걸로 믿어의심치 않았으나....
고정사이즈 메모리풀의 버그체크를 좀 엄격하게 했더니 문제가 생겨버렸다.
물론 예전에 내가 잘못 짰다면 잘못 짠 것이지만...
코드의 로직으로 보면 약간 문제가 있긴하나 실상 메모리가 새는것도 아니고, 크래쉬 하는것도 아닌 버그였다.
일단 원인 찾느라 밤 샜고, 원인을 찾은 후 방금 10분만에 코드를 고쳤다.
휴..근데 힙 메모리 코드는 진짜 알아보기 힘들었다.
주석좀 달아둘걸. 아무리 쳐다봐도 뭔 소린지 알수가 없었다.
코드는 오죽 복잡해야지..--; 과거의 나에게 경의를 표함과 동시에 왜 주석을 달지 않았는지 원망스러워졌다.
이제 자료구조쪽에서 남은 놈들은 DPC큐랑 해쉬검색코드 두 개.
수학함수들은 C버젼도 있으니까 일단 그걸로 테스트해보고 성공하면 x64 어셈블리로 포팅할 생각.
잘 하면 일주일 안에 64비트 버젼의 엔진과 클라이언트를 돌릴 수 있을지도?
집에서 코드 짜면서 밤새보긴 실로 오랫만~
3D엔진 -> 진행중
진행중이라고 써놓으니 다소 억울한 감 마저 있다.
어제부터 공용 자료구조 라이브러리를 64,32비트 겸용으로 쓸 수 있도록 고치고 테스트하고 있다.
4DyuchiGXGFunc.dll이 그것인데 사실 이 놈만 64,32비트 다 돌아가면 3D엔진의 64비트 적용은 별 문제는 없다고 본다.
일단 예전에 공부하는 셈 치고 어셈으로 짰던 코드들을 다시 C로 번역(?)해서 짜넣었다.
하는 김에 자료구조쪽 코드들은 아예 COM스타일의 인터페이스를 사용하는 DLL을 새로 만들어서 집어넣고 있다.
메모리풀이랑 인덱스생성기는 어셈블리 코드를 참고해서 C로 포팅했다.
힙메모리 코드에서 손이 좀 많이 갔다.
예외처리용으로 박아놓은 int 3을 compiler intrinsic으로 바꿔넣고 몇 가지 코드 정리를 한 후에 잘 돌아갈걸로 믿어의심치 않았으나....
고정사이즈 메모리풀의 버그체크를 좀 엄격하게 했더니 문제가 생겨버렸다.
물론 예전에 내가 잘못 짰다면 잘못 짠 것이지만...
코드의 로직으로 보면 약간 문제가 있긴하나 실상 메모리가 새는것도 아니고, 크래쉬 하는것도 아닌 버그였다.
일단 원인 찾느라 밤 샜고, 원인을 찾은 후 방금 10분만에 코드를 고쳤다.
휴..근데 힙 메모리 코드는 진짜 알아보기 힘들었다.
주석좀 달아둘걸. 아무리 쳐다봐도 뭔 소린지 알수가 없었다.
코드는 오죽 복잡해야지..--; 과거의 나에게 경의를 표함과 동시에 왜 주석을 달지 않았는지 원망스러워졌다.
이제 자료구조쪽에서 남은 놈들은 DPC큐랑 해쉬검색코드 두 개.
수학함수들은 C버젼도 있으니까 일단 그걸로 테스트해보고 성공하면 x64 어셈블리로 포팅할 생각.
잘 하면 일주일 안에 64비트 버젼의 엔진과 클라이언트를 돌릴 수 있을지도?
집에서 코드 짜면서 밤새보긴 실로 오랫만~