Your SlideShare is downloading. ×
cocos2d + 非同期
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

cocos2d + 非同期

6,765
views

Published on

cocos2d 勉強会 (2011/06/20) …

cocos2d 勉強会 (2011/06/20)
http://togetter.com/li/151941
「非同期」のスライドです

Published in: Technology, Art & Photos

1 Comment
5 Likes
Statistics
Notes
  • This slide uses http://www.blazingpc.com/forum/showthread.php?t=12379 image. thanks.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,765
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
1
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 非同期話の前に、メインループの話。cocos2dでもRunLoopベース。\n\n
  • \n
  • \n
  • オブジェクトを動かしているシーンで、VSYNC無視して画面更新すると、\nオブジェクトがぶったぎれて見える\n\n
  • \n
  • 垂直同期信号って何? ブラウン管テレビの時代までさかのぼります\nビームが左上から右下にかけて徐々に動いて、VRAMをブラウン管に反映していく\n一番下まで行って、一番下から一番上にもどるとこを垂直帰線区間。この間、絵は更新されない\n
  • ビームが戻る垂直帰線区間内に画面を更新させるためにVSYNCは存在する\n垂直帰線区間外にVRAMを更新すると残念なことになる。\niPhoneでも基本同じ。ブラウン管じゃなくて液晶ディスプレイ。\n
  • CADisplayLinkを使うと、RunLoopがVSYNCに同期してループする\n
  • 1回のループの時間が1/60秒\n
  • 1/60 ぬめぬめ動く\n
  • データをロードしてRunLoopをブロック\nフレームレート低下どころの話ではない\n画面止まっちゃう\n
  • \n
  • まずやっかいなのがテクスチャを非同期で読み込む方法。でもcocos2dだと簡単です。\n
  • addImageAsyncを実際にどう使うか、この本を読んでいただくか、ぐぐってもらうとして\n
  • どういう実装になっているか\n
  • 通常メインスレッド以外でOpenGL ES APIを呼び出せば例外発生\n
  • \n
  • \n
  • \n
  • ただし、コールバックは呼び出し元ではなく、メインスレッドで呼び出される\n
  • iOS 4プログラミングブックの第5章をぜひ読んでくださいませ\n
  • \n
  • Transcript

    • 1. @splhack
    • 2. cocos2d +
    • 3. Loading
    • 4. Loading.......
    • 5. @yuroyuro: 31 May 2011 http://twitter.com/#!/yuroyoro/status/75399664496680960
    • 6. cocos2d RunLoopcocos2d CADisplayLink
    • 7. CADisplayLinkRunLoop
    • 8. VSYNC
    • 9. VSYNC
    • 10. VSYNCVertical Synchronizing signal
    • 11. VRAM
    • 12. VSYNC
    • 13. CADisplayLinkRunLoop VSYNC
    • 14. CADisplayLinkiOS 1/60 60FPS16.666
    • 15. 1/60 VSYNC1/60 → 2/60(1/30) → 3/60(1/20) → 4/60(1/15) → ...
    • 16. RunLoop (Blocking)
    • 17. RunLoop (Blocking)
    • 18. RunLoop
    • 19. cocos2d CCTextureCache - (void)addImageAsync:target:selector:
    • 20. addImageAsync•• GL API (EAGLContext sharegroup)
    • 21. addImageAsync••OpenGL ES•glTexImage2D ( GL )
    • 22. addImageAsync•
    • 23. “RunLoop Main QueueGlobal Queue Serial Queue ” iOS 4
    • 24. Grand Central Dispatch GCD iOS 4
    • 25. Grand Central Dispatch Global Queue Serial QueueaddImageAsync
    • 26. Grand Central Dispatch

    ×