Кіріспе

Quartz Composer — графикалық деректерді өңдеу және көрсету үшін macOS-тағы Xcode әзірлеу ортасының құрамына кіретін түйінге негізделген визуалды бағдарламалау тілі. Quartz Composer OpenGL (GLSL-ді қоса), OpenCL (тек Mac OS X Snow Leopard және одан кейінгі нұсқаларында), Core Image, Core Video, JavaScript және басқа технологияларды қарапайым визуалды бағдарламалау үлгісіне сәйкес API және әзірлеуші құралын жасау үшін пайдаланады. Apple Quartz технологияларын операциялық жүйеге терең интеграциялаған. Quartz Composer-де құрастырылған композицияларды кез келген QuickTime қолдаушы бағдарламада (тек Mac OS X Tiger және одан кейінгі нұсқаларында) жеке ойнатуға, жүйелік экран сақтағыш ретінде, iTunes Visualizer ретінде, Quartz Composer қолданбасының ішінде немесе Cocoa немесе Carbon қолданбасына қосылған пайдаланушы интерфейсі элементтері арқылы енгізуге болады. Quartz Composer iPhone SDK-мен бірге келсе де, lc=y нүктесінен бастап iOS құрылғыларында Quartz композицияларын іске қосу мүмкін емес. macOS Catalina нұсқасынан бастап Quartz Composer фреймворкі қолданыстан шығарылды, бірақ үйлесімділік үшін ол әлі де қолжетімді.

Жапсырмалар

Quartz Composer арқылы Quartz бағдарламалау жапсырмаларды (патчтарды) іске асыру және байланыстыру арқылы жүзеге асырылады. Дәстүрлі бағдарламалау тілдеріндегі процедураларға ұқсас, патчтар негізгі өңдеу бірліктері болып табылады. Олар орындалып, нәтиже шығарады. Жақсы өнімділік үшін патчтардың орындалуы «жанама бағалау» (lazy evaluation) қағидасын қолданады, яғни патчтар олардың нәтижесі қажет болғанда ғана орындалады. Патчтардың үш түрі бар: Тұтынушылар (Consumers), Процессорлар (Processors) және Сыртқы кіріс патчтары (External Input patches), олар тышқанның басуы, прокруткасы және қозғалысы; MIDI және аудио; пернетақта; немесе басқа да қозғалыстарды қабылдап, шығара алады. Патчтардың жиынтығын «макрос» деп аталатын біріктірілген бірлікке біріктіруге болады. Макросқа ішкі процедураларды қоюға және оларды өңдеуге болады. Рендерингтің ретін басқару үшін әр рендерерге қабат (layer) тағайындалады, ол рендерердің жоғарғы оң жақ бұрышында көрсетіледі. Қабаттар төменнен жоғарыға қарай тізбектей рендерингтеледі. Рендерерлерді қосуға немесе өшіруге болады, бұл тиісінше қабатты қосуға немесе өшіруге мүмкіндік береді. Қолданылмаған қабаттарды өшіру көбінесе өнімділікті жақсартады, себебі ағыннан жоғары орналасқан патчтарды бағалау қажеттілігі азаяды. Кейбір патчтардың ішінде кіші патчтар (subpatches) болуы мүмкін, бұл жаһандық параметрлерді тек кіріктірілген кіші патчтарға қатысты өзгертуге мүмкіндік береді. Бұл жарықтандыру, 3D түрлендіру және GLSL шейдерлері сияқты мәселелер үшін пайдалы. Кіші патчтарды қолдау патчтың тікбұрышты бұрыштарымен белгіленеді, әдеттегі дөңгелек бұрыштардың орнына. 3.0 нұсқасымен композицияларды «виртуалды патчтарға» (Virtual Patches) айналдыру мүмкін болды. Бұл пайдаланушыға әр композицияда дубликатталған көшірмелерді сақтаудың қажеті болмай, функционалдықты қайта пайдалануға мүмкіндік береді. Quartz Composer редакторы пайдаланушыға оңай тарату үшін «жазықталған» (flattened) көшірмені (ішінде виртуалды патчтар толықтай кеңейтілген күйде) сақтауға мүмкіндік береді. 4.0 нұсқасы бұл мүмкіндікті одан әрі кеңейтті және хост жүйесінде қажетті виртуалды патч орнатылмаған жағдайда, резервтік нұсқа ретінде пайдалану үшін виртуалды патчтардың «жазықталған» көшірмелерін автоматты түрде қосады. Бұл композицияларды таратуды ыңғайлы етеді. Leopard нұсқасымен желілік функционалдық едәуір жақсартылды. Желілік интерфейс арқылы деректерді беру және синхрондау мүмкін болды, сондай-ақ Open Sound Control хабарларын беру және қабылдау қолдауы қосылды.

Тіркемелер

Сондай-ақ, 3.0 нұсқасында Xcode шаблонын қолдана отырып, қолданушыға арналған патч плагиндерін жасау мүмкіндігі және плагиндер мен басқа да қауіпсіз емес түзетулердің жүктелмейтін "қауіпсіз режим" енгізілді. Бұл қауіпті немесе қауіпсіз емес операцияларды орындаудан зыянды жиынтықтарды қорғайды. Apple-дың Xcode шаблонын пайдаланатын қолданушыға арналған түзетулер әрқашан қауіпсіз емес деп есептеледі. 2.0 нұсқасы үшін де қолданушыға арналған плагиндерді жасау мүмкін болған, бірақ API құжатталмаған және жасырын болған, сондай-ақ Apple тарапынан қолдау көрсетілмеген. Соңында, осы процедураны жеңілдету үшін шаблондар жарияланды.

