zoukankan      html  css  js  c++  java
  • 《Windows游戏编程技巧大师》就DirectDraw而创建DirectDraw知识笔记

     

    1.DirectDraw 这可能是Directx中最重要的技术,由于它是2D图形赖以实现的渠道。也是Direct3D构建于其上的帧缓冲层。

    2.DirectDraw是由非常多借口组成的。共同拥有5个接口


         I. IUnknown 全部COM对象都必须从这个基本借口派生,DirectDraw也不例外。

    IUnknown仅仅包括Addref(),Release()和 QueryInterface() 三个函数。这些函数在其它接口中会被复写。


         II.  IDirectDraw 这是開始使用DirectDraw时必须创建的主接口对象。


         III. IDirectDrawSurface 这表示你用DirectDraw创建、控制和现实的实际显示表面。


         IIII. IDirectDrawPalette 支持以使用256或者更少的颜色在视频模式下处理调色板。


         V. IDirectDrawClipper 用于剪切DirectDraw光栅和位图操作到一些可见显示表面的子集。

     

    3.创建一个DirectDraw

     

         I. 创建主DirectDraw对象并使用 QueryInterface() 来得到一个IDirectDraw7接口。或者直接使用DirectDrawCreateEx()创建一个DirectDraw7接口。


         II. 使用IDirectDrawSurface7接口至少创建一个主显示表面用以画图。


         III. 用IDirectDrawPalette接口创建一个色板。用RGB三元组初试化并配置到相关显示表面中。


         IIII. 假设DirectDraw应用程序要使用窗体。或者要降低位图以免溢出DirectDraw显示表面的可见边界,你至少须要创建一个裁剪器并将其尺寸设置为可见窗体的范围。


         V. 在主显示表面上画图。

    4创建DirectDraw对象的三种方法

     

        I. 利用 QueryInterface() 对版本号经行升级

       

       LPDIRECTDRAW lpdd = NULL;
       LPDIRECTDRAW lpdd7 =NULL;
     
       if(FAILED(DirectDrawCreate(NULL,&lpdd,NULL)))
       {
             //error
        }
     
        if(FAILED(lpdd->QueryInterface(IID_IDirectDraw7,(LPVOID *)&lpdd7)))
        {
            //error
        }

        ps:接口标示符格式
              IID_IDirectCD
              当中字符C表示组件:Draw代表DirectDraw。Sound代表DirectSound,Input代表DirectInput,以此类推。字符D是一个从2~N的数字。代指你须要接口。

     

        II.调用底层的COM创建IDirectDraw7

     

      if(FAILED(CoInitialize(NULL)))
      {
    	//error
      }
      if(FAILED(CoCreateInstance(&CLSID_DirectDraw,NULL,CLSCTX_All,&IID_IDirectDraw7,&lpdd7)))
      {
    	//error
      }
      if(FAILED(IDirectDraw7_Initialize(lpdd7,NULL)))
      {
    	//error
      }
      CoUninitialize();


        III.使用 DirectDrawCreateEx() 函数创建 IDirectDraw7

        LPDIRECTDRAW lpdd;
        DirectDrawCreateEx(NULL,(void *)&lpdd,IID_IDirectDraw7,NULL);




       

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    【BZOJ4033】【HAOI2015】树上染色
    【BZOJ1040】【ZJOI2008】骑士
    【BZOJ3573】【HNOI2014】米特运输
    【BZOJ1060】【ZJOI2007】时态同步
    17-10-11模拟赛
    17-10-05模拟赛
    17-09-29模拟赛
    17-09-21模拟赛
    17-09-20模拟赛
    17-09-15模拟赛
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4812169.html
Copyright © 2011-2022 走看看