TestBitmapEffect Class Reference

Test class. More...

#include <bfxtest.h>

Inheritance diagram for TestBitmapEffect:

BitmapEffect BitmapEffectBase ListItem CCObject SimpleCCObject List of all members.

Public Member Functions

BOOL Run ()
 Internal test routine.

Private Member Functions

 CC_DECLARE_DYNCREATE (TestBitmapEffect)

Detailed Description

Test class.

Author:
Alex_Bligh (Xara Group Ltd) <camelotdev@xara.com>
Date:
12/10/1994
This class is for test purposes only

Definition at line 117 of file bfxtest.h.


Member Function Documentation

TestBitmapEffect::CC_DECLARE_DYNCREATE TestBitmapEffect   )  [private]
 

BOOL TestBitmapEffect::Run  )  [virtual]
 

Internal test routine.

Author:
Alex_Bligh (Xara Group Ltd) <camelotdev@xara.com>
Date:
12/10/94
Parameters:
a value [INPUTS]
none [OUTPUTS]
Returns:
nothing

Errors: none

See also:
-
A test routine

Reimplemented from BitmapEffectBase.

Definition at line 142 of file bfxtest.cpp.

00143 {
00144 
00145 /*
00146     INT32 x, y, i, j;
00147     
00148     fixed16 conv[3][3];
00149     fixed16 convsum;
00150 
00151     BitmapInfo BMInfo;
00152     Source->ActualBitmap->GetInfo(&BMInfo);
00153 
00154     conv[0][0]=(fixed16)    2.0;    conv[0][1] =(fixed16)   2.0;    conv[0][2]=(fixed16)    2.0;
00155     conv[1][0]=(fixed16)    2.0;    conv[1][1] =(fixed16)   2.0;    conv[1][2]=(fixed16)    2.0;
00156     conv[2][0]=(fixed16)    2.0;    conv[2][1] =(fixed16)   2.0;    conv[2][2]=(fixed16)    2.0;
00157 
00158     convsum=(fixed16) 0.0;
00159 
00160     for (i=0; i<3; i++) for(j=0; j<3; j++) convsum+=conv[i][j];
00161     if (convsum!=(fixed16)0) for (i=0; i<3; i++) for(j=0; j<3; j++) conv[i][j]=conv[i][j]/convsum;
00162 
00163     for (y=0; y<(INT32) BMInfo.PixelHeight; y++) for (x=0; x<(INT32) BMInfo.PixelWidth; x++)
00164     {
00165         fixed16 r=0.5; //0.5 for final rounding
00166         fixed16 g=0.5;
00167         fixed16 b=0.5;
00168         UINT32 v;
00169         for (i=0; i<3; i++) for(j=0; j<3; j++)
00170         {
00171             v=Source->ReadPixel( (i+x-1<0?0:(i+x-1>=(INT32)BMInfo.PixelWidth?BMInfo.PixelWidth-1:i+x-1)),
00172                                  (j+y-1<0?0:(j+y-1>=(INT32)BMInfo.PixelHeight?BMInfo.PixelHeight-1:j+y-1)));                                 
00173             r+=conv[i][j]*(fixed16)((INT32)(v & 0xFF));
00174             g+=conv[i][j]*(fixed16)((INT32)((v & 0xFF00)>>8));
00175             b+=conv[i][j]*(fixed16)((INT32)((v & 0xFF0000)>>16));
00176         }
00177         if (convsum==(fixed16)0)
00178         {
00179             r+=128;
00180             g+=128;
00181             b+=128;
00182         }
00183         if (r<0) r=0;
00184         if (g<0) g=0;
00185         if (b<0) b=0;
00186         if (r>255) r=255;
00187         if (g>255) g=255;
00188         if (b>255) b=255;
00189         Destination->PlotPixel(x,y,(r.MakeLong())+((g.MakeLong())<<8)+((b.MakeLong())<<16) );
00190     }
00191     
00192     return TRUE;
00193 */
00194     TCHAR buf[256];
00195     
00196     clock_t Timer = clock();                                            // start clock
00197 
00198     INT32 i,j;
00199     INT32 ITER;
00200     BOOL dummybool=TRUE;
00201     BOOL ShiftPressed;
00202     KernelBitmap * Temp;
00203     
00204     ShiftPressed = ((GetAsyncKeyState( CAMKEY(SHIFT) ) & 0x8000 )!=0);
00205 
00206 
00207     if (ShiftPressed)
00208     {
00209         ITER=1;
00210     }
00211     else
00212     {
00213         ITER=1;
00214     }
00215     
00216     
00217 //BfxALULUT LUT;
00218 //LUT.LinearABK(0.09375,0.90625,0);
00219 //Timer = clock() - Timer;                                          // stop clock
00220     
00221     for (i=1; i<=ITER; i++)
00222     {
00223         if ((Temp = ALU->NewBitmap(Source)) &&
00224             ALU->SetA(Temp) &&
00225             ALU->ZeroA() &&
00226             ALU->SetB(Source) &&
00227             ALU->SetT((DWORD) 0x00) &&
00228             ALU->PartTAB() &&
00229             TRUE)
00230         {   
00231             for (j=1; j<=10; j++)
00232                 dummybool=(
00233         
00234             ALU->SetA(Destination) &&
00235             ALU->ZeroA() &&
00236         
00237             ALU->SetB(Temp) &&
00238             ALU->AddKAB(0x80) &&
00239 
00240             ALU->ZeroA() &&
00241         
00242             ALU->SetB(Temp) &&
00243             ALU->AddKAB(0x80) &&
00244 
00245             ALU->SetB(Temp,0,1) &&
00246             ALU->AddKAB(0x18) &&    
00247 
00248             ALU->SetB(Temp,0,-1) &&
00249             ALU->AddKAB(0x18) &&    
00250         
00251             ALU->SetB(Temp,1,0) &&
00252             ALU->AddKAB(0x18) &&    
00253         
00254             ALU->SetB(Temp,-1,0) &&
00255             ALU->AddKAB(0x18) &&
00256 
00257             ALU->SetB(Temp,1,1) &&
00258             ALU->AddKAB(0x08) &&    
00259         
00260             ALU->SetB(Temp,-1,1) &&
00261             ALU->AddKAB(0x08) &&    
00262         
00263             ALU->SetB(Temp,1,-1) &&
00264             ALU->AddKAB(0x08) &&    
00265         
00266             ALU->SetB(Temp,-1,-1) &&
00267             ALU->AddKAB(0x08) &&
00268 
00269             ALU->SetA(Temp) &&
00270             ALU->SetB(Destination) &&
00271             ALU->PartTAB() &&
00272         
00273             TRUE);
00274 
00275             delete Temp;
00276         }
00277     }
00278     Timer = clock() - Timer;                                            // stop clock
00279 
00280 //ALU->SetA(Destination);
00281 //ALU->SetB(Source,-20,20);
00282 //ALU->PlotBLUT(&LUT);
00283 
00284     // as this is for our use only, it is permitted to hard-code English strings
00285 
00286     // this lovely line translates the clock_t value into a useful value without using
00287     // floats
00288     wsprintf( buf, "Done %d iterations. Each took %d.%03d secs",    ITER, (INT32)(Timer / (CLOCKS_PER_SEC*ITER)),
00289                                 (INT32)((Timer % (CLOCKS_PER_SEC*ITER)) * 1000 / (CLOCKS_PER_SEC*ITER)) );
00290 
00291     if (ShiftPressed) AfxMessageBox( buf );
00292 
00293     return dummybool;
00294     }


The documentation for this class was generated from the following files:
Generated on Sat Nov 10 04:01:42 2007 for Camelot by  doxygen 1.4.4