void Viz::_render_on_correctly_set_up_context()

in roboschool/cpp-household/render-glwidget.cpp [277:318]


void Viz::_render_on_correctly_set_up_context()
{
	if (resized) {
		resized = false;
		float near = 0.1;
		float far  = 100.0;
		float hfov = 90;
		render_viewport.reset(new SimpleRender::ContextViewport(cx, win_w, win_h, near, far, hfov));
		render_viewport_resized = true;
		caption.render(0x880000, win_w);
	}
	if (!render_viewport) return;

	QElapsedTimer elapsed;
	elapsed.start();
	if (dup_transparent_mode!=2) {
		uint32_t opt = view_options;
		bool hurray = QOpenGLContext::areSharing(
			cx->glcx,
			context()
			);
		assert(hurray);
		render_viewport->paint(user_x, user_y, user_z, wheel, zrot, yrot, 0, floor_visible, opt, ruler_size);
		CHECK_GL_ERROR;
		ms_render_objectcount = render_viewport->visible_object_count;
	}
	double ms_objects = elapsed.nsecsElapsed() / 1000000.0;

	elapsed.start();
	_paint_hud();
	CHECK_GL_ERROR;
	double ms_billboards = elapsed.nsecsElapsed() / 1000000.0;

	//if (dup_transparent_mode>0) {
	//cx->pure_color_opacity = dup_opacity;
	//render_viewport->paint(user_x, user_y, user_z, wheel, zrot, yrot, 0, floor_visible, view_options | VIEW_COLLISION_SHAPE, ruler_size);
	//cx->pure_color_opacity = 1;
	//}

	ms_render *= 0.9;
	ms_render += 0.1*(ms_objects + ms_billboards);
}