سؤال

يا رفاق ، وشكرا على النظر. لقد قمت ببناء تطبيق D2D البسيط من MSDN ، متاح هنا. الآن ، أريد رسم بعض البدائل وإضافة عداد FPS.

لدي حدث onrender () ، حيث أرسم المستطيلات وما إلى ذلك. لديّ أيضًا مكالمة إلى RenderTextInfo () حيث أدعو RenderTarget-> drawText. أين أضيف المنطق لحساب عدد الإطارات في الثانية؟

شكرا جزيلا.

هل كانت مفيدة؟

المحلول

لا أعرف الأشياء الدقيقة Direct2D ، لكن هذا قد يساعد.

في الأساس ، لديك خياران. إما أنك تقوم بتحديث الإطار عند رسم إطار ، أو كل ثانية (أو أي فاصل زمني آخر).

إذا قمت بحسابه عند رسم إطار ، يمكنك ببساطة الحصول على الوقت الحالي عند رسم إطار ، وطرحه في الوقت الذي رسمت فيه الإطار الأخير. هذا يمنحك الوقت الذي تقضيه في رسم هذا الإطار. المتبادل من ذلك (أي 1/x) هو الإطار.

إذا قمت بحسابها في فترة زمنية منتظمة ، فأنت بحاجة إلى إطلاق بعض الأحداث في كل فاصل يتحقق من عدد الإطارات التي تم رسمها منذ آخر مرة أطلق فيها هذا الحدث. قسّم ذلك على الفاصل الزمني الخاص بك (إذا كانت ثانية واحدة ، فلن تحتاج إلى تقسيمها بالطبع) وهذا هو عدد FPS الخاص بك. لا تنسى زيادة بعض العداد في كل مرة ترسم فيها إطارًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top