الشبكة العربية لمطوري الألعاب

مبتدئ  maya مشاركة 1

السلام عليكم  لدي برنامج يقوم بالرسم ب opengl; و هو يعمل لكنني اريد ان اقوم بحفظ النتتج اي الرسومات التي تظهر في نافذة opengl  على شكل صورة JPG او BMP; او اي نوع اخر

خبير  Hisham Kayali مشاركة 2

ما هو أسم البرنامج بالضبط....

من المزعج أن تعرف إن دساتير البعد بين نقطتين التي طالما كرهتها هي أساسية في شيء تحبه جدا و هو تحريك الألعاب

مبتدئ  maya مشاركة 3

السلام عليكم
انا التي عملت كود يقوم بالرسم مكعب او مثلث و اريد ان احفظ النافذة التي يظهر فيها الرسم

خبير  Hisham Kayali مشاركة 4

حسنا أعتقد أنني فهمت..
لماذا لا تضغطي على زر Print screen من الكيبورد لتصوري نافذة البرنامج..
ثم تقومي بلصقها ببرنامج الرسام..

من المزعج أن تعرف إن دساتير البعد بين نقطتين التي طالما كرهتها هي أساسية في شيء تحبه جدا و هو تحريك الألعاب

مبتدئ  maya مشاركة 5

المشكلة اني اريدو مكتوب ب سي++ يعني لما اغلق البرنامج تبقى نسخة من الرسم محفوطة عندي

خبير  Hisham Kayali مشاركة 6

تستطيعين حفظ الصورة من برنامج الرسام بعد لصقها ..
أتريدين تطبيق الكود الذي كتبتيه بال open gl بال С++  ??

من المزعج أن تعرف إن دساتير البعد بين نقطتين التي طالما كرهتها هي أساسية في شيء تحبه جدا و هو تحريك الألعاب

مبتدئ  maya مشاركة 7

انا اريد انو الكود اللييحول النافذة الى صورة و  يحفظ الصورة يكون تابع للكود الذي اعمل به انا و الذي يقوم بالرسم اي لا اعمل بالرسام

خبير مدير وسام البهنسي مشاركة 8

بسيطة. لقد قمتُ بكتابته ويمكنك تحميله من المرفقات في هذه المشاركة. طريقة الاستخدام بسيطة جداً. المثال التالي:


CaptureScreenToBMPFile("D:\\Image.bmp",640,480); // BMP التقاط المشهد وحفظه في ملف بصيغة
 
المُدخل الأول هو اسم الملف الذي تودين حفظ الصورة به. المدخلين الثاني والثالث يحددان عرض وارتفاع نافذة الرسم في البرنامج، ويجب أن تكون مطابقة لنفس القيم المستخدمة أثناء تجهيز نافذة أوبن جي إل، وإلا فإن العواقب ستكون وخيمة ☺
طبعاً يجب أن يتم استدعاء الإجراء _بعد_ أن تقومين برسم شيء ما في المشهد، وإلا ستكون الصورة سوداء (أو أي شيء آخر) 😄
 
تعريف الإجراء موجود في الملف المرفق، ويمكنك نسخه ووضعه في أحد ملفات الكود لديك لاستخدامه.
 
الإجراء لا يحتوي على أي شيء مثير، فقط تجهيز ترويسة ملف الـ BMP ثم كتابة القيم اللونية وانتهى.
 
بالتوفيق!

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

مبتدئ  maya مشاركة 9

السلام عليكم
شكرا لك احي وسام  الكود يبدو  سهل جدا
لكن لم يعمل لي
اظن لان المشروع الذي اعمل عليه من نوع win32 console application
لانه لا يتعرف على     HANDLE
هل يجب ان اظيف لها مكتبة او ما شابه حتى تعمل او يجب ان اعرفها في بداية العمل ؟

خبير مدير وسام البهنسي مشاركة 10

لا بأس. الإجراء يستخدم خدمات Win32 لذلك يجب تضمين الملف windows.h في البداية:


#include 
 
كما أنه يعتمد على مكتبة أوبن جي إل، لكني أفترض أنك قمتي بتضمين ملف المكتبة بالفعل:


#include 

وسام البهنسي
مبرمج في إنفيديا وإنفريمز