home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Widgets / DistortFX.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-10-27  |  4.6 KB  |  135 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Raster
  5. import BImagex
  6.  
  7. class B_DistortFX:
  8.     
  9.     def __init__(self, dist_size = 45, color = (255, 10, 10)):
  10.         self.Filter = None
  11.         self.SelectionFilter = None
  12.         self.FilterUpdated = 0
  13.         self.SelectionFilterUpdated = 0
  14.         self._foc = 0
  15.         self.FilterIncX = 0
  16.         self.FilterIncY = 2
  17.         self.DistSize = dist_size
  18.         self.R = color[0]
  19.         self.G = color[1]
  20.         self.B = color[2]
  21.  
  22.     
  23.     def __del__(self):
  24.         print 'B_TextFXWidget.__del__()', self.Name()
  25.         if self.Filter is not None:
  26.             self.Filter.ClearBuffer()
  27.         
  28.  
  29.     
  30.     def __str__(self):
  31.         print 'B_TextFXWidget widget with text', self.GetTextData()
  32.  
  33.     
  34.     def CreateDistorsion(self, x, y, time = 0):
  35.         (w, h) = self.GetSize()
  36.         self.SelectionFilter = BImagex.B_SideDistortFilter()
  37.         self.SetColor(self.R, self.G, self.B)
  38.         self.FilterIncX = self.FilterIncX + 6
  39.         self.FilterIncY = 2
  40.         self.SelectionFilter.SetDistance(self.FilterIncX)
  41.         self.DefDraw(x, y, time)
  42.         self.SelectionFilter.SetImageBuffer(w + 2 * self.FilterIncX, h + 2 * self.FilterIncY)
  43.         bud_address = self.SelectionFilter.GetImageBuffer()
  44.         Raster.GetImage(x - self.FilterIncX, y - self.FilterIncY, w + 2 * self.FilterIncX, h + 2 * self.FilterIncY, 'RGB', '', self.SelectionFilter.GetBufferSize(), bud_address)
  45.         self.SelectionFilter.CopyToBuffer2()
  46.         self.SelectionFilter.Apply()
  47.  
  48.     
  49.     def CreateBlur(self, x, y, time = 0, width = 0, height = 0):
  50.         if width != 0 and height != 0:
  51.             (w, h) = (width, height)
  52.         else:
  53.             (w, h) = self.GetSize()
  54.         self.Filter = BImagex.B_GridSubFilter()
  55.         if self.AcceptsFocus():
  56.             self.SetColor(self.R, self.G, self.B)
  57.         else:
  58.             self.SetColor(self.R * 0.23, self.G * 0.23, self.B * 0.23)
  59.         self.Filter.SetCoefficients([
  60.             0,
  61.             1,
  62.             1,
  63.             1,
  64.             0,
  65.             0,
  66.             1,
  67.             1,
  68.             1,
  69.             0,
  70.             0,
  71.             1,
  72.             1,
  73.             1,
  74.             0,
  75.             0,
  76.             1,
  77.             1,
  78.             1,
  79.             0,
  80.             0,
  81.             1,
  82.             1,
  83.             1,
  84.             0])
  85.         self.DefDraw(x, y, time)
  86.         self.Filter.SetImageBuffer(w + 4, h + 4)
  87.         bud_address = self.Filter.GetImageBuffer()
  88.         Raster.GetImage(x - 2, y - 2, w + 4, h + 4, 'RGB', '', self.Filter.GetBufferSize(), bud_address)
  89.  
  90.     
  91.     def Draw(self, x, y, time):
  92.         if self.GetVisible() == 0:
  93.             return None
  94.         
  95.         foc = self.GetHasFocus()
  96.         if foc != self._foc:
  97.             self.SelectionFilterUpdated = 0
  98.             self.FilterIncX = 0
  99.         
  100.         self._foc = foc
  101.         (w, h) = self.GetSize()
  102.         if not foc:
  103.             if self.SelectionFilterUpdated:
  104.                 Raster.SetPosition(x - self.FilterIncX, y - self.FilterIncY)
  105.                 Raster.DrawImage(w + 2 * self.FilterIncX, h + 2 * self.FilterIncY, 'RGB', 'Native', self.SelectionFilter.GetImageBuffer())
  106.                 return None
  107.             
  108.         elif self.FilterUpdated:
  109.             Raster.SetPosition(x - 2, y - 2)
  110.             Raster.DrawImage(w + 4, h + 4, 'RGB', 'Native', self.Filter.GetImageBuffer())
  111.             return None
  112.         
  113.         self.SetAlpha(1.0)
  114.         if not foc:
  115.             self.CreateDistorsion(x, y, time)
  116.             if self.Filter is None:
  117.                 self.CreateBlur(x, y, time)
  118.             
  119.             (sfw, sfh) = self.Filter.GetDimension()
  120.             self.SelectionFilter.CopySubBuffer(self.FilterIncX - 2, 0, sfw, sfh, self.Filter.GetImageBuffer(), 'AddInc')
  121.             self.SelectionFilter.GetFromBuffer2('Substract')
  122.             Raster.SetPosition(x - self.FilterIncX, y - self.FilterIncY)
  123.             Raster.DrawImage(w + 2 * self.FilterIncX, h + 2 * self.FilterIncY, 'RGB', 'Native', self.SelectionFilter.GetImageBuffer())
  124.             if self.FilterIncX > self.DistSize:
  125.                 self.SelectionFilterUpdated = 1
  126.             else:
  127.                 self.SelectionFilterUpdated = 0
  128.         else:
  129.             self.CreateBlur(x, y, time)
  130.             Raster.SetPosition(x - 2, y - 2)
  131.             Raster.DrawImage(w + 4, h + 4, 'RGB', 'Native', self.Filter.GetImageBuffer())
  132.             self.FilterUpdated = 1
  133.  
  134.  
  135.