OSP-SLP Architectural Specification: Io

Similar documents
Chapter_02-3_NativeApp

ๆญฏLecture2.PDF

PCServerMgmt7

์„œํ˜„์ˆ˜

์Šฌ๋ผ์ด๋“œ 1

U.Tu System Application DW Service AGENDA 1. ๊ฐœ์š” 4. ์†”๋ฃจ์…˜ ๋ชจ์Œ 1.1. ์ œ์•ˆ์˜ ๋ฐฐ๊ฒฝ ๋ฐ ๋ชฉ์  4.1. ๊ณ ๊ฐ์ •์˜ DW๊ตฌ์ถ•์— ํ•„์š”ํ•œ ๋ฉ”ํƒ€์ •๋ณด ์ƒ์„ฑ 1.2. ์ œํ’ˆ ๊ฐœ์š” 4.2. ์‚ฌ์ „ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ 1.3. ์ œํ’ˆ ํŠน์žฅ์  4.3. ๋ถ€ํ’ˆํ™”ํ˜•

Orcad Capture 9.x

๋ชฉ์ฐจ 1. ์ œํ’ˆ ์†Œ๊ฐœ ํŠน์ง• ๊ฐœ์š” Function table ๊ธฐ๋Šฅ ์†Œ๊ฐœ Copy Compare Copy & Compare Erase

Week3

Microsoft PowerPoint - IP11.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Deok9_Exploit Technique

2011๋…„ 10์›” ์ดˆํŒ c 2011 Sony Corporation. All rights reserved. ์„œ๋ฉด ํ—ˆ๊ฐ€ ์—†์ด ์ „์ฒด ๋˜๋Š” ์ผ๋ถ€๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์„ ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ๋ฐ ๊ทœ๊ฒฉ์€ ํ†ต๋ณด ์—†์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Sony์™€ Sony ๋กœ๊ณ ๋Š” Sony์˜ ์ƒํ‘œ์ž…๋‹ˆ๋‹ค. G L

์ œ11์žฅ ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ

๋ชฉ์ฐจ ์ œ 1 ์žฅ inexio Touch Driver์†Œ๊ฐœ ์†Œ๊ฐœ ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ ์ œํ’ˆ์‚ฌ์–‘... 4 ์ œ 2 ์žฅ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ์„ค์น˜ ์‹œ ์ฃผ์˜์‚ฌํ•ญ ์„ค์น˜ ๊ถŒ๊ณ  ์‚ฌ์–‘ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ํ•˜๋“œ์›จ

๋งค๋ ฅ์ ์ธ ๋งฅ/iOS ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ทธ๋ฆผ A-1 ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ™•์ธ์ฐฝ Validate Setting... ํ•ญ๋ชฉ์„ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค. ํ”„๋กœ์ ํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ์„ ํƒํ–ˆ์„ ๋•Œ ํ™”๋ฉด ์•„ ๋ž˜์ชฝ์— ์žˆ๋Š” ๋™์ผํ•œ Validate Settings... ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋„ ๋œ๋‹ค. ์ด์Šˆ ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ๋ชฉ๋ก์—์„œ ๋ณ€๊ฒฝํ• 

6์ฃผ์ฐจ.key

์Šฌ๋ผ์ด๋“œ 1

Interstage5 SOAP์„œ๋น„์Šค ์„ค์ • ๊ฐ€์ด๋“œ

- ๋ชฉ์ฐจ - - ios ๊ฐœ๋ฐœํ™˜๊ฒฝ๋ฐ์œ ์˜์‚ฌํ•ญ. - ํ”Œ๋žซํผ ios Project. - Native Controller์™€ํ”Œ๋žซํผํ™”๋ฉด์—ฐ๋™. - ํ”Œ๋žซํผ Web(js)-Native ๊ฐ„๋ฐ์ดํ„ฐ๊ณต์œ . - ํ”Œ๋žซํผํ™•์žฅ WN Interface ํ•จ์ˆ˜๊ฐœ๋ฐœ. - Network Manager clas

chap 5: Trees

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

SQL Developer Connect to TimesTen ์œ ๋‹ˆ์›์•„์ด์•ค์”จ DB ๊ธฐ์ˆ ์ง€์›ํŒ€ 2010 ๋…„ 07 ์›” 28 ์ผ ๋ฌธ์„œ์ •๋ณด ํ”„๋กœ์ ํŠธ๋ช… SQL Developer Connect to TimesTen ์„œ๋ธŒ์‹œ์Šคํ…œ๋ช… ๋ฒ„์ „ 1.0 ๋ฌธ์„œ๋ช… ์ž‘์„ฑ์ผ ์ž‘์„ฑ์ž

DocsPin_Korean.pages

์ œ์ด์ฟผ๋ฆฌ (JQuery) ์ •์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํ•จ์ˆ˜๋ฅผ์‰ฝ๊ฒŒ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด๋งŒ๋“ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์›นํŽ˜์ด์ง€๋ฅผ์ฆ‰์„์—์„œ๋ณ€๊ฒฝํ•˜๋Š”๊ธฐ๋Šฅ์—ํŠนํ™”๋œ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์‚ฌ์šฉ๋ฒ• $( ์ œ์ด์ฟผ๋ฆฌ๊ฐ์ฒด ) ํ˜น์€ $( ์—˜๋ฆฌ๋จผํŠธ ) ์ฐธ๊ณ  ) $() ์ด๊ธฐํ˜ธ๋ฅผ์ œ์ด์ฟผ๋ฆฌ๋ž˜ํผ๋ผ๊ณ ํ•œ๋‹ค. ์ฆ‰, ์ œ์ด์ฟผ๋ฆฌ๋ฅผํ˜ธ์ถœํ•˜๋Š”๊ธฐํ˜ธ

์‰ฝ๊ฒŒ ํ’€์–ด์“ด C ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Microsoft PowerPoint - ch10 - ์ด์ง„ํŠธ๋ฆฌ, AVL ํŠธ๋ฆฌ, ํŠธ๋ฆฌ ์‘์šฉ pm0600

Microsoft PowerPoint - lecture2-opengl.ppt [ํ˜ธํ™˜ ๋ชจ๋“œ]

Something that can be seen, touched or otherwise sensed

iii. Design Tab ์„ Click ํ•˜์—ฌ WindowBuilder ๊ฐ€์ž๋™์œผ๋กœ์ƒ์„ฑํ•œ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐํ™˜๊ฒฝ์„ํ™•์ธํ•œ๋‹ค.

Modern Javascript

AMPแ„‚แ…ณแ†ซ แ„‹แ…ฅแ„„แ…ฅแ‡‚แ„€แ…ฆ แ„ˆแ…กแ„…แ…ณแ†ซ แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„‹แ…ณแ†ฏ แ„‚แ…ขแ„‚แ…ก.key

โ…ก. Embedded GPU ๋ชจ๋ฐ”์ผ ํ”„๋กœ์„ธ์„œ์˜ ๋ฐœ์ „๋ฐฉํ–ฅ์€ ์ €์ „๋ ฅ ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ…์ด๋‹ค. ์ด ๋Ÿฌํ•œ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋ฐ”์ผ ํ”„๋กœ์„ธ์„œ ๊ธฐ์ˆ ์€ ๋ฉ€ํ‹ฐ์ฝ” ์–ด ํ˜•ํƒœ๋กœ ๋ฐœ์ „ํ•ด ๊ฐ€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด NVIDIA์˜ ์ตœ์‹  ์‘์šฉํ”„ ๋กœ์„ธ์„œ์ธ Tegra3์˜ ๊ฒฝ์šฐ ์ฟผ๋“œ์ฝ”์–ด ARM Corte