Жасырын опциялар

Quartz Composer редакторында менюден «Баптаулар» тармағын таңдағанда Option пернесін басып тұру пайдаланушыға конфигурациялау үшін 3 қосымша қойындыны ашады. Бұл параметрлерге жүйелік баптаулар, редактор баптаулары және QuickTime интеграциясы баптаулары кіреді. Ерекше опцияларға кеңейтілген түсіндірмелер, бағдарламалық қамтамасыз ету арқылы көрсету және шексіз кадр жиілігімен көрсету жатады. 4.0 нұсқасында көп үлгілі антиалиазинг (MSAA) жасырын опция ретінде қосылды, ол QC редакторы ішінде антиалиазингті қосуға мүмкіндік береді, бірақ ол тек MSAA-ны қолдайтын графикалық процессорларда (GPU) ғана жұмыс істейді.

Түрін түрлендіру

Деректерді әдетте басқа түрлерге көзге көрінбей түрлендіруге болады. Quartz Composer 3.0-да нүктелер арасындағы байланыстар түрлендіру орын алып жатқанда түсін өзгертеді. Сары байланыстар түрлендіру жүргізілмейтінін білдіреді, қызғылт түс түрлендіру кезінде деректердің жоғалу мүмкін екенін көрсетеді (мысалы, Саннан Индекске), ал қызыл түс күрт түрлендіруді көрсетеді; мысалы, Кескіннен Бульдікке.

Композициялар

Кварц Композитор құжаттары Композициялар деп аталады. Композициялар – бұл файл атауының кеңейтімі qtz және com.apple.quartz-composer.composition UTI болатын Бинарлық Қасиет Тізімдері (XML нұсқалары да қолдау көрсетіледі). Патчтар, олардың байланыстары және кіріс порттарының күйі композиция файлында сақталады. Суреттер композиция ішінде де сақталуы мүмкін, бұл кіріктірілген графикасы бар дербес композицияларды құруға мүмкіндік береді. Quartz Composer редакторына бейнефайлды сүйреп тастау арқылы бейнефайлға сілтеме жасалады, ол рендерге қосылатын өзгермелі кескінді ұсынады. Композициялар сондай-ақ композиция авторы, авторлық құқығы және сипаттама сияқты метадеректерді сақтайды. Қалауынша, пайдаланушы кез келген метадеректер элементтерін қоса алады. JPEG, JPEG2000, GIF, PNG, TIFF, TGA, OpenEXR, BMP, ICO, PDF, PICT, ICNS және кейбір шикі цифрлық камера түрлері сияқты көптеген кескін форматтары қолдау көрсетіледі. Кескіндерді көрсету үшін растрлеуден бұрын мүмкіндігінше бастапқы түрінде сақтауға тырысылады. Бұл Quartz Composer кескінді қиып, масштабтағанда, бұрғанда немесе жылжытқанда векторлық кескіндерді вектор ретінде сақтайды, бұл оған үлкен мөлшерде жадты немесе өңдеу уақытын жұмсамай, өте үлкен логикалық кескін өлшемдерімен жұмыс істеуге мүмкіндік береді. Мұндай мүмкіндік мәтіндік кескіндермен немесе PDF файлдарымен жұмыс істегенде ең жақсы көрінеді. 3.0 нұсқасы композицияның бөліктеріне түсініктемелер қосу мүмкіндігін қосты, олар ноталар деп аталады. Бұл ноталар басқа бағдарламалау тілдеріндегі түсініктемелермен ұқсас. Ноталар сары, қызыл, жасыл, көк немесе сұр түсті болуы мүмкін және басқа ноталармен үстіне жабыса алады.

Композицияның орындалу уақыты

Протоколдардан басқа, композициялар Quartz Composer қолжетімді болған жағдайда әртүрлі орындалу орталарына да сәйкес келуі мүмкін. Leopard жүйесінде Tiger (32 бит) үшін, сондай-ақ Leopard Quartz Composer-дың 32 биттік және 64 биттік нұсқалары бар. Редактор пайдаланылған, Tiger жүйесінде қауіпсіз емес немесе қолжетімсіз жапсырмаларды көрсету арқылы үйлесімді композициялар жасауға көмектеседі.

Құралымдарды салыстыру

Quartz Composer 3.0 нұсқасында композицияларды салыстыру мүмкіндігі пайда болды. Бұл мүмкіндік пайдаланушыға кез келген екі композицияның кірістерін, көрсетілген нәтижесін және графтың сыртқы түрін салыстыруға мүмкіндік береді.

Кварц композиторды визуализациялау

Quartz Composer 3.0 нұсқасымен бірге Quartz Composer Visualizer деп аталатын әзірлеу құралы шығарылды, ол композицияларды бір машинадағы бірнеше экранда немесе тіпті бірнеше машина мен дисплейлерге таратуға мүмкіндік береді.

Тарих

Пьер Оливье Латур бастапқыда Quartz Composer-дің алдындағысын PixelShox Studio деген атпен жасаған.