Esempio n. 1
0
void Indigo::UIPanel::on_size(glm::uvec2& sz)
{
	m_sizer.fit(sz);

	if (m_render_background)
		render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(m_render_background,&Render::UIDrawable::size),sz);
}
Esempio n. 2
0
void Indigo::UILayer::on_size(glm::uvec2& sz)
{
	m_sizer.fit(sz);

	if (m_render_parent)
		render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UIDrawable*>(m_render_parent),&Render::UIDrawable::size),sz);
}
Esempio n. 3
0
const glm::uvec2& Indigo::UIWidget::size(const glm::uvec2& sz)
{
	if (m_size != sz)
	{
		glm::uvec2 prev_size = m_size;
		glm::uvec2 new_size = glm::max(sz,this->min_size());

		if (prev_size != new_size)
		{
			on_size(new_size);

			if (new_size != prev_size)
			{
				m_size = new_size;

				if (m_render_group)
				{
					render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UIDrawable*>(m_render_group),&Render::UIDrawable::size),m_size);

					make_dirty();
				}
			}
		}
	}

	return m_size;
}
Esempio n. 4
0
glm::vec4 Indigo::ImageLayer::colour(const glm::vec4& colour)
{
	glm::vec4 prev_colour = m_colour;
	if (colour != prev_colour)
	{
		OOBase::SharedPtr< ::ImageLayer> layer = OOBase::static_pointer_cast< ::ImageLayer>(render_layer());
		if (layer)
			render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(layer.get(),&::ImageLayer::colour),colour);
	}

	return prev_colour;
}
Esempio n. 5
0
void Indigo::UIWidget::on_state_change(OOBase::uint32_t state, OOBase::uint32_t change_mask)
{
	if (change_mask & eWS_visible)
	{
		bool visible = (state & eWS_visible) == eWS_visible;
		if (m_render_group)
		{
			render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UIDrawable*>(m_render_group),&Render::UIDrawable::show),visible);

			make_dirty();
		}
	}
}
Esempio n. 6
0
void Indigo::UILayer::on_state_change(OOBase::uint32_t state, OOBase::uint32_t change_mask)
{
	if (change_mask & UIWidget::eWS_visible)
	{
		bool visible = (state & eWS_visible) == eWS_visible;
		if (visible)
			m_sizer.fit(size());

		if (m_render_parent)
			render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UIDrawable*>(m_render_parent),&Render::UIDrawable::show),visible);
	}

	UIGroup::on_state_change(state,change_mask);
}
Esempio n. 7
0
void Indigo::UIWidget::position(const glm::ivec2& pos)
{
	if (m_position != pos)
	{
		m_position = pos;

		if (m_render_group)
		{
			render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UIDrawable*>(m_render_group),&Render::UIDrawable::position),pos);

			make_dirty();
		}
	}
}
Esempio n. 8
0
bool Indigo::UIGroup::add_widget(const OOBase::SharedPtr<UIWidget>& widget, const char* name, size_t len)
{
	if (!m_children.push_back(widget))
		LOG_ERROR_RETURN(("Failed to insert widget: %s",OOBase::system_error_text()),false);

	if (name && len && !add_named_widget(widget,name,len))
	{
		m_children.pop_back();
		return false;
	}

	if (!m_render_group)
		return true;

	bool ret = false;
	if (!render_pipe()->call(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(m_render_parent,&Render::UIGroup::add_subgroup),widget.get(),&ret) || !ret)
		m_children.pop_back();

	return ret;
}
Esempio n. 9
0
void render_all_pipes(GameData* data, DrawConfig* config){
    for(int i=0; i < get_num_pipes(data); i++){
        Pipe pipe = get_pipe(data,i);
        render_pipe(data,config,&pipe);
    }
}
Esempio n. 10
0
void Indigo::UILayer::make_dirty()
{
	if (m_render_parent)
		render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(static_cast<Render::UILayer*>(m_render_parent),&Render::UILayer::make_dirty));
}
Esempio n. 11
0
void Indigo::UILayer::on_layout(const glm::uvec2& sz)
{
	OOBase::Guard<Pipe> lock(*render_pipe());

	size(sz);
}
Esempio n. 12
0
void Indigo::assert_render_thread()
{
	assert(render_pipe()->is_local());
}
Esempio n. 13
0
void Indigo::UINinePatch::on_size(glm::uvec2& sz)
{
	if (m_render_9patch)
		render_pipe()->post(OOBase::make_delegate<OOBase::ThreadLocalAllocator>(m_render_9patch,&Render::UIDrawable::size),sz);
}