亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? measure.h

?? 用DirectX制作高級動畫-[Advanced.Animation.with.DirectX]
?? H
字號:
//------------------------------------------------------------------------------
// File: Measure.h
//
// Desc: DirectShow base classes.
//
// Copyright (c) 1992-2002 Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------


/*
   The idea is to pepper the source code with interesting measurements and
   have the last few thousand of these recorded in a circular buffer that
   can be post-processed to give interesting numbers.

   WHAT THE LOG LOOKS LIKE:

  Time (sec)   Type        Delta  Incident_Name
    0.055,41  NOTE      -.       Incident Nine  - Another note
    0.055,42  NOTE      0.000,01 Incident Nine  - Another note
    0.055,44  NOTE      0.000,02 Incident Nine  - Another note
    0.055,45  STOP      -.       Incident Eight - Also random
    0.055,47  START     -.       Incident Seven - Random
    0.055,49  NOTE      0.000,05 Incident Nine  - Another note
    ------- <etc.  there is a lot of this> ----------------
    0.125,60  STOP      0.000,03 Msr_Stop
    0.125,62  START     -.       Msr_Start
    0.125,63  START     -.       Incident Two   - Start/Stop
    0.125,65  STOP      0.000,03 Msr_Start
    0.125,66  START     -.       Msr_Stop
    0.125,68  STOP      0.000,05 Incident Two   - Start/Stop
    0.125,70  STOP      0.000,04 Msr_Stop
    0.125,72  START     -.       Msr_Start
    0.125,73  START     -.       Incident Two   - Start/Stop
    0.125,75  STOP      0.000,03 Msr_Start
    0.125,77  START     -.       Msr_Stop
    0.125,78  STOP      0.000,05 Incident Two   - Start/Stop
    0.125,80  STOP      0.000,03 Msr_Stop
    0.125,81  NOTE      -.       Incident Three - single Note
    0.125,83  START     -.       Incident Four  - Start, no stop
    0.125,85  START     -.       Incident Five  - Single Start/Stop
    0.125,87  STOP      0.000,02 Incident Five  - Single Start/Stop

Number      Average       StdDev     Smallest      Largest Incident_Name
    10     0.000,58     0.000,10     0.000,55     0.000,85 Incident One   - Note
    50     0.000,05     0.000,00     0.000,05     0.000,05 Incident Two   - Start/Stop
     1     -.           -.           -.           -.       Incident Three - single Note
     0     -.           -.           -.           -.       Incident Four  - Start, no stop
     1     0.000,02     -.           0.000,02     0.000,02 Incident Five  - Single Start/Stop
     0     -.           -.           -.           -.       Incident Six   - zero occurrences
   100     0.000,25     0.000,12     0.000,02     0.000,62 Incident Seven - Random
   100     0.000,79     0.000,48     0.000,02     0.001,92 Incident Eight - Also random
  5895     0.000,01     0.000,01     0.000,01     0.000,56 Incident Nine  - Another note
    10     0.000,03     0.000,00     0.000,03     0.000,04 Msr_Note
    50     0.000,03     0.000,00     0.000,03     0.000,04 Msr_Start
    50     0.000,04     0.000,03     0.000,03     0.000,31 Msr_Stop

  WHAT IT MEANS:
    The log shows what happened and when.  Each line shows the time at which
    something happened (see WHAT YOU CODE below) what it was that happened
    and (if approporate) the time since the corresponding previous event
    (that's the delta column).

    The statistics show how many times each event occurred, what the average
    delta time was, also the standard deviation, largest and smalles delta.

   WHAT YOU CODE:

   Before anything else executes: - register your ids

    int id1     = Msr_Register("Incident One   - Note");
    int id2     = Msr_Register("Incident Two   - Start/Stop");
    int id3     = Msr_Register("Incident Three - single Note");
    etc.

   At interesting moments:

       // To measure a repetitive event - e.g. end of bitblt to screen
       Msr_Note(Id9);             // e.g. "video frame hiting the screen NOW!"

           or

       // To measure an elapsed time e.g. time taken to decode an MPEG B-frame
       Msr_Start(Id2);            // e.g. "Starting to decode MPEG B-frame"
         . . .
       MsrStop(Id2);              //      "Finished MPEG decode"

   At the end:

       HANDLE hFile;
       hFile = CreateFile("Perf.log", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
       Msr_Dump(hFile);           // This writes the log out to the file
       CloseHandle(hFile);

           or

       Msr_Dump(NULL);            // This writes it to DbgLog((LOG_TRACE,0, ... ));
                                  // but if you are writing it out to the debugger
                                  // then the times are probably all garbage because
                                  // the debugger can make things run awfully slow.

    A given id should be used either for start / stop or Note calls.  If Notes
    are mixed in with Starts and Stops their statistics will be gibberish.

    If you code the calls in upper case i.e. MSR_START(idMunge); then you get
    macros which will turn into nothing unless PERF is defined.

    You can reset the statistical counts for a given id by calling Reset(Id).
    They are reset by default at the start.
    It logs Reset as a special incident, so you can see it in the log.

    The log is a circular buffer in storage (to try to minimise disk I/O).
    It overwrites the oldest entries once full.  The statistics include ALL
    incidents since the last Reset, whether still visible in the log or not.
*/