๋ชฉ์ฐจ BUG ๋ฌธ๋ฒ•์—๋งž์ง€์•Š๋Š”์งˆ์˜๋ฌธ์ˆ˜ํ–‰์‹œ, ์—๋Ÿฌ๋ฉ”์‹œ์ง€์—์งˆ์˜๋ฌธ์˜์ผ๋ถ€๋งŒ๋ณด์—ฌ์ฃผ๋Š”๋ฌธ์ œ๋ฅผ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค... 3 BUG ROUND, TRUNC ํ•จ์ˆ˜์—์„œ DATE ํฌ๋งท IW ๋ฅผ์ถ”๊ฐ€์ง€์›ํ•ฉ๋‹ˆ๋‹ค... 5 BUG ROLLUP/CUBE ์ ˆ์„ํฌํ•จํ•˜๋Š”์งˆ์˜๋Š” SUBQUE

LCD Display

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Sena Technologies, Inc. HelloDevice Super 1.1.0

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

[ ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ 1] 2 ์ฃผ์ฐจ 3 ์ฐจ์‹œ. ํฌ์ธํ„ฐ์™€๊ตฌ์กฐ์ฒด 2 ์ฃผ์ฐจ 3 ์ฐจ์‹œํฌ์ธํ„ฐ์™€๊ตฌ์กฐ์ฒด ํ•™์Šต๋ชฉํ‘œ 1. C ์–ธ์–ด์—์„œ๊ฐ€์žฅ์–ด๋ ค์šดํฌ์ธํ„ฐ์™€๊ตฌ์กฐ์ฒด๋ฅผ์„ค๋ช…ํ• ์ˆ˜์žˆ๋‹ค. 2. Call By Value ์™€ Call By Reference ๋ฅผ๊ตฌ๋ถ„ํ• ์ˆ˜์žˆ๋‹ค. ํ•™์Šต๋‚ด์šฉ 1 : ํ•จ์ˆ˜ (Functi

Dialog Box ์‹คํ–‰ํŒŒ์ผ์„ Web์— ํฌํ•จ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

untitled

DE1-SoC Board

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

chapter4

C++ Programming

USER GUIDE

์ž„๋ฒ ๋””๋“œ์‹œ์Šคํ…œ์„ค๊ณ„๊ฐ•์˜์ž๋ฃŒ 6 system call 2/2 (2014 ๋…„๋„ 1 ํ•™๊ธฐ ) ๊น€์˜์ง„ ์•„์ฃผ๋Œ€ํ•™๊ต์ „์ž๊ณตํ•™๊ณผ

Microsoft PowerPoint - chap02-Cํ”„๋กœ๊ทธ๋žจ์‹œ์ž‘ํ•˜๊ธฐ.pptx

์‰ฝ๊ฒŒ ํ’€์–ด์“ด C ํ”„๋กœ๊ทธ๋ž˜๋ฐ

MPLAB C18 C

2 PX-8000๊ณผ RM-8000/LM-8000๋“ฑ์˜ ๊ด€๋ จ ์ œํ’ˆ์€ ์‹œ์Šคํ…œ์˜ ๊ฐ„ํŽธํ•œ ์„ค์น˜์™€ ์‰ฌ์šด ์šด์˜์— ๋Œ€ํ•œ ๊ณ ๊ธ‰ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ์ปจํŠธ๋กค๋Ÿฌ์ธ PX-8000์˜ BGM์ž…๋ ฅ์†Œ์Šค๋ฅผ 8๊ฐœ์˜ ๋กœ์ปฌ์ง€

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

Chapter #01 Subject

ETOS Series ์‚ฌ์šฉ์„ค๋ช…์„œ

Chap7.PDF

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

๋ณธ๊ต์žฌ๋Š”์ˆ˜์—…์šฉ์œผ๋กœ์ œ์ž‘๋œ๊ฒŒ์‹œ๋ฌผ์ž…๋‹ˆ๋‹ค. ์˜๋ฆฌ๋ชฉ์ ์œผ๋กœ์‚ฌ์šฉํ• ๊ฒฝ์šฐ์ €์ž‘๊ถŒ๋ฒ•์ œ 30 ์กฐํ•ญ์—์˜๊ฑฐ๋ฒ•์ ์ฒ˜๋ฒŒ์„๋ฐ›์„์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. [ ์‹ค์Šต ] ์Šค์œ„์น˜์žฅ๋น„์ดˆ๊ธฐํ™” 1. NVRAM ์—์ €์žฅ๋˜์–ด์žˆ๋Š” 'startup-config' ํŒŒ์ผ์ด์žˆ๋‹ค๋ฉด, ์‚ญ์ œ๋ฅผ์‹ค์‹œํ•œ๋‹ค. SWx>enable SWx#erase sta

<BFB5BBF3C1A4BAB8C3B3B8AEBDC3BDBAC5DB20BFACB1B82E687770>

Microsoft PowerPoint - chap13-์ž…์ถœ๋ ฅ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.pptx

1

K&R2 Reference Manual ๋ฒˆ์—ญ๋ณธ

4S 1์ฐจ๋…„๋„ ํ‰๊ฐ€ ๋ฐœํ‘œ์ž๋ฃŒ

Microsoft PowerPoint - additional01.ppt [ํ˜ธํ™˜ ๋ชจ๋“œ]

UI TASK & KEY EVENT

2002๋…„ 2ํ•™๊ธฐ ์ž๋ฃŒ๊ตฌ์กฐ

Building Mobile AR Web Applications in HTML5 - Google IO 2012

Microsoft PowerPoint - 3ร€รร‚ยฐ_ยบยฏยผรถยฟร ยปรณยผรถ.ppt

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 13prac.pptx

No Slide Title

Open GL

Special Theme _ ๋ชจ๋ฐ”์ผ์›น๊ณผ ์Šค๋งˆํŠธํฐ ๋ณธ ๊ณ ์—์„œ๋Š” ๋ชจ๋ฐ”์ผ์›น์—์„œ์˜ ๋‹จ๋ง API์ธ W3C DAP (Device API and Policy) ์˜ ํ‘œ์ค€ ๊ฐœ๋ฐœ ํ˜„ํ™ฉ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๊ณ  ๊ด€ ๋ จํ•˜์—ฌ ๊ฐœ๋ฐœ ์ค‘์ธ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•˜์—ฌ ์ดํ•ด๋ฅผ ๋•๊ณ ์ž ํ•œ๋‹ค. 2. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋„ค์ด

Microsoft PowerPoint - 11์ฃผ์ฐจ_Android_GoogleMap.ppt [ํ˜ธํ™˜ ๋ชจ๋“œ]

MAX+plus II Getting Started - ๋ฌด์ž‘์ •๋”ฐ๋ผํ•˜๊ธฐ

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

ๆญฏ์ด์‹œํ™).PDF

01์ด๊ตญ์„ธ_ok.hwp

API ๋งค๋‰ด์–ผ

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

๊ต์œก2 ? ๊ทธ๋ฆผ

API ๋งค๋‰ด์–ผ

untitled

์Šฌ๋ผ์ด๋“œ 1

๊ฐ•์˜10

11๊ฐ•-ํž™์ •๋ ฌ.ppt

PowerPoint ํ”„๋ ˆ์  ํ…Œ์ด์…˜

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Microsoft PowerPoint - chap10-ํ•จ์ˆ˜์˜ํ™œ์šฉ.pptx

์Šฌ๋ผ์ด๋“œ 1

๋ชฉ์ฐจ ํฌ์ธํ„ฐ์˜๊ฐœ์š” ๋ฐฐ์—ด๊ณผํฌ์ธํ„ฐ ํฌ์ธํ„ฐ์˜๊ตฌ์กฐ ์‹ค๋ฌด์‘์šฉ์˜ˆ์ œ C 2

