…
public:
NewGPE(void);
virtual INT NumModes(void);
virtual SCODE SetMode(INT modeId, HPALETTE *palette);
virtual INT InVBlank(void);
virtual SCODE SetPalette(const PALETTEENTRY *source, USHORT firstEntry, USHORT numEntries);
virtual SCODE GetModeInfo(GPEMode *pMode, INT modeNumber);
virtual SCODE SetPointerShape(GPESurf *mask, GPESurf *colorSurface, INT xHot, INT yHot, INT cX, INT cY);
virtual SCODE MovePointer(INT xPosition, INT yPosition);
virtual void WaitForNotBusy(void);
virtual INT IsBusy(void);
virtual void GetPhysicalVideoMemory(unsigned long *physicalMemoryBase, unsigned long *videoMemorySize);
virtual SCODE AllocSurface(GPESurf **surface, INT width, INT height, EGPEFormat format, INT surfaceFlags);
virtual SCODE Line(GPELineParms *lineParameters, EGPEPhase phase);
virtual SCODE BltPrepare(GPEBltParms *blitParameters);
virtual SCODE BltComplete(GPEBltParms *blitParameters);
virtual ULONG GetGraphicsCaps();
virtual ULONG DrvEscape(
SURFOBJ *pso,
ULONG iEsc,
ULONG cjIn,
PVOID pvIn,
ULONG cjOut,
PVOID pvOut);
SCODE WrappedEmulatedLine (GPELineParms *lineParameters);
void CursorOn(void);
void CursorOff(void);
#ifdef ROTATE
void SetRotateParms();
LONG DynRotate(i电感器生产厂家nt angle);
#endif
};
类NewGPE从GPE类上面继承,其中包括一些属性,如下:
m_ModeInfo:显示模式,结构如下
struct GPEMode {
int modeId; //开发者定义的显示模式的索引号
int width; //显示宽度
int height; //显示高度
int Bpp; //显示深度
int frequency; //显示频率
EGPEFormat format; // RGB格式,各占多少bit
};
m_colorDepth:显示深度
m_VirtualFrameBuffer:FrameBuffer的地址
m_FrameBufferSize:FrameBuffer的大小
m_CursorDisabled:光标使能标记
m_CursorVisible:光标可视标记
用户可以根据需要定义相应的属性,在NewGPE类中,需要定义并实现基类中的纯虚函数,上面的NewGPE类中已经包含了这些函数的定义,还包括了其他一些函数,将在下面介绍。
2 实现GetGPE函数
在定义了NewGPE类之后,我们需要实现一个实例,首先定义一个该类的指针:
static GPE *gGPE = (GPE*)NULL;
然后实现GetGPE函数,如下:
GPE *GetGPE(void)
{
if (!gGPE)
{
gGPE = new NewGPE();
}
return gGPE;
}
在该函数中,创建了一个NewGPE的实例。在这个时候NewGPE构造函数会被调用,一般我们会在这里面作一些与显示相关的初始化的工作。该函数返回gGPE指针给上层接口。
3 实现DrvEnableDriver和DisplayInit函数
Display驱动对上层的GWES模块提供了20多个函数接口,但是这些函数并不是直接提供出来的,实际上只是通过一个DrvEnableDri深圳电感厂ver(..)函数来完成的。该函数在Display驱动的M插件电感器DD层中没有实现,所以需要在PDD层中定义,如下:
BOOL APIENTRY DrvEnableDriver(ULONG engineVersion, ULONG cj, DRVENABLEDATA *data, PENGCALLBACKS engineCallbacks)
{
BOOL fOk = FALSE;
// make sure we know where our registry configuration is
if(gszBaseInstance[0] != 0) {
fOk = GPEEnableDriver(engineVersion, cj, data, engineCallbacks);
}
return fOk;
}
engineVersion:DDI版本号,目前为DDI_DRIVER_VERSION。
cj:DRVENABLEDATA结构的大小。
data:指向DRVENABLEDATA结构体。
engineCallbacks:指向一个回调函数结构体,传入一些GDI函数到Display驱动中。1
概述:S11-R(M)系列R型卷铁心式电力变压器是根据铁路及地方电力系统运行特点研制开发的新一代供电设备,是原S9系列的更新换代产品,与传统铁心结构的新S9型变压器相比,当额定容量、负载损耗、短期阻抗 核磁共振成像 (MRI) 使用射频波和强磁场而非 X 射线来提供异常清晰且详细的内脏器官和组织的 2D 及 3D 图片。方框图设计注意事项ADS5500可应用于医疗 MRI 设备的设计中。14 位分辨 成功CRM的三板斧 经过了一段时间的考验和沉淀之后,CRM项目实施的总体效果如何,如何更成功地完成企业的CRM项目,需要深层次地总结。 不同的行业、不同的企业规模和企业性质对CRM显然有不同的需求,
上一篇: 一种雷达通用信号处理系统的实现与应用
下一篇:功率电感器
2/4 首页 上一页 1 2 3 4 下一页 尾页 |