#ifndef __MEASURE__
#define __MEASURE__

#ifdef PERF
#define MSR_INIT() Msr_Init()
#define MSR_TERMINATE() Msr_Terminate()
#define MSR_REGISTER(a) Msr_Register(a)
#define MSR_RESET(a) Msr_Reset(a)
#define MSR_CONTROL(a) Msr_Control(a)
#define MSR_START(a) Msr_Start(a)
#define MSR_STOP(a) Msr_Stop(a)
#define MSR_NOTE(a) Msr_Note(a)
#define MSR_INTEGER(a,b) Msr_Integer(a,b)
#define MSR_DUMP(a) Msr_Dump(a)
#define MSR_DUMPSTATS(a) Msr_DumpStats(a)
#else
#define MSR_INIT() ((void)0)
#define MSR_TERMINATE() ((void)0)
#define MSR_REGISTER(a) 0
#define MSR_RESET(a) ((void)0)
#define MSR_CONTROL(a) ((void)0)
#define MSR_START(a) ((void)0)
#define MSR_STOP(a) ((void)0)
#define MSR_NOTE(a) ((void)0)
#define MSR_INTEGER(a,b) ((void)0)
#define MSR_DUMP(a) ((void)0)
#define MSR_DUMPSTATS(a) ((void)0)
#endif

#ifdef __cplusplus
extern "C" {
#endif

// This must be called first - (called by the DllEntry)

void WINAPI Msr_Init(void);


// Call this last to clean up (or just let it fall off the end - who cares?)

void WINAPI Msr_Terminate(void);


// Call this to get an Id for an "incident" that you can pass to Start, Stop or Note
// everything that's logged is called an "incident".

int  WINAPI Msr_Register(LPTSTR Incident);


// Reset the statistical counts for an incident

void WINAPI Msr_Reset(int Id);


// Reset all the counts for all incidents
#define MSR_RESET_ALL 0
#define MSR_PAUSE 1
#define MSR_RUN 2

void WINAPI Msr_Control(int iAction);


// log the start of an operation

void WINAPI Msr_Start(int Id);


// log the end of an operation

void WINAPI Msr_Stop(int Id);


// log a one-off or repetitive operation

void WINAPI Msr_Note(int Id);


// log an integer (on which we can see statistics later)
void WINAPI Msr_Integer(int Id, int n);


// print out all the vaialable log (it may have wrapped) and then the statistics.
// When the log wraps you lose log but the statistics are still complete.
// hFIle==NULL => use DbgLog
// otherwise hFile must have come from CreateFile or OpenFile.

void WINAPI Msr_Dump(HANDLE hFile);


// just dump the statistics - never mind the log

void WINAPI Msr_DumpStats(HANDLE hFile);

// Type definitions in case you want to declare a pointer to the dump functions
// (makes it a trifle easier to do dynamic linking
// i.e. LoadModule, GetProcAddress and call that)

// Typedefs so can declare MSR_DUMPPROC *MsrDumpStats; or whatever
typedef void WINAPI MSR_DUMPPROC(HANDLE hFile);
typedef void WINAPI MSR_CONTROLPROC(int iAction);


#ifdef __cplusplus
}
#endif