adfasdfasfdasfasfadf

DataBinding

์–ด๋Œ‘ํ„ฐ๋ทฐ

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Transcription:

6. EFL ์ค‘๊ธ‰๊ธฐ๋Šฅํ™œ์šฉ 6.1 Elementary Theme 6.2 3D Visual Effect 6.3 Integrate with OpenGL ES 6.4 Multi-Threaded EFL App

6.1 Elementary Theme - Theme Change - Theme Extension

6.1 Elementary Theme - Theme Change Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 3

6.1 Elementary Theme - Theme Change Theme ์„ํ†ตํ•ด์œ„์ ฏ์˜ Look & Feel ์„๊ฒฐ์ •์‹œ์Šคํ…œ๊ธฐ๋ฐ˜์˜ Theme ์ œ๊ณต์ถ”๊ฐ€ Theme ์—๋Œ€ํ•œ๋™์  Theme ๋ณ€๊ฒฝ๊ฐ€๋Šฅ Theme ํ™•์žฅ์„ํ†ตํ•œ์œ„์ ฏ Customizing ๊ฐ€๋Šฅ tizen-black elm_widget widget style (look & feel) widget body (functionality) tizen-white widget style (look & feel) Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 4

6.1 Elementary Theme - Theme Change 1. Theme ํŒŒ์ผ์œ„์น˜ default tizen-hd /usr/local/share/elementary/themes/default.edj /usr/local/share/elementary/themes/tizen-hd.edj 2. ํ˜„์žฌ Theme ์ •๋ณด์œ„์น˜ elm_config PROFILE ์—๋”ฐ๋ผํด๋”๊ฐ€๋‹ค๋ฆ„ ex) default, mobile /usr/local/share/elementary/config/mobile/base.cfg 3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ELM_THEME=theme01:theme02:elementary elementary/config/mobile/base.src 4. Theme ์—์˜ํ•ด๊ฒฐ์ •๋˜๋Š”์†์„ฑ - Image, Color, Layouting, String, Font - Transition, Programs Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 5

6.1 Elementary Theme - Theme Change 4. ๊ฐ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ elementary config ํŒŒ์ผ์„ reload 3. X ์„œ๋ฒ„๋Š” root ์œˆ๋„์šฐ์˜ property ๋ณ€๊ฒฝ์—๋Œ€ํ•œ์ด๋ฒคํŠธ๋ฅผ๊ฐ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— broadcasting 1. ๊ฐ Elementary ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ elm_init() ๋‹จ๊ณ„์—์„œ root ์œˆ๋„์šฐ์˜ property( ELM_CONFIG_mobile ) ์— property ๋ณ€๊ฒฝ์—๋Œ€ํ•œ handler ๋ฅผ์ถ”๊ฐ€ X server root window property name: ELM_CONFIG_mobile ex) Setting App. 2. ํŠน์ •์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Theme ๋ณ€๊ฒฝํ›„ root ์œˆ๋„์šฐ์˜ property ๋ฅผ๋ณ€๊ฒฝ - elm_theme_set() - elm_config_all_flush() Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 6

6.1 Elementary Theme - Theme Change Elementary Theme Change ์˜ˆ์ œ source: advanced_samples/theme_change.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 7

6.1 Elementary Theme - Theme Extension ํŠน์ •์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—ํŠนํ™”๋œ์œ„์ ฏ Look & Feel ์„์ ์šฉํ•˜๊ณ ์žํ• ๋•Œ์œ„์ ฏ Customizing ์„์ด์šฉ elm_theme_extension_add(null, /usr/apps/org.tizen.app/data/app_theme.edj ); elm_object_style_set(button, new_style ); ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์ •์˜ํ•œ๋ฒ„ํŠผ์Šคํƒ€์ผ app-theme Extension Theme: /usr/apps/org.tizen.app/data/app_theme.edj ๊ธฐ๋ณธํ…Œ๋งˆ์—์„œ์ œ๊ณตํ•˜๋Š”๋ฒ„ํŠผ์Šคํƒ€์ผ tizen-hd Basic Themes: /usr/share/elementary/themes/tizen-hd.edj Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 8

6.1 Elementary Theme - Theme Change Elementary ๋‚ด๋ถ€์ ์œผ๋กœ๋ฆฌ์ŠคํŠธ๋ฅผ๊ตฌ์ถ•ํ•˜์—ฌ Theme ์ ์šฉ์ˆœ์„œ๋ฅผ์ •ํ•จ Theme ๋ฆฌ์ŠคํŠธ๋ฅผ๊ตฌ์ถ•ํ•˜๋Š”๋ฐฉ๋ฒ• ์‹œ์Šคํ…œ๊ธฐ๋ฐ˜ Theme (Basic Themes) Elementary Config ์—๋ช…์‹œ๋œ Theme ์ด๋ฆ„์œผ๋กœ๊ฒฐ์ • ELM_THEME ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ๊ฒฐ์ • - ex) ELM_THEME=tizen - ex) ELM_THEME=tizen:tizen2:tizen3 ( ์ตœ๋Œ€ 3 ๊ฐœ์ง€์ •๊ฐ€๋Šฅ ) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ธฐ๋ฐ˜ Theme Overlay Themes Basic Theme ๋ณด๋‹ค๋†’์€์ˆœ์œ„ elm_theme_overlay_add(); elm_theme_overlay_del(); Extension Themes Basic Theme ๋ณด๋‹ค๋‚ฎ์€์ˆœ์œ„ elm_theme_extension_add(); Custom Themes Overlay 2...... Overlay 1 Pantheon tizen Default Extension 1...... Extension 1 Extension 2 Basic Themes elm_theme_extension_del(); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 9

6.1 Elementary Theme - Theme Extension Widget Customizing ์‹ค์Šต source: sample/data/edc/theme_ext.edc Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 10

6.1 Elementary Theme - Theme Extension Widget Customizing ์‹ค์Šต 1. elm_theme_extension_add() ์œผ๋กœ extension theme ํŒŒ์ผ์ง€์ • 2. Left Arrow, Right Arrow Button ์— sample ์Šคํƒ€์ผ์ ์šฉ source: kakaotalk/src/main.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 11

6.1 Elementary Theme - Theme Extension Widget Customizing ์‹ค์Šต 1. ๋ฒ„ํŠผํ…Œ๋งˆํŒŒ์ผ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋ณต์‚ฌ (efl/efl/elementary/data/theme/widget/button.edc -> sample/data/edc/theme_ext.edc) 2. theme_ext.edc ๋ฅผ์ปดํŒŒ์ผํ•˜๋„๋ก Makefile ์ˆ˜์ • 3. ๋ณต์‚ฌํ•œ button group ์˜์ด๋ฆ„๋ณ€๊ฒฝ (default -> sample) 4. ๋ฒ„ํŠผ์˜๋ฐฐ๊ฒฝ์ด๋ฏธ์ง€ invisible ํ•˜๊ฒŒ๋ณ€๊ฒฝ source: sample/data/edc/theme_ext.edc Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 12

6.2 3D Visual Effect - Evas Map - Proxy Object - EDC Map - Elm Transition

