	SR2D (Software Renderer 2D) SDK.
========================================================================

SR2D       2D .    SR2D    modSR2D,  SR2D_Sprite  DLL - SR2D.dll.          ,  DLL    .
 SR2D_Sprite        ,          ,  hDC.   SR2D_Sprite     "".

========================================================================
1.   :

Option Explicit

Dim SprTest As New SR2D_Sprite

Private Sub Form_Load()
  Me.Show
  DoEvents
  Me.ScaleMode = vbPixels
  SprTest.Init Me.ScaleWidth, Me.ScaleHeight
  SprTest.ClearBuffer ARGB(0, 255, 0, 0)
  SprTest.PaintToHDC Me.hDC
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Set SprTest = Nothing
End Sub

    ,     -   .     :

Dim SprTest As New SR2D_Sprite

  ,   :

SprTest.Init Me.ScaleWidth, Me.ScaleHeight

 ()    :

SprTest.ClearBuffer ARGB(0, 255, 0, 0)

    :

SprTest.PaintToHDC Me.hDC

    :

Set SprTest = Nothing

========================================================================
2.    .
    -   .      TGA    24 RGB  32 RGBA.     :

SprTest.Init Me.ScaleWidth, Me.ScaleHeight
SprTest.ClearBuffer ARGB(0, 255, 0, 0)

 :

SprTest.LoadFromTGA "1.tga"

 "1.tga"     .
     .          .       -  ,    .
   SaveToTGA     TGA ,   WithAlpha ,   ,   (.  Bit.vbp).

========================================================================
3.     .
     -      SR2D. c :

Option Explicit

Dim SprBack As New SR2D_Sprite
Dim SprTest As New SR2D_Sprite

Private Sub Form_Load()
  Me.Show
  DoEvents
  Me.ScaleMode = vbPixels
  SprBack.Init Me.ScaleWidth, Me.ScaleHeight
  SprTest.LoadFromTGA "1.tga"
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  SprBack.ClearBuffer ARGB(0, 0, 0, 255)
  SprBack.Draw SprTest, X, Y
  SprBack.PaintToHDC Me.hDC
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Set SprTest = Nothing
  Set SprBack = Nothing
End Sub

    - SprBack,          ,  SprTest,     - .   Form_MouseMove SprBack    ,      SprTest    .  SprBack   .   "1.tga"    -    ( ).       ,   "1.tga"    ,     LoadFromTGA   ColorKey:

SprTest.LoadFromTGA "1.tga", ARGB(0, 0, 0, 0)

  (ARGB(0, 0, 0, 0))  .      . 
  ,         ColorKey    .
          .

   MulAddS2X     .   
    Mul,     Add,  
  128 (  Add -   )      2.
    .
 Water.vbp    .

========================================================================
4.  ( ).
 Draw    ,   "Op",     modSR2D    (Enum SR2D_Op).  ,        . 
     :

  OpPaint -    ,   ,   .
  OpAlphaTest -   ,         (128),        ,     .     .
  OpAlphaBlend -   ,              .
  OpAlphaCombine -        ,      .
  OpAdd2D -  ,   ,       .     .
  OpAdd -  ,   ,      ,     255,     .      ,    (.  FireAndLite.vbp).
  OpMod -        .
  OpMod2X -              255.
  OpMoveByte -    ,   MoveSrc  MoveDest        ,    0  3 (B, G, R  A ).
  OpMoveBit -    ,       MoveSrc     -,   -  ,  MoveDest.

     -  ,      .      32  -  OpAlphaBlend,    24     - OpPaint,      ColorKey -  OpAlphaTest.
,       :

SprTest.Init , , OpAlphaTest

     SprTest  " "  OpAlphaTest.

========================================================================
5. .
   BlockDraw            ,   :

SprBack.BlockDraw Spr1, 0, 0, SprBack.Width, SprBack.Height, X, Y

  SprBack  Spr1. X  Y    Spr1. (.  Font.vbp, FireAndLite.vbp).

========================================================================
6.  .
            ,     ,      .      :

SprBack.SetLockRect 50, 250, 50, 250

    SprBack   .      ( Left > Right),      .            Init  LockRect    .

========================================================================
7.   .
   ,  Draw,       - DrawMask.    Draw,      (  ),  .      .   :

Dest.DrawMask SRC, SrcMask, dX, dY, Mask, Op, NotMask

  SrcMask      ,    (Mask), ,     ,   SRC  Dest  ,      Draw.   :

Dest.DrawMask SRC, SrcMask, dX, dY, &h80000000, OpPaint

 SRC  Dest  ,    OpAlphaTest,       SRC,   SrcMask.   , ,           (     OpMod2X)    ,        (.  FireAndLite.vbp).
   SR2D   32- ,         32-  ,             ,     .    "BitMask(0) Or BitMask(13)"     .   NotMask    True     .
  Bit.vbp    32-  .

========================================================================
8.  .
   SR2D    - DrawDPBM (Dot Product Bump Mapping)  DrawEBM (Environment Bump Mapping).      , DrawDPBM   ,  DrawEBM  .
  DrawDPBM            SetDirLite.       Z,  " ".       0  1.       ( )     ,     X,  - Y,   - Z.      ,    (.  DP3.vbp).  (OpMod  OpMod2X)  DrawDPBM  ,     ,      (.  DP3_Ex.vbp).
DrawEBM     - SRCBump  SRCCol.      SRCBump,   SRCCol,        ,     X,  - Y.    DestSpace   True,            (.  Water.vbp).

========================================================================
9.    .
     - LoadFromObject.         ,   Picture,     PictureBox-.     ,     ,   PictureBox-,       .  Visible PictureBox-    False.      :

Private Sub SpriteLoadFromFile(Spr As SR2D_Sprite, fName As String, Optional ByVal ColorKey As Long = -1&)
  picIn.Picture = LoadPicture(fName)
  Spr.LoadFromObject picIn, ColorKey
  picIn.Picture = Nothing
End Sub

 picIn -  PictureBox,   AutoSize = True.          ,   "" Visual Basic,   JPG.   ,      32-   ,      ,     ColorKey.
  PictureBox   Print,   picIn.Picture = picIn.Image,        .     picIn.AutoRedraw = True (.  Font.vbp).
