امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دسترسي مستقيم به حافظه صفحه مونيتور
نویسنده پیام
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #1
دسترسي مستقيم به حافظه صفحه مونيتور
من مي خوام كه به صورت مستقيم تو حافظه اي كه به صفحه ي مونيتور تخصيص يافته بنويسم.ايا تابعي يا روشي وجود داره؟
api ي setpixel رو مي دونم اما سرعت كمي داره.
۱۱-تير-۱۳۸۷, ۱۵:۲۲:۳۶
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: دسترسي مستقيم به حافظه صفحه مونيتور
برای نمایش سریع و بدون پلک زدن باید از تکنیک Double Buffering استفاده کرد یعنی ابتدا پیکسل رو توی حافظه RAM و توی یک dc ذخیره کنی و بعد به سرعت اونو توی حافظه کارت گرافیکی bitblt کنی !
مثال ساده ای هست که اینکار رو نشون میده : http://www.codeproject.com/KB/GDI/flickerfree.aspx

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۱-تير-۱۳۸۷, ۱۹:۳۸:۱۱
ارسال‌ها
پاسخ
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #3
RE: دسترسي مستقيم به حافظه صفحه مونيتور
بله درست مي فرماييد ,doublebuffering رو مي دونستم اما من مي خوام اون مدلي كه توي اسمبلي به حافطه نمايش دسترسي داريم به مونيتور دسترسي داشته باشم يعني مثلا يه افستي باشه كه بشه ديتا ازش خوند يا توش نوشت و مستقيما روي مونيتور مشاهده كرد.
۱۲-تير-۱۳۸۷, ۱۷:۱۶:۰۳
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #4
RE: دسترسي مستقيم به حافظه صفحه مونيتور
مدل اسمبلی رو خدابیامرزه ..... GDI این امکان رو به شما نمیده . کلا دسترسی مستقیم به آدرس های سخت افزار ها در ویندوز های جدید امکان پذیر نیست !!
برای دسترسی مستقیم به پیکسل های حافظه گرافیکی و کار مستقیم با GPU باید از کتابخونه های دیگه ای مثل OpenGL یا Direct 3D استفاده کنی و اونم به کمک pixel shader ها .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۲-تير-۱۳۸۷, ۱۷:۲۸:۰۱
ارسال‌ها
پاسخ
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #5
RE: دسترسي مستقيم به حافظه صفحه مونيتور
پس خود اين opengl و directx چجوري بهش دسترسي دارن؟
۱۲-تير-۱۳۸۷, ۲۱:۲۵:۲۷
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #6
RE: دسترسي مستقيم به حافظه صفحه مونيتور
از طریق درایور کارت گرافیک دقیقا مثل GDI . منظور من این نبود که این کتابخونه ها مستقیما با آدرس حافظه کارت گرافیکی کار میکنند و GDI مستقیم کار نمیکنه بلکه منظورم این بود که مثلا Direct 3d سرعت render بالاتری داره .
توابعی مثل setpixel کند هستن چون اطلاعات پیکسل همزمان از حافظه میره توی حافظه گرافیکی و نمایش داده میشه . این مقداری تاخیر ایجاد میکنه و باعث کندی کار میشه . برای کارهای گرافیکی معمولی همون double buffering باید کارت رو راه بندازه !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۳-تير-۱۳۸۷, ۰۰:۳۹:۴۶
ارسال‌ها
پاسخ
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #7
RE: دسترسي مستقيم به حافظه صفحه مونيتور
يعني اگر بتونم از درايور كارت گرافيك استفاده كنم مي تونم مستقيم به ديتايي كه باعث ميشه ما الان اين صفحه ي مونيتور رو داشته باشيم دسترسي داشته باشم و بتونم اونو بخونم يا عوض كنم؟
۱۳-تير-۱۳۸۷, ۱۲:۴۶:۵۳
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #8
RE: دسترسي مستقيم به حافظه صفحه مونيتور
در گذشته حافظه گرافیکی جزیی از حافظه اصلی بود ولی امروز رفته روی کارت گرافیکی و پورت و آدرس خودش رو داره . دسترسی به حافظه گرافیکی که حالا جزیی از یک سخت افزار دیگه هست و اونم بشکل مستقیم ، فقط از طریق درایور امکان پذیره . شرط کار کردن با درایور ها هم اینه که مکانیسم داخلی اونها رو بدونی ( درایور کارت گرافیکی شما با ماله من فرق میکنه !!) این کار بسیار بسیار پیچیده هست و برای هر کارت گرافیکی فرق میکنه .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۳-تير-۱۳۸۷, ۱۹:۵۳:۴۹
ارسال‌ها
پاسخ
تشکر شده توسط : ajlajlajl, shadowes


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] تخصیص حافظه به رشته و ارسال به تابع؟ one hacker 2 3,268 ۰۶-اردیبهشت-۱۳۹۰, ۱۷:۲۸:۲۲
آخرین ارسال: one hacker
  توليد نقاط تصادفي در صفحه dominant 1 2,569 ۰۹-اردیبهشت-۱۳۸۹, ۲۲:۰۵:۴۸
آخرین ارسال: dreamvbfox
  اجراي يك صفحه وب در لوكال هاست shadowes 18 12,586 ۱۷-شهریور-۱۳۸۸, ۱۷:۱۵:۲۲
آخرین ارسال: arian_vc
  دسترسی به محتویات یک بایت از حافظه Administrator 5 4,949 ۰۱-دى-۱۳۸۷, ۱۲:۴۳:۴۶
آخرین ارسال: hoax3r
  تخصیص حافظه و پاک کردن آن در سی black-scorpion 4 3,784 ۲۷-آبان-۱۳۸۶, ۱۴:۲۳:۳۷
آخرین ارسال: black-scorpion
  دستکاری حافظه ajlajlajl 4 3,087 ۰۱-شهریور-۱۳۸۶, ۱۴:۰۰:۰۴
آخرین ارسال: ajlajlajl
  کنترل حافظه RAM ajlajlajl 0 1,636 ۱۷-فروردین-۱۳۸۶, ۱۶:۲۱:۳۱
آخرین ارسال: ajlajlajl
  گرفتن حافظه دايناميك از نوع استاتيك؟! kamran11958 1 1,905 ۱۲-بهمن-۱۳۸۵, ۱۸:۱۸:۵۶
آخرین ارسال: arian_vc

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS