# @taroxd metadata 1.0
# @display 位图功能扩展
# @id bitmap_ext
# @help 需要将 rgssdll.dll 放入 System 文件夹下。
module Taroxd
  module BitmapExt
    DLL_FILE = 'System/rgssdll'
    XOR = Win32API.new(DLL_FILE, 'bitmap_xor', 'LL', 'L')
    OR  = Win32API.new(DLL_FILE, 'bitmap_or',  'LL', 'L')
    AND = Win32API.new(DLL_FILE, 'bitmap_and', 'LL', 'L')
  end
end

class Bitmap

  include Taroxd::BitmapExt

  # 对位图的每个像素做 xor 运算。
  # color: 0xaarrggbb
  def xor!(color)
    XOR.call(__id__, color)
  end

  # 对位图的每个像素做 or 运算。
  # color: 0xaarrggbb
  def or!(color)
    OR.call(__id__, color)
  end

  # 对位图的每个像素做 and 运算。
  # color: 0xaarrggbb
  def and!(color)
    AND.call(__id__, color)
  end
end