posted by 쑥갓 2006.01.23 04:55

전에 써논줄 알았는데 없네

VC2005에서는 이런게 가능하다.
#define CHECK1(x, ...) if (!(x)) { printf(__VA_ARGS__); }

#define 에서 argument list를 지원하지 않아서 불편했었는데 ㅋ

#ifdef __USE_TRACE__
#define STRACE( ... ) g_STrace.Printf( __VA_ARGS__ );
#else
#define STRACE( ... )
#endif

이런식으로 쓰고 있다

다른 용도는 잘-_-;;

'게임개발 > ' 카테고리의 다른 글

VS2005 실행모듈 배포하기  (1) 2006.02.14
다른 프로그램창 Top으로 올리기  (0) 2006.01.24
Variadic Macros in VC2005  (0) 2006.01.23
Named Return Value Optimization in Visual C++ 2005  (0) 2006.01.04
VC2005 추가 키워드  (2) 2006.01.04
D3DXLoadSurfaceFromSurface  (0) 2005.12.27
TAG
posted by 쑥갓 2006.01.04 02:49

아마도 표준은 아닐거라고 생각하고 2003의 지원여부는 잘 모름-ㅅ-;
이미 표준이 아니어도 vc2005의 강력한 기능이 너무나도 유용한 경우는 생까주기로 하셨슴.

override

more..

abstract

more..

__interface

more..

sealed

more..

.끝.
native 기준이고 clr에서만 사용가능한건 적지 않았음
위에 몇 개 나왔지만 __is_abstract같은 컴파일 타임에 사용가능한 TypeTraits가 꽤 있다.
특정 클래스가 base클래스를 상속받았는지를 체크하는것도 있고(clr에서만 되지만)
__has_copy(type)나 __has_assign(type)같은
native에서 쓸만한것도 꽤 있다.
근데 사실 TypeTraits는 필요한건 native지원안하면 loki를 써버리면 그만이라 헹~

'게임개발 > ' 카테고리의 다른 글

Variadic Macros in VC2005  (0) 2006.01.23
Named Return Value Optimization in Visual C++ 2005  (0) 2006.01.04
VC2005 추가 키워드  (2) 2006.01.04
D3DXLoadSurfaceFromSurface  (0) 2005.12.27
mutable  (0) 2005.11.22
콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
TAG
posted by 쑥갓 2005.12.27 09:04

D3DXLoadSurfaceFromSurface

이게 있었다는 걸 분명히 알고 있었는데 까먹고 있었다-.ㅜ

왜 여태 메모리에 저장했다 다시 로드했지-ㅅ-


'게임개발 > ' 카테고리의 다른 글

Named Return Value Optimization in Visual C++ 2005  (0) 2006.01.04
VC2005 추가 키워드  (2) 2006.01.04
D3DXLoadSurfaceFromSurface  (0) 2005.12.27
mutable  (0) 2005.11.22
콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
TAG
posted by 쑥갓 2005.11.22 23:50

This keyword can only be applied to non-static and non-const data members of a class. If a data member is declared mutable, then it is legal to assign a value to this data member from a const member function.

라고 msdn에 나와있다.
const 멤버함수에서 수정할 수 있단다.
보고나니 아...이거였지...라는 생각이 난다-_-;

크리티컬섹션거는거때매 const를 붙이지 못해서 불만을 뿜어내고 있었는데..
흠흠..

이런 변수 키워드들에 대해 한번 찾아봐야지..하고 계속 미루고 있었는데
이 게으름증이란..헹~

ps. volatile은 내용은 대충 알것도 같은데 어떤 상황에 써야할지는 잘 모르겠다-.ㅜ

'게임개발 > ' 카테고리의 다른 글

VC2005 추가 키워드  (2) 2006.01.04
D3DXLoadSurfaceFromSurface  (0) 2005.12.27
mutable  (0) 2005.11.22
콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
posted by 쑥갓 2005.11.22 02:21

사실 원래는 적당한 크기로 잡혀져서 조절할 일이 별로 없었는데.
멀 삽질했는지 한줄씩 밖에 안나와서 상당히 난감한 상황이었다-_-;
잡설은 집어치우고..

콤보박스를 선택하면 상하크기조절은 Disable된 상태인데..
콤보박스의 화살표(얘를 머라그러나-_-) 부분을 눌러주면
드롭박스 부분의 크기를 설정할 수 있다.

허접함을 뛰어넘어 검색도 한번 안해본 이 게으른 담당 프로그래머 때문에 몇주간 툴을 불편하게 사용하신 그래픽팀 일동에게 심심한 사죄의 말씀을-_-;

'게임개발 > ' 카테고리의 다른 글

D3DXLoadSurfaceFromSurface  (0) 2005.12.27
mutable  (0) 2005.11.22
콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07
TAG
posted by 쑥갓 2005.11.07 02:37

vector<int> values;
for each( const int value in values )
{
cout << value;
}

같은 코드가 가능해졌다
감동-.ㅜ

표준이 아니라고 하면 할말은 없으삼-.-

'게임개발 > ' 카테고리의 다른 글

mutable  (0) 2005.11.22
콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07
Cubemap을 이용한 SkyBox  (4) 2005.07.11
TAG
posted by 쑥갓 2005.10.14 13:57

원래는 이따위로 성의 없이 나온다

Tools->Options->Text Editor->File Extension에가서 lua확장자를 Script Editor로 선택해서 Add해준다.
그리고, 다시 lua파일을 열어준다.

