CMGDK r49-rc2
|
00001 # i f n d e f H G L _ V S 8 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 8 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 * 8 MOMOVZbO\U^[s{| 00018 00019 * / 00020 00021 c l a s s V S 8 B i t m a p : p u b l i c V S B a s e / / / 8 MOMOVZbO\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 ) { s c a n l i n e [ y ] [ x ] = 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 , C o l o r , n ) ; } 00032 00033 v o i d _ V L i n e ( i n t x , i n t y , i n t n ) { w h i l e ( n - - ) s c a n l i n e [ y + + ] [ x ] = C o l o r ; } 00034 00035 00036 00037 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 ; 00038 00039 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 ; 00040 00041 00042 00043 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 ; 00044 00045 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 ; 00046 00047 00048 00049 p u b l i c : 00050 00051 00052 00053 u i n t 8 C o l o r ; / / / < S_MR~Vri_ 00054 00055 00056 00057 u i n t 8 * G e t P i x e l B u f f e r ( ) { r e t u r n p i x e l _ b u f f e r ; } / / / < a }Q:S 00058 00059 u i n t 8 * 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 : s c a n l i n e [ r o w ] ; } / / / < kbc~ 00060 00061 00062 00063 p u b l i c : 00064 00065 00066 00067 V S 8 B i t m a p ( ) { C o l o r = 0 ; } / / / < ,g{|g Qpe 00068 00069 v i r t u a l ~ V S 8 B i t m a p ( ) { } / / / < ,g{|ggQpe 00070 00071 00072 00073 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 , 8 ) ; } / / / < R^ZbO\U^ 00074 00075 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 G e t S c a n L i n e ( y ) + x ; } 00076 00077 u i n t 8 G e t P o i n t ( i n t x , i n t y ) { r e t u r n G e t S c a n L i n e ( y ) [ x ] ; } 00078 00079 00080 00081 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 ; 00082 00083 } ; 00084 00085 00086 00087 / * * 00088 00089 * 8 MOpp^MOVZbO\U^[s{| 00090 00091 * / 00092 00093 c l a s s V S L u m : p u b l i c V S 8 B i t m a p / / / 8 MOpp^MOVZbO\U^[s{| 00094 00095 { 00096 00097 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 ) 00098 00099 { 00100 00101 u i n t 8 * s p = G e t P o i n t e r ( x , y ) ; 00102 00103 00104 00105 m e m c p y ( r , s p , n ) ; 00106 00107 m e m c p y ( g , s p , n ) ; 00108 00109 m e m c p y ( b , s p , n ) ; 00110 00111 } 00112 00113 00114 00115 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 ) 00116 00117 { 00118 00119 m e m s e t ( a , 2 5 5 , n ) ; 00120 00121 00122 00123 S p l i t T o R G B ( r , g , b , x , y , n ) ; 00124 00125 } 00126 00127 00128 00129 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 ) 00130 00131 { 00132 00133 u i n t 8 * t p = G e t P o i n t e r ( x , y ) ; 00134 00135 00136 00137 w h i l e ( n - - ) 00138 00139 * 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 ; 00140 00141 } 00142 00143 00144 00145 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 ) 00146 00147 { 00148 00149 D r a w R G B ( r , g , b , x , y , n ) ; 00150 00151 } 00152 00153 00154 00155 p u b l i c : 00156 00157 00158 00159 V S L u m ( ) { v s C o l o r T y p e = c t L u m i n a n c e ; } 00160 00161 v i r t u a l ~ V S L u m ( ) { } ; 00162 00163 00164 00165 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 ) 00166 00167 { 00168 00169 C o l o r = u i n t 8 ( 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 ) ; 00170 00171 } 00172 00173 } ; 00174 00175 00176 00177 / * * 00178 00179 * 8 MOA l p h a MOVZbO\U^[s{| 00180 00181 * / 00182 00183 c l a s s V S A l p h a : p u b l i c V S 8 B i t m a p / / 8 MOA L P H A MOVZbO\U^[s{| 00184 00185 { 00186 00187 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 ) 00188 00189 { 00190 00191 } 00192 00193 00194 00195 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 * a , i n t x , i n t y , i n t n ) 00196 00197 { 00198 00199 u i n t 8 * s p = G e t P o i n t e r ( x , y ) ; 00200 00201 00202 00203 m e m c p y ( a , s p , n ) ; 00204 00205 } 00206 00207 00208 00209 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 x , i n t y , i n t n ) 00210 00211 { 00212 00213 } 00214 00215 00216 00217 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 * a , i n t x , i n t y , i n t n ) 00218 00219 { 00220 00221 u i n t 8 * t p = G e t P o i n t e r ( x , y ) ; 00222 00223 00224 00225 m e m c p y ( t p , a , n ) ; 00226 00227 } 00228 00229 00230 00231 p u b l i c : 00232 00233 00234 00235 V S A l p h a ( ) { v s C o l o r T y p e = c t A l p h a ; } 00236 00237 v i r t u a l ~ V S A l p h a ( ) { } ; 00238 00239 00240 00241 v o i d S e t C o l o r ( i n t , i n t , i n t , i n t a ) 00242 00243 { 00244 00245 C o l o r = a ; 00246 00247 } 00248 00249 } ; 00250 00251 } / / n a m e s p a c e h g l 00252 00253 # e n d i f / / H G L _ V S 8 B I T M A P _ I N C L U D E 00254 00255