프로그래밍/Cocos2D2009. 11. 7. 14:44
cocos2d Texture2d 에 대한 질문입니다. ^^; | i개발Q&A
0 / 2009.10.19 21:02
조금 밑에 어플개발시 메모리에 관한 질문을 보시면 제가

1024 * 1024 * 32비트  PNG 가 엑티비티 모니터링 시 리얼메모리 12메가를 잡아먹는다고 적어놨었습니다.

이에대해 채원아빠님께서 1024 * 1024 * 32비트면 약 4메가 정도 먹지않겠냐 라고 답변 다셨는데

저도 어제 약 4메가정도 먹어야 정상일텐데 왜 12메가 인지 한참 고민해었습니다.  결국 어차피 컴퓨터가 맞겠지 하고 -_- 

넘어가려고 하기도했었구요.. (이유를 못찾았었습니다.)

그러다 오늘 채원아빠님께서 말씀하신거 보고 제가 계산을 잘못한게 아니라고 생각해서  테스트를 실시했습니다.

지금 사용중인 어플은 OpenGL로 만들고있지만 실제로는 cocos2d의  Texture2d.h를 가져와서 활용하고있습니다.

그래서 일단 cocos2d  프로젝트를 열고  AtlasSpriteManager로 똑같은 이미지(1024 * 1024 * 32) 를 얹어보았더니 약 4메가가

리얼메모리에 추가된걸 확인할수있었습니다.

같은 파일을 가지고 Texture2d의 initwithImage를 사용해 불러오니 리얼메모리에 12메가가 추가되는 것도 확인할수있었습니다.

혹시 이런 문제로 고민하셨던 적이 있으신 분이 있으신가 해서 글 남깁니다. -ㅁ-... 또  저같이 texture2d.h를 활용하고계신분이라면

더더욱이.. .........................................................

이제 AtlasSprite와 Texture2d의 차이점을 확인하러가야겠습니다. ㅜ_ㅜ

작성자의 카페글 더보기

.....없어그런거..
덧글 4개 | | 조회수 108 | | 추천 0 나도추천
 담기 | 인쇄 | 신고
  • 2009/10/19 21:09

    답글|신고

    아하... 그랬었군요... ^^;................... (도움은 못드려서 ㅈㅅ.... 쩌비... )
    상황파악이 되셨으니, 어렵지않게 해결하시리라 생각되네요...

    하루에 한시간씩 시간투자를 하는데... gl study 할시간은.. ㅡ,ㅡ;;;;;;;;;;;..........

    힘 내세요...
    ^^;...................................

  • 2009/10/19 21:30

    답글|신고

    저도 굉장히 궁금한 부분이네요.
    역시 cocos2d를 사용하고 있고..게임의 규모가 커지다보니 슬슬 메모리의 압박이 시작되는 것 같아서요..
    혹시 알게 되시면 소중한 정보 공유해주시면 정말 감사하겠습니다. (_ _);;

  • 2009/10/19 22:39

    답글|신고

    해결했습니다. 대충 답이 맞는지 어쩐지는 확신은 없으나 일단 용량문제나 실행상의 문제는 전혀없게됐습니다.
    대충 문제의 원인에 대해 말씀드리자면.. 해당 이미지를 불러올때..
    _texture[0] = [[Texture2D alloc] initWithImage:[UIImage imageNamed:@"A.png"]];
    이런식으로 불러옵니다. [Texture2D alloc] <- 이부분에서 한번 메모리를 추가하죠..
    [UIImage imageNamed:파일이름] 이녀석의 정의를 보면 + (UIImage *)imageNamed:(NSString *)name; 입니다.
    안을 열어볼순없지만 alloc를 한다는 거죠; initWithImage안을 보면 UIImage ImageNamed:""로 불러온 녀석의 메모리를
    해제하는 코드가 없더군요.. 해결방법은 맨 마지막줄 reutrn self; 전에 [uiImage release]; 한줄 추가해주시면 됩니다.
    cocos2d라이브러리 템플릿 사용하시는 분은 처음 라이브러리 만드시는 단계에서 수정하셔서 시뮬레이션 - cocos2d
    디바이스 - cocos2d 를 해주신후에 나온 라이브러리 파일과 함께 Texture2D.h파일을 복사해서 덮어쓰시면 됩니다.

  • 2009/10/19 22:58

    신고

    ^^;.................... 그렇군요... ㄳㄳ...

Posted by windship