zoukankan      html  css  js  c++  java
  • Delphi 与 DirectX 之 DelphiX(24): TDirectDrawSurface.Blt()、BltFast();


    这两个函数可不是一般的麻烦, 特别是 Blt(); 暂时搞不彻底, 这是初步尝试的例子:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DXDraws, StdCtrls, DirectX;
    
    type
      TForm1 = class(TForm)
        DXDraw1: TDXDraw;
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    const
      ImgPath1 = 'C:\Temp\DelphiX.bmp';
      ImgPath2 = 'C:\Temp\Test.bmp';
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      MySurface: TDirectDrawSurface;
      DF: TDDBltFX;
    begin
      MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
      MySurface.LoadFromFile(ImgPath1);
      DXDraw1.Surface.LoadFromFile(ImgPath2);
      DF.dwSize := SizeOf(DF);
      DF.dwDDFX := 0;
      DXDraw1.Surface.Blt(Rect(0, 0, MySurface.Width div 2, MySurface.Height div 2),
                          MySurface.ClientRect,
                          DDBLT_KEYSRC or DDBLT_WAIT,
                          DF,
                          MySurface);
      DXDraw1.Flip;
      FreeAndNil(MySurface);
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    var
      MySurface: TDirectDrawSurface;
    begin
      MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
      MySurface.LoadFromFile(ImgPath1);
      DXDraw1.Surface.LoadFromFile(ImgPath2);
      DXDraw1.Surface.BltFast(0, 0,
        Bounds(16, 4, Trunc(MySurface.Width * 0.9), Trunc(MySurface.Height * 0.9)),
        DDBLTFAST_SRCCOLORKEY or DDBLTFAST_WAIT,
        MySurface);
      DXDraw1.Flip;
      FreeAndNil(MySurface);
    end;
    
    end.
    

  • 相关阅读:
    什么是Web Service?
    按钮上显示值的轮流切换
    跟偶一起做:击退眼睛疲劳的五大运动
    Windows下权限设置详解
    实现数据分类汇总的SQL语句
    毕业不吼不快十首经典歌曲
    使用命令查看自己的外网IP地址
    如何面对30岁?
    JavaScript中this关键字使用方法详解
    发掘WinRAR的“自解压安装”功能
  • 原文地址:https://www.cnblogs.com/del/p/1376678.html
Copyright © 2011-2022 走看看