6.2 3D Visual Effect ์›์ดˆ์ ๊ตฌํ˜„๋ฐฉ๋ฒ• : Evas_Map 3D Rendering Interface ์ƒ๋Œ€์ ์œผ๋กœ๊ตฌํ˜„์ด์–ด๋ ค์šฐ๋‚˜ flexible ํ•จ ์Šคํฌ๋ฆฝํŠธ๊ธฐ๋ฐ˜๊ตฌํ˜„๋ฐฉ๋ฒ• : EDC map Evas_Map ์Šคํฌ๋ฆฝํŠธ wrapping EDC ๋‚ด Part ์—์ดํŽ™ํŠธ๋ฅผ์ ์šฉํ• ๋•Œ์ ํ•ฉ ๋น ๋ฅด๊ณ ๊ฐ„๋‹จํ•œ๊ตฌํ˜„๋ฐฉ๋ฒ• : Elm_Transit Predefined Effects Helper Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 14

6.2 3D Visual Effect Evas Map Evas Map - Evas Map์„์ด์šฉํ•˜๋ฉด Object ๋‹จ์œ„๋กœ์›ํ•˜๋Š”๋น„์ฃผ์–ผ๋ณ€ํ™˜์ด๊ฐ€๋Šฅ - ํ•˜๋‚˜์˜ Evas Map์€ 4 ๊ฐœ์˜์ •์ ์œผ๋กœ๊ตฌ์„ฑ - UV ๋งคํ•‘์„์ด์šฉํ•˜์—ฌํ…์Šค์ฒ˜์œ„์น˜๊ฒฐ์ • - ์ •์ ๋‹จ์œ„๋กœ๊ด‘์›, ์ƒ‰์ƒ์ ์šฉ๊ฐ€๋Šฅ - Rotation, Zoom, 3D Perspective ๊ณผ๊ฐ™์€๊ธฐ๋Šฅ์ œ๊ณต Evas Map 3D Effects Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 15

6.2 3D Visual Effect Evas Map Texture Mapping Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 16

6.2 3D Visual Effect Evas Map Evas Map Mapping ์˜ˆ์ œ source: advanced_samples/evas_map_mapping.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 17

6.2 3D Visual Effect Evas Map Evas Map Util APIs // ํ˜„์žฌ์˜ค๋ธŒ์ ํŠธ์˜์œ„์น˜์™€ํฌ๊ธฐ๋ฅผ Evas Map ์˜ Point ์™€ UV ์—์ ์šฉ void evas_map_util_points_populate_from_object_full (Evas_Map *m, const Evas_Object *obj, Evas_Coord z); void evas_map_util_zoom (Evas_Map *m, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy); void evas_map_util_rotate (Evas_Map *m, double degree, Evas_Coord cx, Evas_Coord cy); void evas_map_util_3d_rotate (Evas_Map *m, double dx, double dy, double dz, Evas_Coord cx, Evas_Coord cy, Evas_Coord cz); // ์›๊ทผํšจ๊ณผ๋ฅผ์ฃผ๊ธฐ์œ„ํ•œ์นด๋ฉ”๋ผ์œ„์น˜๋ฐ์ดˆ์ ์„ค์ • //HINT: Scaling = (FOCAL (rate * FOCAL)) * (1 / rate); void evas_map_util_3d_perspective (Evas_Map *m, Evas_Coord px, Evas_Coord py, Evas_Coord z0, Evas_Coord foc); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 18

6.2 3D Visual Effect Evas Map Evas Map ์˜ˆ์ œ source: advanced_samples/evas_map_rotation.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 19

6.2 3D Visual Effect Proxy Object Proxy Object ํ•˜๋‚˜์˜์˜ค๋ธŒ์ ํŠธ๋ฅผ์—ฌ๋Ÿฌ์œ„์น˜์—์ถœ๋ ฅํ•˜๊ณ ์žํ• ๋•Œ์ด์šฉ Evas Object Image๋ฅผ์ด์šฉํ•˜์—ฌ Proxy ์˜ค๋ธŒ์ ํŠธ๊ตฌํ˜„๋ฆฌ์†Œ์Šค๋Š”์›๋ณธ์˜ค๋ธŒ์ ํŠธ๋งŒ๋ณด์œ ํ•˜๋ฏ€๋กœ๋ฆฌ์†Œ์Šค์ ˆ์•ฝ์ด๊ฐ€๋Šฅ Proxy APIs // ํ”„๋ก์‹œ์˜๋Œ€์ƒ (Source) ์„์ง€์ • void evas_object_image_source_set (Evas_Object *proxy, Evas_Object *source); // ์†Œ์Šค์˜ค๋ธŒ์ ํŠธ์˜ visibility ์„ค์ • void evas_object_image_visible_set (Evas_Object *proxy, Eina_Bool visible); // ํ”„๋ก์‹œ๋ฅผํ†ตํ•ด์†Œ์Šค์˜ค๋ธŒ์ ํŠธ๊ฐ€์ด๋ฒคํŠธ๋ฅผ์ „๋‹ฌ๋ฐ›์„์ง€๊ฒฐ์ • void evas_object_image_source_events_set (Evas_Object *proxy, Eina_Bool source_events); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 20

6.2 3D Visual Effect Proxy Object Proxy Object ์˜ˆ์ œ source: advanced_samples/proxy.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 21

6.2 3D Visual Effect EDC Map EDC Map ์„์ด์šฉํ•œ 3D ํšจ๊ณผ๊ตฌํ˜„ํ•˜๊ธฐ EDC์˜ํŠน์ • Part์—์ดํŽ™ํŠธ๋ฅผ์ ์šฉํ•˜๊ธฐ์œ„ํ•œ๋ฐฉ๋ฒ• Evas Map์˜๊ธฐ๋Šฅ๊ณผ๋™์ผ EDC์˜ map ์ธํ„ฐํŽ˜์ด์Šค๋Š”์ข€๋”์ œ์•ฝ์ ์ž„ collections.group.parts.part.description.map.perspective collections.group.parts.part.description.map.light collections.group.parts.part.description.map.rotation.center collections.group.parts.part.description.map.rotation.x collections.group.parts.part.description.map.rotation.y collections.group.parts.part.description.map.rotation.z collections.group.parts.part.description.map.on collections.group.parts.part.description.map.smooth collections.group.parts.part.description.map.perspective.zplane collections.group.parts.part.description.map.perspective.focal Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 22

6.2 3D Visual Effect EDC Map EDC Map ์˜ˆ์ œ source: sample/data/edc/layout.edc Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 23

6.2 3D Visual Effect Elm Transit Elm Transit ๋ฏธ๋ฆฌ์ •์˜๋˜์–ด์žˆ๋Š”์ดํŽ™ํŠธํƒ€์ž…๋ฐ์‚ฌ์šฉ์ž์ •์˜์ดํŽ™ํŠธ๋ฅผ์ด์šฉํ•˜์—ฌํšจ๊ณผ๊ตฌํ˜„ Contain ๋œ์˜ค๋ธŒ์ ํŠธ๊ฐ€์•„๋‹Œ, ๋…๋ฆฝ์˜ค๋ธŒ์ ํŠธ์—์ดํŽ™ํŠธ์ ์šฉ์‹œ์œ ์šฉ ์ดํŽ™ํŠธ๊ตฌํ˜„๋ถ€๊ฐ€ํ”„๋กœ๊ทธ๋žจ๋ฐ”์ด๋„ˆ๋ฆฌ์—ํฌํ•จ๋˜๋ฏ€๋กœ theme changeable ํ•˜์ง€์•Š์Œ ์ƒ๋Œ€์ขŒํ‘œ, ์Šค์ผ€์ผ์„๊ณ ๋ คํ•ด์ฃผ์–ด์•ผํ•จ ์ œ๊ณตํ•˜๋Š”์ดํŽ™ํŠธํƒ€์ž… Translation Resizing Zoom Flip Resizable Flip Wipe Fade Blend Rotation Image Animation Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 24

