📄 复件 freedirectdraw.h
字号:
// FreeDirectDraw.h : Declaration of the CFreeDirectDraw
#ifndef __FREEDIRECTDRAW_H_
#define __FREEDIRECTDRAW_H_
#include "resource.h" // main symbols
#include "FreeDirectDrawDef.h"
#include "FreeDirectDrawDataStruct.h"
/////////////////////////////////////////////////////////////////////////////
// CFreeDirectDraw
class ATL_NO_VTABLE CFreeDirectDraw :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFreeDirectDraw, &CLSID_FreeDirectDraw>,
public IDispatchImpl<IFreeDirectDraw, &IID_IFreeDirectDraw, &LIBID_FREEDIRECTXLib>
{
public:
CFreeDirectDraw()
{
m_h_wnd = NULL;
m_n_bit = 8;
m_n_width = 640;
m_n_height = 480;
m_clock_count = 0.0;
m_dd = NULL;
m_prim_surface = NULL;
m_back_surface = NULL;
m_clipper = NULL;
m_palette = NULL;
m_log.SetIniFileName( "DirectDraw.log" );
m_ini.SetIniFileName( "FreeDirect.ini" );
}
DECLARE_REGISTRY_RESOURCEID(IDR_FREEDIRECTDRAW)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CFreeDirectDraw)
COM_INTERFACE_ENTRY(IFreeDirectDraw)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// IFreeDirectDraw
private:
HWND m_h_wnd; //游戏窗口
int m_n_bit; //单个像素的位数
int m_n_width; //屏幕的宽度
int m_n_height; //屏幕的高度
double m_clock_count; //用来锁定刷新率
LPDIRECTDRAW7 m_dd; //DirectDraw对象
LPDIRECTDRAWSURFACE7 m_prim_surface; //主页面
LPDIRECTDRAWSURFACE7 m_back_surface; //后页面
LPDIRECTDRAWCLIPPER m_clipper; //页面剪切(用来前切后页面)
LPDIRECTDRAWPALETTE m_palette; //调色板(8位图像时使用)
PALETTEENTRY m_palatte_entry[MAX_PALETTE_COLORS]; //调色板数据
CLog m_log; //日志类
CIni m_ini; //配置文件类
private:
int CreatePalatte();
int SetClipper(LPDIRECTDRAWSURFACE7 lpdds, int num, LPRECT clip_list );
int UpdatePalette(PALETTEENTRY* lp_palette_entry);
int Flip_Bitmap( BITMAP_FILE_PTR lp_bitmap );
public:
STDMETHOD(LoadFromConfigFile)(/*[in]*/ULONG config_struct_ptr);
STDMETHOD(ReleaseOffScreenPlain)(/*[in]*/ULONG plain_ptr);
STDMETHOD(UnloadBitmapFile)(/*[in]*/ULONG bitmap_file_ptr);
STDMETHOD(CreateOffScreenPlain)(/*[in]*/ULONG plain_ptr,/*[in]*/int nWidth,/*[in]*/int nHeight,/*[in]*/ULONG
dwFlags);
STDMETHOD(ShowUnit)(/*[in]*/ULONG plain_ptr,/*[in]*/int x_pos,/*[in]*/int y_pos);
STDMETHOD(CopyBitmapToPlain08)(/*[in]*/ULONG bitmap_file_ptr,/*[in]*/ULONG plain_ptr);
STDMETHOD(LoadBitmapFile)(/*[in]*/ULONG bitmap_file_ptr,/*[in]*/ULONG bitmap_file_name);
STDMETHOD(Wait_Clock)(/*[in]*/double count);
STDMETHOD(Start_Clock)();
STDMETHOD(Flip)();
STDMETHOD(DrawRandPixel_08)(/*[in]*/int nCount);
STDMETHOD(UpdatePalette)(/*[in]*/ULONG lp_palette_entry);
STDMETHOD(SetClipper)(/*[in]*/int nNum,/*[in]*/ULONG lp_rect);
STDMETHOD(UnInit)();
STDMETHOD(Init)(/*[in]*/ULONG hWnd,/*[in]*/int nWidth,/*[in]*/int nHeight,/*[in]*/int nBit);
};
#endif //__FREEDIRECTDRAW_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -