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