Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
👾&⌚️
Search
giginet
PRO
March 03, 2017
Programming
11k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
👾&⌚️
try! Swift 2017
giginet
PRO
March 03, 2017
More Decks by giginet
See All by giginet
🀄️ on swiftc
giginet
PRO
0
560
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
430
Claude Codeログ基盤の構築
giginet
PRO
7
4.5k
Inside of Swift Export
giginet
PRO
1
3.3k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.9k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
470
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.6k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
8.4k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.9k
Other Decks in Programming
See All in Programming
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
110
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
2.9k
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
530
「人を評価する AI」の設計と実装
ryoyanara
0
240
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
300
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
プロポーザルを書いてもらう
pvcresin
0
580
リアルな遅延を測る仕様
kota_yata
1
120
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
Go 1.27 における memory allocation の高速化
andpad
0
310
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
200
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Featured
See All Featured
Everyday Curiosity
cassininazir
0
290
Practical Orchestrator
shlominoach
191
12k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
440
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
360
For a Future-Friendly Web
brad_frost
183
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Transcript
@giginet
&⌚
None
None
None
None
None
FCEUX(C++)
try! Objective-C
Metal OpenGL ES RENDERING
var texture: SKTexture { guard let videoBuffer: UnsafeRawPointer = emulatorCore.videoBuffer()
else { fatalError() } let data = Data(bytes: videoBuffer, count: Int(bufferCount)) let size = CGSize(width: 256, height: 240) return SKTexture(data: data, size: size, flipped: true) }
import AVFoundation // let destinationBuffer: AVAudioPCMBuffer! // Get source buffer
let sourceBuffer = UnsafeBufferPointer<Int16>(start: head.assumingMemoryBound(to: Int16.self), count: bufferLength) // Copy samples to AVAudioPCMBuffer for channel in 0..<channelCount { let samples = UnsafeMutableBufferPointer<Float32>(start: destinationBuffer.floatChannelData?.pointee, count: bufferLength) for frame in 0..<frameLength { // Cast 16bit audio to 32bit samples[frame] = Float32(audioBuffer[frame * channelCount + channel]) } } AUDIO
▸CoreMotion ▸WKGestureRecognizer ▸Tap ▸LongPress ▸Swipe ▸Pan ▸WKCrownDelegate, WKCrownSequencer INPUTS
Touch Down Touch Up WKTapGestureRecognizer
// super rapidly long press(1 frame) longPressGestureRecognizer.minimumPressDuration = 1.0 /
60.0 WKLongPressGestureRecognizer
None
public enum Button: UInt32 { case a = 1 case
b = 2 case select = 4 case start = 8 case up = 16 case down = 32 case left = 64 case right = 128 } if sender.state == .began { controllerState |= button.rawValue } else if sender.state == .ended { controllerState &= ~button.rawValue }
https://github.com/giginet/NESEmulator-watchOS
None
Have a nice Pokémon GO Life!
None