제대로 나오는건지는 모르겠지만 어쨋건 훨 낫다


'게임개발 > ' 카테고리의 다른 글

콤보박스 드롭박스 부분 크기 조절하기  (0) 2005.11.22
vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07
Cubemap을 이용한 SkyBox  (4) 2005.07.11
Increase, Decrease Macro  (0) 2005.07.08
TAG
posted by 쑥갓 2005.09.07 10:23

사실 여태까지 png를 어따가 쓰는건지 몰랐다-_-;
그냥 파일포맷중 하나이겠거니... 했었는데..
알고보니 무손실압축에 알파채널을 지원하는 포맷이었다.

여태까지는 dxt포맷은 손실압축이라 퀄리티 저하가 되서 UI에 사용하지 못하고 tga파일을 사용하고 있었는데
tga의 경우는 이미지 자체의 투명도(transperent background - 투명 배경, 일명 격자 배경-_-)을 사용하는게 아니라 alpha채널을 뽑아내는 방식이라
디자이너가 마스크를 씌워서 투명도를 구워?내서 알파채널에 넣고 tga를 뽑는 번거로운 방식을 사용해야 했었는데
png는 투명도를 그대로 뽑아낼 수 있어서 디자이너의 편의성이 상당히 올라간다.

게다가, 512*512이미지가 tga는 1,025KB였는데 동일한 png이미지는(물론 tga의 알파채널을 다시 투명도로 바꾸는 법을 몰라서 대충-_- 투명도를 칠하고 테스트 했다.) 38KB밖에 안한다.
오오오! 무려 1/27의 사이즈!!!
투명도를 제대로 사용한다고 해도 1/10은 건질 수 있다는 얘기다 오호호
물론 UI가 심플한 디자인이라 압축률이 높은 거 같기는 하지만.

정확한 파일포맷스펙을 보지 않아서 어떨지는 모르겠는데
로딩할때 압축푸느라 시간이 꽤 걸린다는 풍문-_-이 있다.
복잡한 1024*1024짜리 이미지-_-a로 체감테스트-_-를 해봤는데 실제로 꽤 걸리는거 같다.
현재의 심플한 디자인의 이미지로 테스트 해보니 별 차이가 느껴지지 않았다~ 잇힝~
UI디자인은 보통 심플한 형태고, 실제 UI창이 뜨거나 할 때 좀 느리게 떠도 큰 상관없으므로
png로 가는게 좋을 것 같다.

속도상의 손해보다는 용량의 이득이 너무 크다-.ㅜ
용량이 줄면 풀버전의 용량도 적어지고 패치파일의 용량도 적어지고 설치시간과 패치시간도 적어진다.
풀버전과 패치파일의 용량이 적어지면 유저가 다운로드 받는 양이 적어진다는거고 CDN의 트래픽이 줄어들어 결국은 돈을 번다는 얘기다-_-;

물론 dxt를 쓸 수 있는곳은 dxt를 써야 겠지만 dds를 사용하지 못하고 이미지가 복잡하지 않은 UI의 경우는 딱 제격이다.

일찍 알았으면 좋았을걸 이라는 생각도 들지만 이제라도 알아서 다행이다. 아직 배포는 안됐으니까-_-;

낼 디자이너분한테 얘기해서 이번버전부턴 png로 가야겠다~ 잇힝~

PS1. 역시 클라이언트 프로그래머는 잡다한걸 많이 배워둬야 한다.
PS2. 클라이언트 프로그래머는 디자이너와 친해두는게 좋다.

'게임개발 > ' 카테고리의 다른 글

vs 2005의 for each  (0) 2005.11.07
VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07
Cubemap을 이용한 SkyBox  (4) 2005.07.11
Increase, Decrease Macro  (0) 2005.07.08
Two-Sided Polygons  (0) 2005.05.20
TAG
posted by 쑥갓 2005.07.11 04:56

나중에나중에나~중에 하려고 했던 SkyBox를 어쩌다가 하게되서
Cubemap을 이용해서 찍어보게 되었는데
일단 SetTexture한방에 렌더링 한방.. 이라는 매력적인 내용외에도 또 다른 숨겨진 내용이 있는걸 알게 되었다.

굳이 6면을 월드시점으로 구성해서 그릴 필요가 없다..라는 것인데.
스카이박스는 어차피 화면에 보이는 부분만이 전부이고 6면이라지만 어차피 텍스쳐는 한장인 관계로 화면 좌표를 가지고 슥슥슥 해서 3D텍스쳐 좌표를 구해버리면 화면을 가득 채우는 플랜 한장으로 렌더링이 가능하다! 라는 내용이다.

오호..이런게 가능할줄은..
dx예제의 스카이박스들이 다 이렇게 그리고 있었는데 왜 모르고 있었을까나.. ( 스카이박스를 고민해 본 적이 없었으니 모르지-_-; )
어쨋건 스카이박스가 속도를 많이 잡아먹는 부분은 아니었지만
그래도 퍼포먼스 향상이 기대됨. 잇힝-

'게임개발 > ' 카테고리의 다른 글

VS에서 lua의 syntax coloring을 해보쟈  (0) 2005.10.14
파일포맷 png  (0) 2005.09.07
Cubemap을 이용한 SkyBox  (4) 2005.07.11
Increase, Decrease Macro  (0) 2005.07.08
Two-Sided Polygons  (0) 2005.05.20
nVidia 2005년 4월 뉴스레터 팁  (0) 2005.05.19
TAG

티스토리 툴바