예제 #1
0
파일: Main.cpp 프로젝트: mridul0810/box2d
static void Resize(int32 w, int32 h)
{
	width = w;
	height = h;

#if ENABLE_GLUI
	GLUI_Master.get_viewport_area(&tx, &ty, &tw, &th);
#else
	tx = 0;
	ty = 0;
	tw = glutGet(GLUT_WINDOW_WIDTH);
	th = glutGet(GLUT_WINDOW_HEIGHT);
#endif  // ENABLE_GLUI
	glViewport(tx, ty, tw, th);

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	float32 ratio = th ? float32(tw) / float32(th) : 1;

	extents = ratio >= 1 ? b2Vec2(ratio * 25.0f, 25.0f) : b2Vec2(25.0f, 25.0f / ratio);
	extents *= viewZoom;

	b2Vec2 lower = settings.viewCenter - extents;
	b2Vec2 upper = settings.viewCenter + extents;

	// L/R/B/T
	LoadOrtho2DMatrix(lower.x, upper.x, lower.y, upper.y);

	if (fullscreenUI.GetEnabled())
	{
		fullscreenUI.SetViewParameters(&settings.viewCenter, &extents);
	}
}
예제 #2
0
void DebugDraw::DrawString(int x, int y, const char *string, ...){
	char buffer[128];

	va_list arg;
	va_start(arg, string);
	vsprintf(buffer, string, arg);
	va_end(arg);

	glMatrixMode(GL_PROJECTION);
	glPushMatrix();
	glLoadIdentity();
	int w = glutGet(GLUT_WINDOW_WIDTH);
	int h = glutGet(GLUT_WINDOW_HEIGHT);
	LoadOrtho2DMatrix(0, w, h, 0);
	glMatrixMode(GL_MODELVIEW);
	glPushMatrix();
	glLoadIdentity();

	glColor3f(0.9f, 0.6f, 0.6f);
	glRasterPos2i(x, y);
	int32 length = (int32)strlen(buffer);
	for (int32 i = 0; i < length; ++i)
	{
		glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, buffer[i]);
		//glutBitmapCharacter(GLUT_BITMAP_9_BY_15, buffer[i]);
	}

	glPopMatrix();
	glMatrixMode(GL_PROJECTION);
	glPopMatrix();
	glMatrixMode(GL_MODELVIEW);
}