6.2 3D Visual Effect Elm Transit Use Case 1. Create Transit (elm_transit_add) 2. Add Objects in Transit (elm_transit_object_add) 2. Add Effects in Transit (elm_transit_effect_add) 3. Set attributes on Transit (elm_transit_del_cb_set) : ์ดํŽ™ํŠธ๋๋‚ ์‹œํ˜ธ์ถœ๋˜๋Š”์‚ฌ์šฉ์ž์ฝœ๋ฐฑํ•จ์ˆ˜์ง€์ • (elm_transit_repeat_times_set) : ์ดํŽ™ํŠธ๋ฐ˜๋ณตํšŸ์ˆ˜์ง€์ • (elm_transit_tween_mode_set) : ๊ฐ€์†์Šคํƒ€์ผ์ง€์ • ( ์„ ํ˜•, ๊ฐ€์†, ๊ฐ์†, ๊ฐ€์†ํ›„๊ฐ์†๋“ฑ ) (elm_transit_event_enabled_set) : ์ดํŽ™ํŠธ๋„์ค‘ํ„ฐ์น˜์ž…๋ ฅ๋ฐฉ์ง€์—ฌ๋ถ€์„ค์ • (elm_transit_auto_reverse_set) : ํšจ๊ณผ๋˜๊ฐ๊ธฐ๊ธฐ๋Šฅ 4. Run Transit (elm_transit_go) Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 25

6.2 3D Visual Effect Elm Transit ํ•˜๋‚˜์˜ Transit ์—์—ฌ๋Ÿฌ๊ฐœ์˜์ดํŽ™ํŠธ๋ฅผ๋ณตํ•ฉ๊ฐ€๋Šฅ Rotation Color Translation elm_transit_effect_rotation_add elm_transit_effect_color elm_transit_effect_translation_add Elm_Transit RUN ALL ADDED EFFECTS! * ์œ ์‚ฌํ•œ์†์„ฑ์˜์ดํŽ™ํŠธ๋Š”ํ•ฉ์„ฑ๋ ์ˆ˜์—†์Œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 26

6.2 3D Visual Effect Elm Transit Elm Transit ์˜ˆ์ œ source: advanced_samples/transit.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 27

6.2 3D Visual Effect Elm Transit Elm Transit ์‹ค์Šต source: sample/src/main.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 28

6.3 Integrate with OpenGL ES - Rendering Backened System - Image Object Native Surface - Evas GL - Elm GLView

6.3 Integrate with OpenGL ES Rendering Backened System Rendering on Software Backened Elementary Edje Ecore Ecore X Evas Evas software backend xlib LCD controller X shared Mem. X Server Update window areas Frame buffer 60Hz Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 30

6.3 Integrate with OpenGL ES Rendering Backened System Rendering on GLES Backened Elementary Evas Evas OpenGL ES backend Edje Ecore Ecore X OpenGL ES EGL for X OpenGL ES H/W xlib LCD controller back front Double buffer X Server Update window area Frame buffer /dev/fb1 60Hz Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 31

6.3 Integrate with OpenGL ES Image Native Surface evas_object_image_native_surface_set() Evas_Object_Rect Evas Runtime Hello World! Hello World! Evas_Object_Text GL Rendering Engine X11 Output Evas Engine Module Output Evas_Object_Image SW Rendering Engine Buffer Output X11 Rendering Engine SDL Output OpenGL App (surface_a ie. Pixmap or texture) Evas_Object_Image (img_obj_a) evas_object_image_native_surface_set(img_obj_a, surface_a) Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 32

6.3 Integrate with OpenGL ES Image Native Surface Name: evas_object_image_native_surface_set () Parameters:. Evas_Object *obj. Evas_Native_Surface *surf Description: ์ด๋ฏธ์ง€์˜ค๋ธŒ์ ํŠธ์—์„œ์ด๋ฏธ์ง€์†Œ์Šค๋กœ์ด์šฉํ•  surface ์„ค์ • Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 33

6.3 Integrate with OpenGL ES Evas GL Evas_GL evas_object_image_native_surface_set() ์„์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€๋ณต์žกํ•จ Native surface ์ฒ˜๋ฆฌ๋ฌธ์ œ (i.e. X Pixmap) GLX, WGL๋“ฑ์˜์˜์กด์„ฑ๋ฌธ์ œ Evas_GL ์€ Evas ์™€ OpenGL ๊ฐ„์˜ Glue Layer ๋ฅผ์ œ๊ณต Surface ์ƒ์„ฑ Context ์ƒ์„ฑ Evas_GL_API ๊ตฌ์กฐ์ฒด๋กœ๋ชจ๋“  GLES 2.0 ํ•จ์ˆ˜๋“ค์„๋ž˜ํ•‘ GL ์˜์กด์„ฑ์€์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด์•„๋‹Œํ”Œ๋žซํผ๋ ˆ๋ฒจ๋กœ์™„ํ™” (Desktop GL vs GLES) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” Evas_GL_API ๋ฅผ์ด์šฉํ•˜์—ฌ GL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋ถ€ํ„ฐ๋””ํŽœ๋˜์‹œํ•ด์†Œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 34

6.3 Integrate with OpenGL ES Evas GL Evas_GL APIs Evas_GL void *evas_gl_new (Evas *e); evas_gl_free (Evas_GL *evas_gl); Evas_GL_Surface *evas_gl_surface_create (Evas_GL *evas_gl, Evas_GL_Config *cfg, int w, int h); void evas_gl_surface_destroy (Evas_GL *evas_gl, Evas_GL_Surface *surf); Evas_GL_Context *evas_gl_context_create (Evas_GL *evas_gl, Evas_GL_Context *share_ctx); void Eina_Bool evas_gl_context_destroy (Evas_GL *evas_gl, Evas_GL_Context *ctx); evas_gl_make_current (Evas_GL *evas_gl, Evas_GL_Surface *surf, Evas_GL_Context *ctx); Evas_GL_API *evas_gl_api_get (Evas_GL *evas_gl); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 35

6.3 Integrate with OpenGL ES Evas GL Evas surface ๋Š”๋‹ค์Œ๊ณผ๊ฐ™์€์†์„ฑ๋“ค์„๊ฐ€์ง Color RGB or RGBA ์ฑ„๋„๋‹น 8 ๋น„ํŠธ or ์ฑ„๋„๋‹น 32 ๋น„ํŠธ ( ๋ชจ๋ฐ”์ผํƒ€๊ฒŸ์—์„œ๋Š”์ง€์›์•ˆ๋จ ) Depth 8 ~ 32 bits Stencil 1 ~ 16 bits Evas GL surface format ๊ตฌ์กฐ์ฒด ์‚ฌ์šฉ์ž๊ฐ€์ง€์ •ํ•œ๊ฒƒ๊ณผ์‹ค์ œ Evas ๊ฐ€์‚ฌ์šฉํ•˜๋Š”ํฌ๋งท์€๋‹ค๋ฅผ์ˆ˜๋„์žˆ์Œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 36

6.3 Integrate with OpenGL ES Evas GL Evas_GL Surface Creation / Deletion ์‚ฌ์šฉ์ž๊ฐ€์„ค์ •์œผ๋กœ Surface ์ƒ์„ฑ Evas๋Š” Surface ์ƒ์„ฑ์„์œ„ํ•ด๋‚ด๋ถ€์ ์œผ๋กœ FBO์™€ Render Buffers๋ฅผ์ด์šฉ Evas_GL_Surface *evas_gl_surface_create (Evas_GL *evas_gl, Evas_GL_Config *cfg, int w, int h); void evas_gl_surface_destroy (Evas_GL *evas_gl, Evas_GL_Surface *surf); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 37

