diff --git a/OverLua/docs/overlua.txt b/OverLua/docs/overlua.txt index fcf4b2df1..158d7530b 100644 --- a/OverLua/docs/overlua.txt +++ b/OverLua/docs/overlua.txt @@ -203,6 +203,7 @@ The following new registers are made available to the expression evaluator: R In range 0..1, red component. Input and output. G Ditto, for green component. B Ditto, for blue component. + A Ditto, for alpha component. (Only on ARGB32 surfaces.) X X-coordinate of pixel being processed. Input only. Y Y-coordinate of pixel being processed. Input only. diff --git a/OverLua/raster_ops.cpp b/OverLua/raster_ops.cpp index e340b890a..f78d44ea6 100644 --- a/OverLua/raster_ops.cpp +++ b/OverLua/raster_ops.cpp @@ -727,12 +727,14 @@ static int pixel_value_map(lua_State *L) machine.registers[0] = (double)p.R() / 255.0; machine.registers[1] = (double)p.G() / 255.0; machine.registers[2] = (double)p.B() / 255.0; - machine.registers[3] = x; - machine.registers[4] = y; + machine.registers[3] = (double)p.A() / 255.0; + machine.registers[4] = x; + machine.registers[5] = y; machine.Run(); p.R() = (uint8_t)(machine.registers[0] * 255); p.G() = (uint8_t)(machine.registers[1] * 255); p.B() = (uint8_t)(machine.registers[2] * 255); + p.A() = (uint8_t)(machine.registers[3] * 255); } } }