Exemple #1
0
void gkTickState::initialize(int rate)
{
	m_rate = gkMax<unsigned long>(1, rate);

	m_ticks = 1000 / m_rate;

	// time out at 1/5 rate
	m_skip  = gkMax<unsigned long>(m_rate / 5, 1);

	m_invt  = gkScalar(1.0) / (gkScalar)m_ticks;
	m_fixed = gkScalar(1.0) / (gkScalar)m_rate;

	if (m_clock)
		delete m_clock;
	m_clock = new btClock();
	m_init = false;
}
Exemple #2
0
void gkBlenderSceneConverter::convertObjectCamera(gkGameObject* gobj, Blender::Object* bobj)
{
	GK_ASSERT(gobj->getType() == GK_CAMERA && bobj->data);
	gkCamera* obj = static_cast<gkCamera*>(gobj);

	Blender::Camera* camera = static_cast<Blender::Camera*>(bobj->data);

	gkCameraProperties& props = obj->getCameraProperties();

	if (camera->type == CAM_ORTHO)
		props.m_type    = gkCameraProperties::CA_ORTHOGRAPHIC;
	else
		props.m_type    = gkCameraProperties::CA_PERSPECTIVE;
	props.m_clipend     = camera->clipend;
	props.m_clipstart   = camera->clipsta;
	props.m_fov         = gkScalar(360) * gkMath::ATan(gkScalar(16) / camera->lens).valueRadians() / gkPi;
	props.m_orthoscale  = camera->ortho_scale;
	props.m_start       = m_bscene->camera == bobj;
}
Exemple #3
0
void gkDebugScreen::pushText(const gkString& text)
{
	utStringUtils::split(m_splitBuf, text, "\n\r");
	Ogre::TextAreaOverlayElement* textArea = static_cast<Ogre::TextAreaOverlayElement*>(m_ele);

	const gkVector2& winSize = gkWindowSystem::getSingleton().getMouse()->winsize;



	gkScalar che = textArea->getCharHeight();

	for (UTsize i = 0; i < m_splitBuf.size(); ++i)
	{
		ScreenBufferItem* item  = m_lineBuffer.alloc();
		item->clear();
		item->m_buf = m_splitBuf.at(i);

		m_lines.push_back(item);
		gkScalar size = gkScalar(m_lines.size()) * che;
		if (size > winSize.y)
			m_lineBuffer.dealloc(m_lines.pop_front());
	}


	m_splitBuf.clear(true);

	if (!m_lines.empty())
	{
		// write lines
		m_txtBuffer.resize(0);


		ScreenBufferItem* node = m_lines.begin();
		while (node)
		{
			m_txtBuffer += node->m_buf + "\n";
			node = node->getNext();
		}
	}


	_getClipped();
}
Exemple #4
0
gkScalar gkEngine::getStepRate(void)
{
	return gkScalar(1.0) / m_tickRate;
}