6.3 Integrate with OpenGL ES Evas GL Context creation/ deletion Context ๋ฆฌ์†Œ์Šค๋Š” OpenGL ๋ช…์„ธ์„œ์—๋”ฐ๋ผ๊ณต์œ ๋ ์ˆ˜์žˆ์Œ๋“œ๋ผ์ด๋ฒ„๊ตฌํ˜„์—์˜์กด Evas_GL_Context *evas_gl_context_create (Evas_GL *evas_gl, Evas_GL_Context *share_ctx); void Eina_Bool evas_gl_context_destroy (Evas_GL *evas_gl, Evas_GL_Context *ctx); evas_gl_make_current (Evas_GL *evas_gl, Evas_GL_Surface *surf, Evas_GL_Context *ctx); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 38

6.3 Integrate with OpenGL ES Evas GL Evas GL APIs ๋‹ค๋ฅธ๋ฒ„์ „์˜ GL ์˜์กด์„ฑํ”ผํ•˜๊ธฐ์œ„ํ•œ๋ฐฉ๋ฒ• Evas_GL_API *evas_gl_api_get (Evas_GL *evas_gl); #define EVAS_GL_API_VERSION 1 struct _Evas_GL_API { int version; /* version 1: */ void (*glactivetexture) (GLenum texture); void (*glattachshader) (GLuint program, GLuint shader); void (*glbindattriblocation) (GLuint program, GLuint index, const char* name); void (*glbindbuffer) (GLenum target, GLuint buffer); void (*glbindframebuffer) (GLenum target, GLuint framebuffer);... void (*glviewport) (GLint x, GLint y, GLsizei width, GLsizei height); /* Extensions */ void (*glgetprogrambinary) (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryformat, void *binary); } /* future calls will be added down here for expansion */ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 39

6.3 Integrate with OpenGL ES Evas GL Evas GL ์˜ˆ์ œ ์ด๋ฏธ์ง€์˜ค๋ธŒ์ ํŠธ๊ฐ€๊ฐ€๋ ค์กŒ์–ด๋„ GL ๋ Œ๋”๋ง์„ํ•˜๋Š”๋ฌธ์ œ๊ฐ€์žˆ์Œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 40

6.3 Integrate with OpenGL ES Evas GL evas_object_image_pixels_get_callback_set() ์ด๋ฏธ์ง€์˜ค๋ธŒ์ ํŠธ๋ฅผ update ํ•˜๊ธฐ์œ„ํ•ด dirty ์—ฌ๋ถ€๋งŒ์„ค์ •ํ•˜๋Š”๋ฐฉ๋ฒ• pixel get callback ์€์‹ค์ œ๋กœ์ด๋ฏธ์ง€์˜ค๋ธŒ์ ํŠธ๊ฐ€๋ณด์ผ๋•Œ์—๋งŒํ˜ธ์ถœ๋จ GL ๋ Œ๋”๋ง์ดํ•„์š”์—†์„๋•Œ์—๋Š”ํ˜ธ์ถœ๋˜์ง€์•Š์•„๋ถˆํ•„์š”ํ•œ CPU ์‚ฌ์ดํด์„๋ฐฉ์ง€ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 41

6.3 Integrate with OpenGL ES Evas GL ์˜ˆ์ œ ๋ถˆํ•„์š”ํ•œ๋ Œ๋”๋ง์„๋ฐฉ์ง€ํ• ์ˆ˜์žˆ์œผ๋‚˜๋ถˆํ•„์š”ํ•œ์ปจํ…์ŠคํŠธ์Šค์œ„์นญ์ด๋ฐœ์ƒํ• ์ˆ˜์žˆ์Œ. ์ปจํ…์ŠคํŠธ์Šค์œ„์นญ์ด์˜ค๋ฒ„ํ—ค๋“œ์ด์Šˆ๊ฐ€๋˜๋ฉด animator ์—์„œ๋ Œ๋”๋งํ•˜๋Š”๋ฐฉ์‹์„์ด์šฉํ• ๊ฒƒ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 42

6.3 Integrate with OpenGL ES Evas GL ํ˜„์žฌ Evas_GL ์€ gl_x11 backened ์—์„œ๋งŒ๋™์ž‘ Evas is not MT safe! gl_x11 backend ์—์„œ๋Š”, Evas ๋‚ด๋ถ€์ ์œผ๋กœ Canvas Composition ์„์œ„ํ•ด OpenGL ์„์ด์šฉ ์‚ฌ์šฉ์ž๋Š” GL ์ปค๋งจ๋“œ๋ฅผ์‚ฌ์šฉํ•˜๊ธฐ์ „์—๋งค๋ฒˆ evas_gl_make_current() ๋ฅผํ˜ธ์ถœํ•ด์ฃผ์–ด์•ผํ•จ ์Šค๋ ˆ๋“œ๋™๊ธฐํ™”๋Š”์‚ฌ์šฉ์ž์˜๋ชซ Evas_GL surface format Evas_GL ์€๋‚ด๋ถ€์ ์œผ๋กœ FBO ๋ฅผ์ด์šฉํ•˜๋ฏ€๋กœ๋“œ๋ผ์ด๋ฒ„์—๋”ฐ๋ผ์ด์šฉ๊ฐ€๋Šฅํ•œํฌ๋งท์ด๋‹ค๋ฅผ์ˆ˜์žˆ์Œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 43

6.3 Integrate with OpenGL ES Evas GL Evas_GL ์„์ด์šฉํ•œ๋ Œ๋”๋ง์‹ค์Šต source: advanced_samples/evas_gl.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 44

6.3 Integrate with OpenGL ES Elm GLView elm_glview GL ๋ Œ๋”๋ง๋ชฉ์ ์˜ Elementary ์œ„์ ฏ Elementary ์ปจ์…‰์˜ํŽธ์˜์„ฑ API๋ฅผ์ œ๊ณต Evas_Object void void Evas_GL_API Eina_Bool Eina_Bool Eina_Bool void void void void void *elm_glview_add(evas_object *parent); elm_glview_size_set(evas_object *obj, Evas_Coord width, Evas_Coord height); elm_glview_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height); *elm_glview_gl_api_get(const Evas_Object *obj); elm_glview_mode_set(evas_object *obj, Elm_GLView_Mode mode); elm_glview_scale_policy_set(evas_object *obj, Elm_GLView_Resize_Policy policy); elm_glview_render_policy_set(evas_object *obj, Elm_GLView_Render_Policy policy); elm_glview_init_func_set(evas_object *obj, Elm_GLView_Func func); elm_glview_del_func_set(evas_object *obj, Elm_GLView_Func func); elm_glview_resize_func_set(evas_object *obj, Elm_GLView_Func func); elm_glview_render_func_set(evas_object *obj, Elm_GLView_Func func); elm_glview_changed_set(evas_object *obj); : Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 45

6.3 Integrate with OpenGL ES Elm GLView elm_glview Use Case Typical GLView Flow: Example: Add an ELM_GLView gl = elm_glview_add (win); Set the GLView Mode (Enable Alpha, Depth, Stencil) elm_glview_mode_set (gl, ELM_GLVIEW_ALPHA ELM_GLVIEW_DEPTH); Set the Resize/ Render Policies elm_glview_resize_policy_set (gl, ELM_GLVIEW_RESIZE_POLICY_RECREATE); elm_glview_render_policy_set (gl, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND); Set the GL Drawing Function Callbacks (Init, Del, Resize, Render) elm_glview_init_func_set (gl, _init_gl); elm_glview_del_func_set (gl, _del_gl); elm_glview_resize_func_set (gl, _resize_gl); elm_glview_render_func_set (gl, _draw_gl); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 46

