6 struct render_object_pixel
: public render_object
8 render_object_pixel(int32_t _x
, int32_t _y
, premultiplied_color _color
) throw()
9 : x(_x
), y(_y
), color(_color
) {}
10 ~render_object_pixel() throw() {}
11 void operator()(struct screen
& scr
) throw()
13 int32_t _x
= x
+ scr
.originx
;
14 int32_t _y
= y
+ scr
.originy
;
15 if(_x
< 0 || static_cast<uint32_t>(_x
) >= scr
.width
)
17 if(_y
< 0 || static_cast<uint32_t>(_y
) >= scr
.height
)
19 color
.apply(scr
.rowptr(_y
)[_x
]);
24 premultiplied_color color
;
27 function_ptr_luafun
gui_pixel("gui.pixel", [](lua_State
* LS
, const std::string
& fname
) -> int {
30 int64_t color
= 0xFFFFFFU
;
31 int32_t x
= get_numeric_argument
<int32_t>(LS
, 1, fname
.c_str());
32 int32_t y
= get_numeric_argument
<int32_t>(LS
, 2, fname
.c_str());
33 get_numeric_argument
<int64_t>(LS
, 3, color
, fname
.c_str());
34 premultiplied_color
pcolor(color
);
35 lua_render_ctx
->queue
->add(*new render_object_pixel(x
, y
, pcolor
));