#endif // __MEASURE__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频一区在线观看| 免费观看在线综合| av电影在线观看完整版一区二区| 国产日韩欧美精品综合| 国产成人免费视频网站| 国产亚洲美州欧州综合国 | 玉米视频成人免费看| 91亚洲国产成人精品一区二三| 中文字幕人成不卡一区| 99久久精品国产导航| 亚洲一区在线视频观看| 91精品婷婷国产综合久久竹菊| 久久91精品国产91久久小草| 精品国产sm最大网站免费看| 成人性视频网站| 亚洲自拍偷拍欧美| 日韩一区二区在线看片| 国产91精品久久久久久久网曝门 | 国产精品国模大尺度视频| 99久久夜色精品国产网站| 亚洲制服丝袜在线| 日韩一级黄色大片| 风间由美中文字幕在线看视频国产欧美 | 亚洲精品一二三区| 欧美日韩极品在线观看一区| 国产在线观看一区二区| 亚洲精品视频观看| 欧美成人三级电影在线| 成人黄色免费短视频| 亚洲线精品一区二区三区| 欧美电视剧在线看免费| 成人性生交大合| 日韩精品视频网站| 国产亚洲欧美色| 欧美日韩精品一区视频| 国产91色综合久久免费分享| 亚洲国产欧美另类丝袜| 欧美激情一区二区三区不卡| 欧美视频在线一区| 成人夜色视频网站在线观看| 日日摸夜夜添夜夜添国产精品| 欧美国产综合色视频| 欧美一区二区播放| 99久久精品国产一区| 精品亚洲porn| 亚洲国产精品一区二区www| 国产女同互慰高潮91漫画| 6080日韩午夜伦伦午夜伦| 99国产精品久久久久久久久久久| 蜜臀av在线播放一区二区三区| 亚洲人成影院在线观看| 久久蜜臀中文字幕| 日韩一区二区在线看| 91福利视频久久久久| 成人小视频在线| 精品一区二区免费| 男人的j进女人的j一区| 亚洲激情六月丁香| 亚洲欧洲无码一区二区三区| 久久久久久久电影| 欧美白人最猛性xxxxx69交| 欧美日韩视频在线一区二区| 972aa.com艺术欧美| 粉嫩av一区二区三区在线播放| www.欧美.com| 波多野结衣91| 粉嫩aⅴ一区二区三区四区| 极品少妇一区二区| 麻豆精品蜜桃视频网站| 青青草原综合久久大伊人精品 | 大桥未久av一区二区三区中文| 狠狠狠色丁香婷婷综合久久五月| 日韩av中文在线观看| 午夜影院久久久| 午夜精品一区二区三区电影天堂 | 欧美二区三区的天堂| 欧美私人免费视频| 欧美日韩在线综合| 欧美精品黑人性xxxx| 欧美日本一区二区| 欧美一区二区久久久| 这里只有精品电影| 91精品欧美福利在线观看| 91精品国产日韩91久久久久久| 3atv一区二区三区| 精品人伦一区二区色婷婷| 精品国产乱码久久久久久蜜臀| 精品久久久久久久久久久久久久久久久| 欧美丰满高潮xxxx喷水动漫| 欧美一激情一区二区三区| 日韩美一区二区三区| 久久久九九九九| 国产精品灌醉下药二区| 亚洲精品免费在线| 视频一区免费在线观看| 久久草av在线| 成人免费视频播放| 日本久久精品电影| 在线不卡免费av| 久久夜色精品国产欧美乱极品| 国产日韩欧美综合一区| 亚洲欧美另类图片小说| 日韩国产一区二| 国产乱码精品一品二品| 不卡电影一区二区三区| 欧美午夜寂寞影院| 精品美女被调教视频大全网站| 久久免费视频一区| 亚洲另类中文字| 免费看欧美美女黄的网站| 成人午夜又粗又硬又大| 欧美色图免费看| 欧美精品一区二区在线播放| 亚洲人成精品久久久久久| 日本美女视频一区二区| 粉嫩aⅴ一区二区三区四区 | 欧美国产欧美亚州国产日韩mv天天看完整 | 国产一区二区按摩在线观看| 91丨九色丨黑人外教| 日韩欧美中文字幕公布| 国产精品入口麻豆九色| 伊人性伊人情综合网| 激情欧美日韩一区二区| 色综合久久综合中文综合网| 日韩精品一区二区三区在线| 亚洲欧美色一区| 黑人巨大精品欧美一区| 欧美性猛交xxxxxx富婆| 精品国精品国产尤物美女| 一区二区免费看| 国产在线精品一区二区不卡了| 一本大道综合伊人精品热热| 精品国产乱码久久久久久影片| 亚洲尤物在线视频观看| 懂色av中文字幕一区二区三区| 在线播放欧美女士性生活| 中文字幕一区二区三中文字幕| 久久精品国产**网站演员| 色综合久久中文综合久久97| 久久一区二区三区国产精品| 亚洲成人av中文| 一本到高清视频免费精品| 国产欧美在线观看一区| 免费观看91视频大全| 欧美色图第一页| 亚洲精品国产一区二区三区四区在线 | 2017欧美狠狠色| 欧美aⅴ一区二区三区视频| 色婷婷久久一区二区三区麻豆| 久久蜜臀精品av| 久草精品在线观看| 欧美一区三区二区| 五月天亚洲精品| 在线观看一区日韩| 亚洲免费高清视频在线| gogo大胆日本视频一区| 国产农村妇女精品| 国产另类ts人妖一区二区| 欧美成人一区二区三区在线观看| 午夜精品爽啪视频| 欧美麻豆精品久久久久久| 亚洲综合免费观看高清完整版在线 | av在线不卡免费看| 国产精品国产三级国产aⅴ无密码| 国产麻豆视频精品| 久久久久久电影| 国产高清视频一区| 日本一区二区三级电影在线观看 | 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品大尺度| 成人深夜在线观看| 国产精品的网站| 色欧美日韩亚洲| 亚洲自拍偷拍麻豆| 欧美日韩国产综合视频在线观看| 亚洲曰韩产成在线| 欧美电影一区二区| 久久国产福利国产秒拍| 日韩免费高清电影| 国产中文字幕一区| 亚洲国产高清不卡| 91污片在线观看| 亚洲与欧洲av电影| 日韩三级av在线播放| 国内外成人在线| 国产精品久久久久久久久快鸭 | 免费av网站大全久久| 精品福利在线导航| 成人免费看片app下载| 中文字幕一区在线观看视频| 色又黄又爽网站www久久| 天涯成人国产亚洲精品一区av| 日韩午夜在线观看视频| 国产成人亚洲综合a∨婷婷图片| 国产精品免费丝袜| 欧美久久一二区| 欧美伊人精品成人久久综合97| 免费在线观看一区二区三区| 久久夜色精品国产噜噜av| 91免费版在线|