6.3 Integrate with OpenGL ES Elm GLView ์œ„์ ฏ์ถ”๊ฐ€ํ•จ์ˆ˜ Evas_Object *elm_glview_add(evas_object *parent); GLView ํฌ๊ธฐ์ง€์ • void elm_glview_size_set(evas_object *obj, Evas_Coord width, Evas_Coord height); void elm_glview_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height); GLView Mode- 4 ๊ฐ€์ง€์ง€์› ELM_GLVIEW_APLHA ELM_GLVIEW_DEPTH ELM_GLVIEW_STENCIL ELM_GLVIEW_DIRECT Eina_Bool elm_glview_mode_set(evas_object *obj, Elm_GLView_Mode mode); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 47

6.3 Integrate with OpenGL ES Elm GLView RESIZE POLICY - RESIZE ๋ฐœ์ƒ์‹œ์ž‘๋™์—ฌ๋ถ€๋ฅผ๊ฒฐ์ • ELM_GLVIEW_RESIZE_POLICY_RECREATE (default) ์ƒˆ๋กœ์šดํฌ๊ธฐ๋กœ surface ์žฌ์ƒ์„ฑ ELM_GLVIEW_RESIZE_POLICY_SCALE ๊ธฐ์กด surface ๋ฅผ scaling ํ•˜์—ฌ์ถœ๋ ฅ Eina_Bool elm_glview_resize_policy_set(evas_object *obj, Elm_GLView_Resize_Policy policy); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 48

6.3 Integrate with OpenGL ES Elm GLView RENDER_POLICY - ๋ Œ๋”๋ง๋ฐฉ์‹์„๊ฒฐ์ •ํ•˜๋Š”๋ฐฉ๋ฒ• ELM_GLVIEW_RENDER_POLICY_ON_DEMAND GLView ๊ฐ€๋ณด์ผ๋•Œ๋งŒ๋ Œ๋”๋ง์ˆ˜ํ–‰ (default) ELM_GLVIEW_RENDER_POLICY_ALWAYS ๋งค๋ฃจํ”„๋งˆ๋‹ค๋ฌด์กฐ๊ฑด๋ Œ๋”๋ง Eina_Bool elm_glview_render_policy_set(evas_object *obj, Elm_GLView_Render_Policy policy); Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 49

6.3 Integrate with OpenGL ES Elm GLView Init/Del ์ฝœ๋ฐฑ init_func : ๋ Œ๋”๋ฃจํ”„์—์„œํ•œ๋ฒˆ๋งŒํ˜ธ์ถœ del_func : glview ์˜ค๋ธŒ์ ํŠธ๊ฐ€์‚ญ์ œ๋ ์‹œํ˜ธ์ถœ void void elm_glview_init_func_set (Evas_Object *obj, Elm_GLView_Func func); elm_glview_del_func_set (Evas_Object *obj, Elm_GLView_Func func); Resize ์ฝœ๋ฐฑ ๋ณดํ†ต๋งคํŠธ๋ฆญ์Šค๋ฐ๋ทฐํฌํŠธ์„ค์ •์„์ˆ˜ํ–‰ void elm_glview_resize_func_set(evas_object *obj, Elm_GLView_Func func); Render ์ฝœ๋ฐฑ void elm_glview_render_func_set(evas_object *obj, Elm_GLView_Func func); Note ๋ชจ๋“  GL ์ปค๋งจ๋“œ๋Š”์œ„์ฝœ๋ฐฑ์—์„œ์ˆ˜ํ–‰ํ•ด์•ผํ•จ ์‚ฌ์šฉ์ž๋Š” make_current ๋ฅผํ•˜์ง€์•Š์•„๋„๋จ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 50

6.3 Integrate with OpenGL ES Elm GLView elm_glview_changed_set() glview๊ฐ€๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š”์‚ฌ์‹ค์„์•Œ๋ฆผ๋ณดํ†ต animation ์ฝœ๋ฐฑ์—์„œํ˜ธ์ถœ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 51

6.3 Integrate with OpenGL ES Elm GLView elm_glview ์˜ˆ์ œ source: advanced_samples/glview.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 52

6.4 Multi-Threaded EFL App - Critical Section - Ecore Thread

6.4 Multi-Threaded EFL App Critical Section Ecore_Thread, ecore_pipe_write() ๋“ฑ๋ช‡ API ๋ฅผ์ œ์™ธํ•œ๊ธฐ๋ณธ EFL API ๋Š” Thread Safe ํ•˜์ง€์•Š์Œ. ์‚ฌ์šฉ์ž๋Š” EFL Mainloop ์™€์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์Šค๋ ˆ๋“œ๊ฐ„์˜๋™๊ธฐํ™” / ์ƒํ˜ธ๋ฐฐ์ œ๋ฅผ๊ณ ๋ คํ•˜์—ฌ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„๋””์ž์ธํ•ด์•ผํ•จ. Object Race Condition! evas_object_move(obj, x, y); evas_object_resize(obj, w, h);... evas_render() { smart_calculate(obj); }... App Thread Main Loop Time Line Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 54

6.4 Multi-Threaded EFL App Ecore Thread Thread Pool Library CPU APP ํƒœ์Šคํฌ ํƒœ์Šคํฌ์Šค์ผ€์ค„๋Ÿฌ ํƒœ์Šคํฌ๋ฆฌ์ŠคํŠธ a b c ํƒœ์Šคํฌ๋ฆฌ์ŠคํŠธ d e f ์Šค๋ ˆ๋“œํ’€ ์Šค๋ ˆ๋“œํ’€ T1 T2 T1 T2 core 1 core 2 ํƒœ์Šคํฌ๋ฆฌ์ŠคํŠธ s t u ์Šค๋ ˆ๋“œํ’€ T3 T3 core 3 ํƒœ์Šคํฌ๋ฆฌ์ŠคํŠธ v w x ์Šค๋ ˆ๋“œํ’€ T4 T4 core 4 T ๋…ผ๋ฆฌ์Šค๋ ˆ๋“œ T ๋ฌผ๋ฆฌ์Šค๋ ˆ๋“œ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 55

6.4 Multi-Threaded EFL App Critical Section Critical Section ecore_thread_main_loop_begin(), ecore_thread_main_loop_end() ecore_main_loop_thread_safe_call_sync() ecore_main_loop_thread_safe_call_async() Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 56

6.4 Multi-Threaded EFL App Critical Section ecore_thread_main_loop_begin(), ecore_thread_main_loop_end() Main Loop ์™€์Šค๋ ˆ๋“œ๊ฐ„ Critical Section ์„์ง€์ •ํ•˜๋Š”๋ฐฉ๋ฒ• Critical Section ๋‚ด์—์„œ๋Š” EAPI ํ˜ธ์ถœ๊ฐ€๋Šฅ ecore_thread_main_loop_begin() ํ˜ธ์ถœ์‹œ์ ์—๋Š” main loop ๋‚ด๋ถ€์ ์œผ๋กœ thread ๋™๊ธฐํ™”์ž‘์—…์ด์ˆ˜ํ–‰๋˜๋ฏ€๋กœ๋Œ€๊ธฐ๊ฐ€๋ฐœ์ƒํ• ์ˆ˜์žˆ์Œ ๊ฐ€๋Šฅํ•œ์ตœ์†Œํ•œ์˜ํ˜ธ์ถœ๋กœ๊ณผ๋ถ€ํ•˜๋ฅผ๋ฐฉ์ง€ํ• ๊ฒƒ ecore_main_loop_thread_safe_call_sync() ๋„๋™์ผํ•œ๊ธฐ๋Šฅ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 57

