Қабаттастыру дегеніміз - бейнені жадын көшірместен негізгі экранда (негізгі бетінде) кескіндеуге мүмкіндік беретін бейне картаның аппараттық функциясы. Қабаттасу мониторға жіберілген бейне сигналдарын құру процесінде сандық-аналогтық түрлендіргіштерде (RAMDAC) бейнекартада орындалады. RAMDAC процесс кезінде бастапқы беттерді жолдан-жолға сканерлейді және қажет болған кезде қабаттасқан кескінге ауысады.
Қажетті
Кітапханалардан арнайы эффекттер жиынтығы
Нұсқаулық
1-қадам
Overlay мүмкіндігін қосу үшін жұмыс үстелінің бетінде немесе ерікті түстердің орындарында кейбір ерекше эффектілерді көрсететін бағдарлама жазуды қарастыру қажет (егер жұмыс үстеліндегі сурет режимін негізгі режим деп санасақ).
2-қадам
Арнайы эффект таңдаңыз. Арнайы эффектілерді таңдауға қатысты қиындықтар туғызбауы керек - оларды жай мысалдардан FastLIB кітапханаларына алуға болады, мысалы, от шарын салу алгоритмдері. Осыдан кейін сіз эффектке қарапайым бөлшектер жүйесін қосып, нәтижені атаңыз, өйткені ол ыңғайлы болады. DirectDraw бағдарламасын іске қосыңыз. Тек бастапқы беттер инициализациялауға мағынасы бар.
3-қадам
Үстіңгі қабатын көрсету және оны құру мүмкіндігін тексеріңіз. Ол үшін GetOverlayCaps функциясын қолданыңыз. GetOverlayCaps-та күрделі және қызықты ештеңе жоқ - бұл DDCaps-тен әр биттің немесе қабаттасумен байланысты мәннің неғұрлым ықшам құрылымға - TOverlayCaps-қа ауысуы. Әрі қарай, сіз қабаттасудың өлшемін функцияны пайдалану кезінде алынған параметрлерге сәйкес келетін етіп түзетуіңіз керек. Шындығында, мұндай кодты сәтті орындау ықтималдығы өте аз, сондықтан сіз оған ерекше назар аудармаңыз - атап айтқанда, баяу жұмыс істемеу үшін оның өлшемі шектелмеуі керек, өлшемін байтпен тексеру қажет емес бейне жадының мазмұнына ену мүмкіндігі үшін және т.б.
4-қадам
Тұтастай алғанда, есеп алу үшін көбірек тексерген жөн, өйткені қабаттастыру жасау процесі өрескел күш әдісімен жасалады. Мәселе мынада: EnumOverlayFormats сияқты функциялар жоқ және жасалынбаған, сондықтан пайдаланушы кез-келген елестетілетін форматты тексеріп, сәттілікке үміттенуі керек. Алайда, RGB емес форматты кодты (FourCC) анықтауға арналған IDirectDraw7GetFourCCCodes функциясы бар, бірақ ол тек қажетті YUV ғана емес, сонымен қатар қысылған текстураның пішімін және басқаларын қамтиды. Толық тізімді пайдалану және әрбір форматты YUV немесе YUV емес деп анықтау қисынсыз болып көрінеді.
5-қадам
Егер бар болса, кескінді жұмыс үстелінен алып тастаңыз және оған DCK түстерін тағайындаңыз. DCK түсті қабаттасуын қосыңыз. Қабат қосылып, дайын болады. Оны қолданудың көрнекі әсерін барлық жұмыс істейтін терезелерді минимизациялағаннан кейін бағалауға болады.