forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Readpixelfast / Writepixelfast (http://forum.boolean.name/showthread.php?t=700)

Diplomat 21.02.2006 20:14

Доброе время суток!

Эти команды работают в разы быстрее, чем связка "семейств" GetColor и Plot.
Но цвета/альфу "прочитанных" точек они возвращают в виде целого числа-интеджера, причем три цвета и альфа прочитанной точки занимают по байту в этом числе...
Не подскажете, как максимально быстро "вычленить" значения цветов из интеджера?
Сойдет и какой-нибудь хитрометод: точность не критична, важна скорость.

Сори за тривиальный вопрос. :dontknow:

pax 21.02.2006 21:00

В примерах к журналу гдето было, ща гляну... если найду выложу

pax 21.02.2006 21:03

Во по моему то что тебе нужно:
[blitz]Const RALPHA = 24 ;Return Alpha when using RColor
Const RRED = 16 ;Return Red when using RColor
Const RGREEN = 8 ;Return Green when using RColor
Const RBLUE = 0 ;Return Blue when using RColor

; IntColor returns an integer color useable by WritePixel() and WritePixelFast()
; R = Red
; G = Green
; B = Blue
; A = Alpha.
; return = An integer color useable by functions such as WritePixel() and WritePixelFast()
Function IntColor(R,G,B,A=255)
Return A Shl 24 Or R Shl 16 Or G Shl 8 Or B Shl 0
End Function

; RColor returns the value of Red, Green, Blue, or Alpha in C.
; c = An integer color returned by, for example, ReadPixelFast()
; d = The amount of bits C should be shifted right to. Valid constants are: RRED, RGREEN, RBLUE, RALPHA
; return = An integer ranging from 0 to 255.
Function RColor%(c%,d%)
Return c Shr d And 255 Shl 0
End Function
[/blitz]

Diplomat 22.02.2006 00:31

Вах! Самое оно! Покрутил, прикрутил, запустил- прирост скорости 50% налицо и прочие части тела! :)
Сенкс и респект фарева!!


Часовой пояс GMT +4, время: 10:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot