DirectDraw】的更多相关文章

显然DirectDraw是Windows下写2D图形程序的最好选择,虽然Direct3D也可以写,但是没DirectDraw简单方便,特别对于初学者,一来就接触那么多函数和参数总不是件愉快的事,所以我的文章主要结合我做的工作,谈谈DirectDraw编程中一些比较关键的技术,大多是我自己想出来的.我想先声明,我的文章可以任意转载,源代码可以任意使用和修改. 由于我是业余时间写的文章,所以只能每次发表一篇,希望我的工作可以为大家的游戏增光添彩,同时我的文章主要面向有基本C++,DirectDraw…
  来自:   #include "DDraw.h" class CDDraw { public: void CleanUp(); void DrawDIB(BITMAPINFOHEADER* pBI,char* pData,RECT*rt); BOOL Init(HWND hWnd,int nWidth,int nHeight); CDDraw(); virtual ~CDDraw(); private: HWND m_hDrawWnd; LPDIRECTDRAW lpDD; //…
原因是: DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应该调用 IDirectDrawSurface 接口方法 Restore 来恢复表面(重新申请内存或显存). 伪代码如下: hr = m_lpDDSOffscreen->Lock(rcDest,&…
调用DirectDraw接口步骤: 1.       包含链接库ddraw.lib 2.       初始化窗口类型(全屏独占时类型用popup). 3.       在初始化窗口后初始化DirectDraw(使用函数DirectDrawCreate) 4.       创建DirectDraw实例指针lpDD. 5.       lpDD->SetCooperativeLevel设置显示全屏独占还是窗体. 6.        lpDD->SetDisplayMode(640,480,8)设置…
一.DirectDraw接口 DirectDraw接口图如下: 1.IUnknown:所有COM对象都必须从这个基本接口派生 2.IDirectDraw:这是开始使用DirectDraw时必须创建的主接口对象 3.IDirectDrawSurface:这表示你用DirectDraw创建.控制和显示的实际显示表面.分两种:主显示表面(Primary Surface)和从显示表面(Secondary Surface) 4.IDirectDrawPalette:使用256或更少的颜色在视频模式下处理调…
1.DirectDraw 这可能是Directx中最重要的技术,由于它是2D图形赖以实现的渠道.也是Direct3D构建于其上的帧缓冲层. 2.DirectDraw是由非常多借口组成的.共同拥有5个接口 I. IUnknown 全部COM对象都必须从这个基本借口派生,DirectDraw也不例外. IUnknown仅仅包括Addref(),Release()和 QueryInterface() 三个函数.这些函数在其它接口中会被复写. II.  IDirectDraw 这是開始使用DirectD…
<Windows Graphics Programming Win32 GDI and DirectDraw>6.1节中有这样的描述: The Windows NT/2000 graphics engine uses signed fixed-point numbers to represent coordinates, having a 4-bit fraction part and a 28-bit signed integer part. Points with negative coo…
头文件 [cpp] view plaincopyprint? #pragma once #include <vector> using namespace std; #include <DShow.h> #include <uuids.h> #define DXIMAGE_WIDTH   1024 #define DXIMAGE_HEIGHT  768 class CDXImage { public: CDXImage(void); ~CDXImage(void); /…
最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据) 1.在DirectDraw中创建YUV表面 与一般表面不同的是,创建YUV表面时需要指定象素格式,并指定YUV数据…
DirectDraw对象 DirectDraw对象是DirectDraw应用程序的核心.它是你在建立DirectDraw应用程序时所要创建的第一个对象,再用它来创建所有其它相关的对象.通过调用DirectDrawCreate函数可以创建一个DirectDraw对象.DirectDraw 对象通过IDirectDraw(移动版本仅支持这个),IDirectDraw2,和IDirectDraw4接口为开发者提供其函数性. DirectDrawSurface对象 DirectDrawSurface对象…