CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/2d/VS32Bitmap.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ V S 3 2 B I T M A P _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ V S 3 2 B I T M A P _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / 2 d / V S B a s e . H > 
00008  
00009  # i n c l u d e < s t r i n g . h > 
00010  
00011  n a m e s p a c e   h g l 
00012  
00013  { 
00014  
00015      / * * 
00016  
00017      *   3 2 MOrZbO\U^[s{|
00018  
00019      * / 
00020  
00021      c l a s s   V S 3 2 B i t m a p : p u b l i c   V S B a s e                                                                                                                                     / / / 3 2 MOrZbO\U^[s{|
00022  
00023      { 
00024  
00025      p r o t e c t e d :     / / Q萹el
00026  
00027  
00028  
00029          v o i d   _ P u t P i x e l ( i n t   x , i n t   y ) { * ( u i n t 3 2   * ) ( s c a n l i n e [ y ] + ( x < < 2 ) ) = C o l o r ; } 
00030  
00031          v o i d   _ H L i n e ( i n t   x , i n t   y , i n t   n ) { m e m s e t ( s c a n l i n e [ y ] + ( x < < 2 ) , C o l o r , n * s i z e o f ( u i n t 3 2 ) ) ; } 
00032  
00033          v o i d   _ V L i n e ( i n t   x , i n t   y , i n t   n ) 
00034  
00035          { 
00036  
00037              x < < = 2 ; 
00038  
00039  
00040  
00041              w h i l e ( n - - ) 
00042  
00043                  * ( u i n t 3 2   * ) ( s c a n l i n e [ y + + ] + x ) = C o l o r ; 
00044  
00045          } 
00046  
00047                                                                                                      
00048  
00049          v i r t u a l   v o i d   S p l i t T o R G B ( u i n t 8   * , u i n t 8   * , u i n t 8   * , i n t , i n t , i n t ) = 0 ; 
00050  
00051          v i r t u a l   v o i d   S p l i t T o R G B A ( u i n t 8   * , u i n t 8   * , u i n t 8   * , u i n t 8   * , i n t , i n t , i n t ) = 0 ; 
00052  
00053          
00054  
00055          v i r t u a l   v o i d   D r a w R G B ( u i n t 8   * , u i n t 8   * , u i n t 8   * , i n t , i n t , i n t ) = 0 ; 
00056  
00057          v i r t u a l   v o i d   D r a w R G B A ( u i n t 8   * , u i n t 8   * , u i n t 8   * , u i n t 8   * , i n t , i n t , i n t ) = 0 ; 
00058  
00059  
00060  
00061      p u b l i c :   / / ^\'`
00062  
00063  
00064  
00065          u n s i g n e d   _ _ i n t 3 2   C o l o r ;                                                                                                                                           / / / < S_MR~Vr
00066  
00067  
00068  
00069          u i n t 3 2   * G e t P i x e l B u f f e r ( ) { r e t u r n   ( u i n t 3 2   * ) p i x e l _ b u f f e r ; }                                     / / / < a }Q:S
00070  
00071          u i n t 3 2   * G e t S c a n L i n e ( i n t   r o w ) { r e t u r n   ( r o w < 0 | | r o w > = v s H e i g h t ) ? 0 : ( u i n t 3 2   * ) s c a n l i n e [ r o w ] ; }         / / / < kbc~
00072  
00073  
00074  
00075      p u b l i c : 
00076  
00077  
00078  
00079          V S 3 2 B i t m a p ( ) { C o l o r = 0 ; }                                                                                                                                             / / / < ,g{|g Qpe
00080  
00081          v i r t u a l   ~ V S 3 2 B i t m a p ( ) { }                                                                                                                                   / / / < ,g{|ggQpe
00082  
00083  
00084  
00085          b o o l   C r e a t e ( i n t   w , i n t   h ) { r e t u r n   C r e a t e B u f f e r ( w , h , 3 2 ) ; }                                                                             / / / < R^ZbO\U^
00086  
00087          u i n t 8   * G e t P o i n t e r ( i n t   x , i n t   y ) { r e t u r n   ( u i n t 8   * ) ( G e t S c a n L i n e ( y ) + x ) ; } 
00088  
00089  
00090  
00091          v i r t u a l   v o i d   S e t C o l o r ( i n t , i n t , i n t , i n t = 2 5 5 ) = 0 ; 
00092  
00093      } ; 
00094  
00095  
00096  
00097      / * * 
00098  
00099      *   3 2 MOR G B A <h_rZbO\U^[s{|
00100  
00101      * / 
00102  
00103      c l a s s   V S R G B A : p u b l i c   V S 3 2 B i t m a p                                                                                                                                     / / / 3 2 MOR G B A <h_rZbO\U^[s{|
00104  
00105      { 
00106  
00107          v o i d   S p l i t T o R G B ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , i n t   x , i n t   y , i n t   n ) 
00108  
00109          {                                 
00110  
00111              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00112  
00113  
00114  
00115              w h i l e ( n - - ) 
00116  
00117              {                         
00118  
00119                  * r + + = * s p + + ; 
00120  
00121                  * g + + = * s p + + ; 
00122  
00123                  * b + + = * s p + + ; 
00124  
00125                  s p + + ; 
00126  
00127              }                   
00128  
00129          } 
00130  
00131          
00132  
00133          v o i d   S p l i t T o R G B A ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , u i n t 8   * a , i n t   x , i n t   y , i n t   n ) 
00134  
00135          {                             
00136  
00137              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00138  
00139  
00140  
00141              w h i l e ( n - - ) 
00142  
00143              {                         
00144  
00145                  * r + + = * s p + + ; 
00146  
00147                  * g + + = * s p + + ; 
00148  
00149                  * b + + = * s p + + ; 
00150  
00151                  * a + + = * s p + + ; 
00152  
00153              } 
00154  
00155          } 
00156  
00157  
00158  
00159          v o i d   D r a w R G B ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , i n t   x , i n t   y , i n t   n ) 
00160  
00161          {                   
00162  
00163              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00164  
00165  
00166  
00167              w h i l e ( n - - ) 
00168  
00169              { 
00170  
00171                  * t p + + = * r + + ; 
00172  
00173                  * t p + + = * g + + ; 
00174  
00175                  * t p + + = * b + + ; 
00176  
00177                  t p + + ; 
00178  
00179              } 
00180  
00181          } 
00182  
00183          
00184  
00185          v o i d   D r a w R G B A ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , u i n t 8   * a , i n t   x , i n t   y , i n t   n ) 
00186  
00187          {           
00188  
00189              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00190  
00191  
00192  
00193              w h i l e ( n - - ) 
00194  
00195              { 
00196  
00197                  d o u b l e   a l p h a = d o u b l e ( * a + + ) / 2 5 5 . 0 f ; 
00198  
00199                  d o u b l e   f a l p h a = 1 . 0 f - a l p h a ; 
00200  
00201                  
00202  
00203                  * t p + + = d o u b l e ( * r + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00204  
00205                  * t p + + = d o u b l e ( * g + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00206  
00207                  * t p + + = d o u b l e ( * b + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00208  
00209                  t p + + ; 
00210  
00211              } 
00212  
00213          } 
00214  
00215          
00216  
00217      p u b l i c : 
00218  
00219  
00220  
00221          v o i d   S e t C o l o r ( i n t   r , i n t   g , i n t   b , i n t   a ) 
00222  
00223          { 
00224  
00225              C o l o r = ( a < < 2 4 ) | ( b < < 1 6 ) | ( g < < 8 ) | r ; 
00226  
00227          } 
00228  
00229  
00230  
00231      p u b l i c : 
00232  
00233  
00234  
00235          V S R G B A ( ) { v s C o l o r T y p e = c t R G B A ; } 
00236  
00237          v i r t u a l   ~ V S R G B A ( ) { } ; 
00238  
00239      } ; 
00240  
00241  
00242  
00243      / * * 
00244  
00245      *   3 2 MOR G B A <h_rZbO\U^[s{|
00246  
00247      * / 
00248  
00249      c l a s s   V S B G R A : p u b l i c   V S 3 2 B i t m a p                                                                                                                                     / / / 3 2 MOR G B A <h_rZbO\U^[s{|
00250  
00251      { 
00252  
00253          v o i d   S p l i t T o R G B ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , i n t   x , i n t   y , i n t   n ) 
00254  
00255          { 
00256  
00257              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00258  
00259  
00260  
00261              w h i l e ( n - - ) 
00262  
00263              { 
00264  
00265                  * b + + = * s p + + ; 
00266  
00267                  * g + + = * s p + + ; 
00268  
00269                  * r + + = * s p + + ; 
00270  
00271                  s p + + ; 
00272  
00273              } 
00274  
00275          } 
00276  
00277  
00278  
00279          v o i d   S p l i t T o R G B A ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , u i n t 8   * a , i n t   x , i n t   y , i n t   n ) 
00280  
00281          { 
00282  
00283              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00284  
00285  
00286  
00287              w h i l e ( n - - ) 
00288  
00289              { 
00290  
00291                  * b + + = * s p + + ; 
00292  
00293                  * g + + = * s p + + ; 
00294  
00295                  * r + + = * s p + + ; 
00296  
00297                  * a + + = * s p + + ; 
00298  
00299              } 
00300  
00301          } 
00302  
00303  
00304  
00305          v o i d   D r a w R G B ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , i n t   x , i n t   y , i n t   n ) 
00306  
00307          { 
00308  
00309              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00310  
00311  
00312  
00313              w h i l e ( n - - ) 
00314  
00315              { 
00316  
00317                  * t p + + = * b + + ; 
00318  
00319                  * t p + + = * g + + ; 
00320  
00321                  * t p + + = * r + + ; 
00322  
00323                  t p + + ; 
00324  
00325              } 
00326  
00327          } 
00328  
00329  
00330  
00331          v o i d   D r a w R G B A ( u i n t 8   * r , u i n t 8   * g , u i n t 8   * b , u i n t 8   * a , i n t   x , i n t   y , i n t   n ) 
00332  
00333          { 
00334  
00335              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00336  
00337  
00338  
00339              w h i l e ( n - - ) 
00340  
00341              { 
00342  
00343                  d o u b l e   a l p h a = d o u b l e ( * a + + ) / 2 5 5 . 0 f ; 
00344  
00345                  d o u b l e   f a l p h a = 1 . 0 f - a l p h a ; 
00346  
00347  
00348  
00349                  * t p + + = d o u b l e ( * b + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00350  
00351                  * t p + + = d o u b l e ( * g + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00352  
00353                  * t p + + = d o u b l e ( * r + + ) * a l p h a + d o u b l e ( * t p ) * f a l p h a ; 
00354  
00355                  t p + + ; 
00356  
00357              } 
00358  
00359          } 
00360  
00361  
00362  
00363      p u b l i c : 
00364  
00365  
00366  
00367          v o i d   S e t C o l o r ( i n t   r , i n t   g , i n t   b , i n t   a ) 
00368  
00369          { 
00370  
00371              C o l o r = ( a < < 2 4 ) | ( b < < 1 6 ) | ( g < < 8 ) | r ; 
00372  
00373          } 
00374  
00375  
00376  
00377      p u b l i c : 
00378  
00379  
00380  
00381          V S B G R A ( ) { v s C o l o r T y p e = c t B G R A ; } 
00382  
00383          v i r t u a l   ~ V S B G R A ( ) { } ; 
00384  
00385      } ; 
00386  
00387  } / / n a m e s p a c e   h g l 
00388  
00389  # e n d i f / / H G L _ V S 3 2 B I T M A P _ I N C L U D E 
00390  
00391  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义