CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/2d/VS16Bitmap.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ V S 1 6 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 1 6 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      *   1 6 MOrMOVZbO\U^[s{|
00018  
00019      * / 
00020  
00021      c l a s s   V S 1 6 B i t m a p : p u b l i c   V S B a s e                                                                                                                                     / / / 1 6 MOrMOVZbO\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 1 6   * ) ( s c a n l i n e [ y ] + ( x < < 1 ) ) = 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 < < 1 ) , C o l o r , n * s i z e o f ( u i n t 1 6 ) ) ; } 
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 < < = 1 ; 
00038  
00039  
00040  
00041              w h i l e ( n - - ) 
00042  
00043                  * ( u i n t 1 6   * ) ( 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 i o n 
00066  
00067          { 
00068  
00069              u i n t 1 6   C o l o r ;                                                                                                                                           / / / < S_MR~Vri_
00070  
00071              s t r u c t 
00072  
00073              { 
00074  
00075                  u i n t 8   L u m ; 
00076  
00077                  u i n t 8   A l p h a ; 
00078  
00079              } ; 
00080  
00081          } ; 
00082  
00083  
00084  
00085          u i n t 1 6   * G e t P i x e l B u f f e r ( ) { r e t u r n   ( u i n t 1 6   * ) p i x e l _ b u f f e r ; }                                                                         / / / < a }Q:S
00086  
00087          u i n t 1 6   * 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 1 6   * ) s c a n l i n e [ r o w ] ; }             / / / < kbc~
00088  
00089  
00090  
00091  	 p u b l i c : 
00092  
00093  
00094  
00095          V S 1 6 B i t m a p ( ) { C o l o r = 0 ; }                                                                                                                                             / / / < ,g{|g Qpe
00096  
00097          v i r t u a l   ~ V S 1 6 B i t m a p ( ) { }                                                                                                                                   / / / < ,g{|ggQpe
00098  
00099  
00100  
00101          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 , 1 6 ) ; }                                                                             / / / < R^ZbO\U^
00102  
00103          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 ) ; } 
00104  
00105  
00106  
00107          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 ; 
00108  
00109      } ; 
00110  
00111  
00112  
00113      / * * 
00114  
00115      *   1 6 MOL u m _ A l p h a rMOVZbO\U^[s{|
00116  
00117      * / 
00118  
00119      c l a s s   V S L u m A l p h a : p u b l i c   V S 1 6 B i t m a p                                                                                                                                       / / 2 4 MOR G B rMOVZbO\U^[s{|
00120  
00121      { 
00122  
00123          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 ) 
00124  
00125          {                   
00126  
00127              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00128  
00129  
00130  
00131              w h i l e ( n - - ) 
00132  
00133              { 
00134  
00135                  * r + + = * s p ; 
00136  
00137                  * g + + = * s p ; 
00138  
00139                  * b + + = * s p + + ; 
00140  
00141  
00142  
00143                  s p + + ; 
00144  
00145              } 
00146  
00147          } 
00148  
00149          
00150  
00151          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 ) 
00152  
00153          {                             
00154  
00155              u i n t 8   * s p = G e t P o i n t e r ( x , y ) ; 
00156  
00157  
00158  
00159              w h i l e ( n - - ) 
00160  
00161              {                         
00162  
00163                  * r + + = * s p ; 
00164  
00165                  * g + + = * s p ; 
00166  
00167                  * b + + = * s p + + ; 
00168  
00169                  * a + + = * s p + + ; 
00170  
00171              } 
00172  
00173          } 
00174  
00175  
00176  
00177          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 ) 
00178  
00179          {                   
00180  
00181              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00182  
00183  
00184  
00185              w h i l e ( n - - ) 
00186  
00187              { 
00188  
00189                  * t p + + = f l o a t ( * r + + ) * 0 . 2 9 9 + f l o a t ( * g + + ) * 0 . 5 8 7 + f l o a t ( * b + + ) * 0 . 1 1 4 ; 
00190  
00191                  t p + + ; 
00192  
00193              } 
00194  
00195          } 
00196  
00197          
00198  
00199          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 ) 
00200  
00201          {           
00202  
00203              u i n t 8   * t p = G e t P o i n t e r ( x , y ) ; 
00204  
00205  
00206  
00207              w h i l e ( n - - ) 
00208  
00209              { 
00210  
00211                  d o u b l e   a l p h a = d o u b l e ( * a + + ) / 2 5 5 . 0 f ; 
00212  
00213                  d o u b l e   f a l p h a = 1 . 0 f - a l p h a ; 
00214  
00215                  
00216  
00217                  * t p + + = d o u b l e ( * t p ) * f a l p h a + d o u b l e ( f l o a t ( * r + + ) * 0 . 2 9 9 + f l o a t ( * g + + ) * 0 . 5 8 7 + f l o a t ( * b + + ) * 0 . 1 1 4 ) * a l p h a ; 
00218  
00219                  t p + + ; 
00220  
00221              } 
00222  
00223          } 
00224  
00225  
00226  
00227      p u b l i c : 
00228  
00229  
00230  
00231          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 ) 
00232  
00233          { 
00234  
00235              L u m = f l o a t ( r ) * 0 . 2 9 9 + f l o a t ( g ) * 0 . 5 8 7 + f l o a t ( b ) * 0 . 1 1 4 ; 
00236  
00237              A l p h a = a ; 
00238  
00239          } 
00240  
00241  
00242  
00243      p u b l i c : 
00244  
00245  
00246  
00247          V S L u m A l p h a ( ) { v s C o l o r T y p e = c t L u m i n a n c e A l p h a ; } 
00248  
00249          v i r t u a l   ~ V S L u m A l p h a ( ) { } ; 
00250  
00251      } ; 
00252  
00253  } / / n a m e s p a c e   h g l 
00254  
00255  # e n d i f / / H G L _ V S 1 6 B I T M A P _ I N C L U D E 
00256  
00257  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义