6.4 Multi-Threaded EFL App Critical Section ecore_thread_main_loop_begin/end() ์˜ˆ์ œ source: advanced_samples/ecore_thread_main_loop.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 58

6.4 Multi-Threaded EFL App Critical Section ecore_main_loop_thread_safe_call_sync() ์˜ˆ์ œ source: advanced_samples/ecore_main_loop_thread_safe_call_sync.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 59

6.4 Multi-Threaded EFL App Critical Section Critical Section ์ฒ˜๋ฆฌ์‹œ์  Critical Section ์ฒ˜๋ฆฌ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 60

6.4 Multi-Threaded EFL App Critical Section ecore_main_loop_thread_safe_call_async() Main Loop ์™€์Šค๋ ˆ๋“œ๊ฐ„ Critical Section ์„์ง€์ •ํ•˜๋Š”๋ฐฉ๋ฒ• Fire and Forgot ๋ฐฉ์‹์œผ๋กœ API ํ˜ธ์ถœ์‹œ๋ฐ”๋กœ API ๋ฐ˜ํ™˜ ecore_main_loop_thread_safe_call_sync() ํ˜ธ์ถœ์‹œ์ ์—๋Š” main loop ๋‚ด๋ถ€์ ์œผ๋กœ thread ๋™๊ธฐํ™”์ž‘์—…์ด์ˆ˜ํ–‰๋˜๋ฏ€๋กœ๋Œ€๊ธฐ๊ฐ€๋ฐœ์ƒํ• ์ˆ˜์žˆ์œผ๋‚˜, async() ๋Š” callback ํ•จ์ˆ˜๋ฅผ queue ์—์ถ”๊ฐ€ํ›„๋น„๋™๊ธฐ์ ์œผ๋กœ์ˆ˜ํ–‰๋˜์–ด Thread ๋Œ€๊ธฐ๋ฅผํ”ผํ• ์ˆ˜์žˆ์Œ 2 void *sync_cb() { } ecore_main_loop_iterate 3 void async_cb() { } 1 void *thread_run() { 1 void *thread_run() { ecore_main_loop_thread_saf e_call_sync(sync_cb, ); ecore_main_loop_thread_saf e_call_async(async_cb, ); 3 usleep(1000); 2 usleep(1000); ๋Œ€๊ธฐ๊ตฌ๊ฐ„ file descriptor handling } } App Thread(sync) App Thread(async) Time Line Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 61

6.4 Multi-Threaded EFL App Critical Section ecore_main_loop_thread_safe_call_async() ์˜ˆ์ œ source: advanced_samples/ecore_main_loop_thread_safe_call_async.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 62

6.4 Multi-Threaded EFL App Ecore Thread Ecore_Thread - ๋ณด๋‹ค์ง๊ด€์ ์ด๊ณ ๋‹จ์ˆœํ•˜๊ณ ํšจ์œจ์ ์ธ thread ์ฒ˜๋ฆฌ๊ฐ€๊ฐ€๋Šฅ ecore_thread_feedback_run(), ecore_thread_run() ์„ํ†ตํ•œ parallel ์ž‘์—…์ฒ˜๋ฆฌ ๋‚ด๋ถ€์ ์œผ๋กœ Threading Pool ๊ธฐ๋ฐ˜์œผ๋กœ์ž‘์—…์Šค๋ ˆ๋“œ๋“ค์„์Šค์ผ€์ค„๋งํ•˜๋ฏ€๋กœ์Šค๋ ˆ๋“œ๊ณผ๋ถ€ํ•˜๋“ฑ์˜๋ถ€๋‹ด์„ํ”ผํ• ์ˆ˜์žˆ์œผ๋ฉฐ scalable ํ•œ processing ํŠน์„ฑ์„์ง€๋‹˜ ( ๊ธฐ๋ณธ์œผ๋กœ์Šค๋ ˆ๋“œ์ตœ๋Œ€๊ฐœ์ˆ˜๋Š” CPU ๊ฐฏ์ˆ˜๋กœ์ œํ•œํ•จ ) ecore ๋นŒ๋“œ์‹œ thread option ์—๋”ฐ๋ผ thread ์ฒ˜๋ฆฌ๊ฐ€ parallel ๋˜๋Š” serial ๋กœ๋Œ€์ฒ˜ EFL API ๋ฅผ parallel ํ•˜๊ฒŒํ˜ธ์ถœํ•ด์•ผํ• ๊ฒฝ์šฐ ecore_thread_feedback_run(), ๊ทธ๋ ‡์ง€์•Š์œผ๋ฉด ecore_thread_run() ์„์ด์šฉ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 63

6.4 Multi-Threaded EFL App Ecore Thread Name: ecore_thread_run () Parameters: Ecore_Thread_Cb Ecore_Thread_Cb Ecore_Thread_Cb const void func_blocking func_end func_cancel *data Return: Ecore_Thread * Description: func_blocking ์„์ˆ˜ํ–‰ํ•  worker thread ๋ฅผ์ƒ์„ฑ. ๋งŒ์•ฝ์Šค๋ ˆ๋“œ๊ฐœ์ˆ˜๊ฐ€ maximum ์ผ๊ฒฝ์šฐ์—๋Š”๊ธฐ์กด์Šค๋ ˆ๋“œ๊ฐ€ available ํ• ๋•Œ๊นŒ์ง€ pending ํ›„์ฒ˜๋ฆฌ thread ์ข…๋ฃŒ์‹œ func_end or func_cancel ์ดํ˜ธ์ถœ๋˜๋ฉฐ์ด๋“ค์€ main thread ์—์˜ํ•ด์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ EFL API ํ˜ธ์ถœ๊ฐ€๋Šฅ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 64

6.4 Multi-Threaded EFL App Ecore Thread ecore_thread_run () Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 65

6.4 Multi-Threaded EFL App Ecore Thread ecore_thread_run () ์‹ค์Šต source: advanced_samples/ecore_thread_run.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 66

6.4 Multi-Threaded EFL App Ecore Thread Name: ecore_thread_feedback_run () Parameters: Ecore_Thread_Cb Ecore_Thread_Cb Ecore_Thread_Cb Ecore_Thread_Cb const void Eina_Bool func_heavy func_notify func_end func_cancel *data try_no_queue Return: Ecore_Thread * Description: func_heavy ๋ฅผ์ˆ˜ํ–‰ํ•  worker thread ๋ฅผ์ƒ์„ฑ. ๋งŒ์•ฝ์Šค๋ ˆ๋“œ๊ฐœ์ˆ˜๊ฐ€ maximum ์ผ๊ฒฝ์šฐ์—๋Š”๊ธฐ์กด์Šค๋ ˆ๋“œ๊ฐ€ available ํ• ๋•Œ๊นŒ์ง€ pending ํ›„์ฒ˜๋ฆฌ. try_no_queue ์— EINA_TRUE ๋ฅผ์ „๋‹ฌํ• ์‹œ, Maximum ์Šค๋ ˆ๋“œ์—์ƒ๊ด€์—†์ด์Šค๋ ˆ๋“œ์—์„œ๋ฐ”๋กœ์ž‘์—…์ด์ˆ˜ํ–‰๋จ. EFL API ๋ฅผ access ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” func_notify ์ฝœ๋ฐฑ์—์„œ์ด๋ฅผ์ฒ˜๋ฆฌ Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 67

6.4 Multi-Threaded EFL App Ecore Thread ecore_thread_feedback_run () Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 68

6.4 Multi-Threaded EFL App Ecore Thread ecore_thread_feedback_run () ์˜ˆ์ œ source: advanced_samples/ecore_thread_feedback_run.c Copyright 2013 Samsung Electronics, Co., Ltd. All rights reserved. 69

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!