📄 videorender.h
字号:
// DDSurface.h: interface for the CVideoRender class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DDSURFACE_H__E187AA95_6361_47D2_BEDD_D051996A4E9B__INCLUDED_)
#define AFX_DDSURFACE_H__E187AA95_6361_47D2_BEDD_D051996A4E9B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <ddraw.h>
#include "common.h"
#include "Thread.h"
#include "SyncFifo.h"
#define RECTWIDTH(lpRect) ((lpRect)->right - (lpRect)->left)
#define RECTHEIGHT(lpRect) ((lpRect)->bottom - (lpRect)->top)
class CVideoRender : public Thread
{
public:
CVideoRender();
virtual ~CVideoRender();
//Operaters:
public:
int CreateVideoRender(HWND hWnd, TWriteFrameCB cb, double dFps, int nWidth, int nHeight);
int DestroyVideoRender();
BOOL Play();
BOOL Stop();
void SetSpeed();
void OnPaint();
void SetCurPlayTime(DWORD nCurPlayTime){m_bSyncCtrl = TRUE, m_nCurPlayTime = nCurPlayTime;}
DWORD GetCurPlayTime(){return m_nLastFrameTime;}
private:
static UINT WINAPI ThreadEntry(void *lpParam);
int InitDirectDraw(HWND hWnd, int nWidth, int nHeight);
void DestroyDDraw();
void RunVideoRender();
BOOL Draw(HWND hWnd);
void Restore();
HRESULT Blt(LPRECT pDestRect, LPRECT pSrcRect, CONST VOID *lpBits, CONST BITMAPINFO *lpBitsInfo);
//Attributes:
public:
CSyncFifo * m_pVideoStream;
HWND m_hWnd;
private:
HANDLE m_hStop;
HANDLE m_hPause;
HANDLE m_hWait;
TWriteFrameCB m_pWriteFrameCB;
ThreadState m_nState;
BYTE *m_pBackFrame;
LPDIRECTDRAW7 m_pDD; // DirectDraw object
LPDIRECTDRAWSURFACE7 m_pDDSPrimary; // DirectDraw frontbuffer surface
LPDIRECTDRAWSURFACE7 m_pDrawSurface; // DirectDraw backbuffer surface
LPDIRECTDRAWPALETTE m_pDDPalette;
LPDIRECTDRAWCLIPPER m_pClipper;
BITMAPINFO m_BitmapInfo;
DDSURFACEDESC2 m_DDSD;
RECT m_ClipRect;
double m_dFps;
DWORD m_nDisplayTime;
DWORD m_nCurPlayTime;
BOOL m_bSyncCtrl;
int m_nSpeed;
DWORD m_nLastFrameTime;
int m_nDeltaTime;
DWORD m_nWidth;
DWORD m_nHeight;
DWORD m_BPP;
HHOOK m_hhkLowLevelKybd;
};
#endif // !defined(AFX_DDSURFACE_H__E187AA95_6361_47D2_BEDD_D051996A4E9B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -