2009-09-02 16 views

उत्तर

3

बीत चुके समय को मापें और फ्रेम की संख्या गिनें। फ्रेम दर देने के लिए एक दूसरे को विभाजित करें।

जब विलुप्त समय एक सेकंड तक पहुंच गया, या अधिक यदि आप इसे लंबे समय तक औसत करना चाहते हैं तो दोनों गणनाओं को रीसेट करें और फिर से शुरू करें।

+0

मैं भरमार उपयोग कर रहा हूँ और मैं इस glutIdleFunc (oneFrame) फोन करते हैं; मुझे लगता है कि एक फ्रेम को हर फ्रेम कहा जाएगा यह सही है? – Mike2012

+0

मुझे विश्वास है, लेकिन मैं ग्लूट – jcoder

5

अपने मुख्य पाश की शुरुआत में एक टाइमर चिपकाएं और परीक्षण करें कि वहां वापस आने में कितना समय लगता है।

double oldTime = 0.0. 
while(!exit) 
{ 
    __int64 counter; 
    QueryPerformanceCounter((LARGE_INTEGER*)&counter); 

    __int64 frequency; 
    QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); 

    double newTime  = (double)counter/(double)frequency; 
    double frameRate = 1.0/(newTime - oldTime); 
    oldTime   = newTime; 

    // Rest of your game loop goes here.  
} 
+1

से परिचित नहीं हूं जो मैंने केवल वास्तविक कोड के साथ कहा था, इसलिए +1 (हालांकि यह विंडोज़ मानता है ...) – jcoder

+0

नहीं कि उसने मंच या भाषा का उल्लेख किया है ... तो इसकी अनुमान लगाने का समय;) – Goz

1

SPF (Seconds Per Frame) थोड़ा अधिक सूचनात्मक मीट्रिक है:

खिड़कियों के अंतर्गत आप की तरह कुछ करना होगा।

संबंधित मुद्दे