Make render queue scratch variables instance variables
This commit is contained in:
parent
0631826095
commit
63dfbd59d6
3 changed files with 16 additions and 13 deletions
|
@ -99,6 +99,9 @@ struct lua_state
|
|||
std::set<std::string> hooked_keys;
|
||||
uint64_t idle_hook_time;
|
||||
uint64_t timer_hook_time;
|
||||
lua::render_context* renderq_saved;
|
||||
lua::render_context* renderq_last;
|
||||
bool renderq_redirect;
|
||||
|
||||
std::list<std::string> startup_scripts;
|
||||
std::map<std::string, std::u32string> watch_vars;
|
||||
|
|
|
@ -5,10 +5,6 @@
|
|||
|
||||
namespace
|
||||
{
|
||||
lua::render_context* saved = NULL;
|
||||
lua::render_context* last = NULL;
|
||||
bool redirect = false;
|
||||
|
||||
struct lua_renderqueue
|
||||
{
|
||||
lua_renderqueue(lua::state& L, uint32_t width, uint32_t height) throw();
|
||||
|
@ -69,10 +65,10 @@ namespace
|
|||
P(q);
|
||||
|
||||
lua::render_context* ptr = q->get();
|
||||
if(!redirect || last != core.lua2->render_ctx)
|
||||
saved = core.lua2->render_ctx;
|
||||
core.lua2->render_ctx = last = ptr;
|
||||
redirect = true;
|
||||
if(!core.lua2->renderq_redirect || core.lua2->renderq_last != core.lua2->render_ctx)
|
||||
core.lua2->renderq_saved = core.lua2->render_ctx;
|
||||
core.lua2->render_ctx = core.lua2->renderq_last = ptr;
|
||||
core.lua2->renderq_redirect = true;
|
||||
return 0;
|
||||
}
|
||||
int render(lua::state& L, lua::parameters& P)
|
||||
|
@ -132,12 +128,12 @@ namespace
|
|||
int lua_renderqueue::setnull(lua::state& L, lua::parameters& P)
|
||||
{
|
||||
auto& core = CORE();
|
||||
if(redirect && last == core.lua2->render_ctx)
|
||||
if(core.lua2->renderq_redirect && core.lua2->renderq_last == core.lua2->render_ctx)
|
||||
//If there is valid redirect, undo it.
|
||||
core.lua2->render_ctx = saved;
|
||||
redirect = false;
|
||||
last = NULL;
|
||||
saved = NULL;
|
||||
core.lua2->render_ctx = core.lua2->renderq_saved;
|
||||
core.lua2->renderq_redirect = false;
|
||||
core.lua2->renderq_last = NULL;
|
||||
core.lua2->renderq_saved = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -167,6 +167,10 @@ lua_state::lua_state(lua::state& _L, command::group& _command)
|
|||
recursive_flag = false;
|
||||
luareader_fragment = NULL;
|
||||
|
||||
renderq_saved = NULL;
|
||||
renderq_last = NULL;
|
||||
renderq_redirect = false;
|
||||
|
||||
on_paint = new lua::state::callback_list(L, "paint", "on_paint");
|
||||
on_video = new lua::state::callback_list(L, "video", "on_video");
|
||||
on_reset = new lua::state::callback_list(L, "reset", "on_reset");
|
||||
|
|
Loading…
Add table
Reference in a new issue