السلام عليكــم ورحمـة الله وبركاتــه
ممكن من الاخوان لو يعطوني شرح بسبط لكيفية استخدام هذه الداله
glutTimerFunc
السلام عليكــم ورحمـة الله وبركاتــه
ممكن من الاخوان لو يعطوني شرح بسبط لكيفية استخدام هذه الداله
glutTimerFunc
وعليكم السلام ورحمة الله وبركاته
حصلت لك رابط يشرح بشكل بسيط عن هذي الدالة طبعا هو بالانجليزي، لكن اعتقد انه بيفيدك،انا نفسي مبتدئ بس حاولت ابحث لك معي
http://pyopengl.sourceforge.net/documentat...Func.3GLUT.html
مشكور اخويlug
استفدت من الرابط
بس ياليت اذا احد عنده خبره يعطيني مثال عليها علشان تتضح الصورة اكثر
هذي أمثلة موجودة فيها استخدام هذه الدالة:
http://comsci.liu.edu/~murali/opengl/example3.txt
إن شاء الله يكون مفيد
مشكوووووووووووووور اخوي يعطيك العافية
استفدت منها كثير
بس اتحملني شوي عندي بعض الاستفسارات
glutTimerFunc(30,Timer,0)
البارامتر الأخير مافائدته؟
وياليت توضح لي هالنقطة مافهمتها؟
There is no support for canceling a registered callback. Instead, ignore a callback based on its value parameter when it is triggered.
الأمثلة التي وضعها الاخ lug تكفي ان شاء الله , ولكن هذا مثال اضافي :
#include <windows.h>
#include <gl\glut.h>
// بعد كل ثانية نقوم بتحديث الوقت
void timer(int val)
{
printf("Hello");
glutTimerFunc(1000,timer,val);
glutPostRedisplay();
}
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT );
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize(400,400);
glutCreateWindow("Clock");
glutDisplayFunc(renderScene);
glutTimerFunc(0,timer,1000);
glutMainLoop();
return(0);
}حيث في المثال السابق ’ في كل ثانية ( 1000 مللي ثانية ) .. نقوم بمناداة الدالة timer التي ستطبع الجملة المطلوبة ..
وداخل الدالة timer نستدعي الدالة glutTimerFunc حتى يتم مناداة الدالة timer مرة أخرى .. وليس مرة واحدة فقط ,
بالنسبة للبارمتر الاول ( وهو صفر في المثال هذا ) , فأعتقد والله أعلم ان القصد منه .. هو الوقت المطلوب لأول استدعاء للدالة .. وقد اكون مخطئ , .. لا أملك التفاصيل الكاملة , , ممكن ابحث عنها اكثر اذا اردت تفاصيل ,
There is no support for canceling a registered callback. Instead, ignore a callback based on its value Parameter when it is triggered
ما أفهمه .. هو أنه يقصد انه لا يمكن الغاء مناداة الدالة .. ستبقى تناديها الى انتهاء البرنامج , ولكن لايقاف عملها .. ممكن تستفيد من البارمتر val
void timer(int val)
{
printf("Hello");
if(val != -1) نتوقف عن المناداة اذا صارت القيمة -1
glutTimerFunc(1000,timer,-1);
glutPostRedisplay();
}عموما .. المهم تعرف تستخدم الدالة ... مثل المثال الموجود في الاعلى , ولا عليك من باقي التفاصيل لانها غير مهمة كثيرا,
وتستطيع اصلا الاستغناء عن هذه الدالة , وتبني دالتك الخاصة فيك , فهذا يعطيك تحكم أكبر ,
تم تعديل هذه المشاركة بواسطة الشمري في 16 ديسمبر 2008 في 20:05
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
مشكوور اخوي الشمري
ماقصرت وضحت
الله يعطيكم العافية ووسع لكم بالدنيا والأخرة