منبع: Microsoft.com
-------------------------------------
بعد از اومدن ویستا و گرافیک بالا در پنجره های اون که به صورت 3D و شفاف هست بیشتر برنامه نویس ها از این قابلیت در نرم افزاراشون استفاده کرده اند در پایین تو ضیحاتی در باره این سیستم در ویستا و برنامه نویسی آن صحبت می کنیم.
Windows Vista desktop: محیط کار یا دسکتاپ ویندوز ویستا از برنامه های مختلفی برای مدیریت پنجره ها و شکل دهی به آن استفاده می کند. در زیر به انواع این موتورها اشاره می شود:
1-Windows® Presentation Foundation (WPF : فراهم کننده یک لایه برتر برای کنترل render لایه های دسکتاپ
2-Windows Display Driver Model (WDDM : فراهم کننده handle برای render سطح پایین به صورت واقعی برای نمایش
3-Desktop Window Manager (DWM : واسط جدیدی برای مدیریت چگونه merge کردن پنجره های مختلف در حال اجرا با یکدیگر
کار اصلی ما با رابط DWM می باشد و فقط درباره آن توضیح می دهیم.
------------------------------------------
نگاه فنی به DWM:
این رابط بر روی تمام نسخه های ویندوز ویستا بجز نسخه home basic موجود است. و در فایل DWM.exe قرار دارد. تمام برنامه های سیستم بدون هیچگونه تغییری در آن از این رابط سود می برند. برنامه هایی که می خواهند از قابلیت های ویژه DWM استفاده کنند رابط dwmapi.dll به آنها پاس داده می شود تا به هدف خود برسند. همچنین توضیحات مربوط به این رابط را می توانید در فایل dwmapi.h جستجو کنید .
ویندوز ویستا به صورتی طراحی شده که برای هر پنجره از شتاب دهنده گرافیکی استفاده می کند نه فقط برای نرم افزار های 3D DirectX . به این ترتیب که DWM رابط WDDM را صدا زده و این رابط تمام پردازنده های گرافیکی و حافظه های تصویری را در دست می گیرد. (رابط DWM به فایل milcore.dll بستگی دارد که یک component به اشتراک گذاشته شده با WPF برای تولید خروجی است. )
عملیات rendering به وسیله thread جداگانه در DWM به کار می روند. این thread برای کاربر غیر قابل دسترس می باشد . هر برنامه دارای thread مخصوص به خود برای render و تشکیل UI می باشد . اما چگونه این thread با یکدیگر برخورد نمی کنند و از یکدیگر تمیز داده می شوند؟.
DWM لیستی از پنجره ها و bitmap آنها را در یک ساختار درختی مدیریت می کند و در نهایت برای تشکیل دسکتاپ آنها را با یکدیگر مخلوط می کند.
به عبارت دیگر هر برنامه به نقشه بیتی یا bitmap خودش render شده و سپس توسط رابط DWM با یکدیگر مخلوط می شوند.
Thread پنجره اصلی هر برنامه به یک منظره یا نما render می شود که این نما بوسیله DWM قابل دسترس می باشد و این عملیات دسکتاپ را از طریق رابط directX به روز رسانی می کند.
اطلاعات پاس داده شده به صورت فشرده هستند به مانند عکس های بزرگی که در حافظه اشتراکی قرار می گیرند . این قابلیت می تواند اجازه دهد که ساخت نما در یک ماشین رخ دهد در حالی که render آن در یک ماشین دیگر تکمیل شده باشد. 3D programmers که از OpenGL استفاده می کنند با این معماری آشنایی کافی دارند. این معماری که مدیریت و ساخت نما در Server و استفاده و نمود آن در client ظاهر می شود خود را در پشتیبانی از سناریوی remote desktop مشخص و معرفی می کند.
به علت مشغله زیاد هر روز یک بخش از مقاله را روی سایت قرار می دهم.
در این فاصله منتظر نظرات شما هستم.
محتویات این مقاله (تا پایان):
نگاه فنی به DWM
فواید دسکتاپ مرکب
توابع معمولی ترکیب و مخلوط سازی
آمادگی برای محیط Aero glass
برنامه نویسی DWM
ترسیم روی glass
دکمه های Thumbnails
نگاه فنی به DWM
فواید دسکتاپ مرکب
توابع معمولی ترکیب و مخلوط سازی
آمادگی برای محیط Aero glass
برنامه نویسی DWM
ترسیم روی glass
دکمه های Thumbnails
-------------------------------------
بعد از اومدن ویستا و گرافیک بالا در پنجره های اون که به صورت 3D و شفاف هست بیشتر برنامه نویس ها از این قابلیت در نرم افزاراشون استفاده کرده اند در پایین تو ضیحاتی در باره این سیستم در ویستا و برنامه نویسی آن صحبت می کنیم.
Windows Vista desktop: محیط کار یا دسکتاپ ویندوز ویستا از برنامه های مختلفی برای مدیریت پنجره ها و شکل دهی به آن استفاده می کند. در زیر به انواع این موتورها اشاره می شود:
1-Windows® Presentation Foundation (WPF : فراهم کننده یک لایه برتر برای کنترل render لایه های دسکتاپ
2-Windows Display Driver Model (WDDM : فراهم کننده handle برای render سطح پایین به صورت واقعی برای نمایش
3-Desktop Window Manager (DWM : واسط جدیدی برای مدیریت چگونه merge کردن پنجره های مختلف در حال اجرا با یکدیگر
کار اصلی ما با رابط DWM می باشد و فقط درباره آن توضیح می دهیم.
------------------------------------------
نگاه فنی به DWM:
این رابط بر روی تمام نسخه های ویندوز ویستا بجز نسخه home basic موجود است. و در فایل DWM.exe قرار دارد. تمام برنامه های سیستم بدون هیچگونه تغییری در آن از این رابط سود می برند. برنامه هایی که می خواهند از قابلیت های ویژه DWM استفاده کنند رابط dwmapi.dll به آنها پاس داده می شود تا به هدف خود برسند. همچنین توضیحات مربوط به این رابط را می توانید در فایل dwmapi.h جستجو کنید .
ویندوز ویستا به صورتی طراحی شده که برای هر پنجره از شتاب دهنده گرافیکی استفاده می کند نه فقط برای نرم افزار های 3D DirectX . به این ترتیب که DWM رابط WDDM را صدا زده و این رابط تمام پردازنده های گرافیکی و حافظه های تصویری را در دست می گیرد. (رابط DWM به فایل milcore.dll بستگی دارد که یک component به اشتراک گذاشته شده با WPF برای تولید خروجی است. )
عملیات rendering به وسیله thread جداگانه در DWM به کار می روند. این thread برای کاربر غیر قابل دسترس می باشد . هر برنامه دارای thread مخصوص به خود برای render و تشکیل UI می باشد . اما چگونه این thread با یکدیگر برخورد نمی کنند و از یکدیگر تمیز داده می شوند؟.
DWM لیستی از پنجره ها و bitmap آنها را در یک ساختار درختی مدیریت می کند و در نهایت برای تشکیل دسکتاپ آنها را با یکدیگر مخلوط می کند.
به عبارت دیگر هر برنامه به نقشه بیتی یا bitmap خودش render شده و سپس توسط رابط DWM با یکدیگر مخلوط می شوند.
Thread پنجره اصلی هر برنامه به یک منظره یا نما render می شود که این نما بوسیله DWM قابل دسترس می باشد و این عملیات دسکتاپ را از طریق رابط directX به روز رسانی می کند.
اطلاعات پاس داده شده به صورت فشرده هستند به مانند عکس های بزرگی که در حافظه اشتراکی قرار می گیرند . این قابلیت می تواند اجازه دهد که ساخت نما در یک ماشین رخ دهد در حالی که render آن در یک ماشین دیگر تکمیل شده باشد. 3D programmers که از OpenGL استفاده می کنند با این معماری آشنایی کافی دارند. این معماری که مدیریت و ساخت نما در Server و استفاده و نمود آن در client ظاهر می شود خود را در پشتیبانی از سناریوی remote desktop مشخص و معرفی می کند.
به علت مشغله زیاد هر روز یک بخش از مقاله را روی سایت قرار می دهم.
در این فاصله منتظر نظرات شما هستم.