Пример #1
0
static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar)
{
	MovieClip *clip = ED_space_clip_get_clip(sc);
	MovieTracking *tracking = &clip->tracking;
	char str[256] = {0};
	int block = FALSE;

	if (tracking->stats) {
		BLI_strncpy(str, tracking->stats->message, sizeof(str));
		block = TRUE;
	}
	else {
		if (sc->flag & SC_LOCK_SELECTION)
			strcpy(str, "Locked");
	}

	if (str[0])
		ED_region_info_draw(ar, str, block, 0.6f);
}
Пример #2
0
static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar)
{
	MovieClip *clip = ED_space_clip_get_clip(sc);
	MovieTracking *tracking = &clip->tracking;
	char str[256] = {0};
	bool block = false;

	if (tracking->stats) {
		BLI_strncpy(str, tracking->stats->message, sizeof(str));
		block = true;
	}
	else {
		if (sc->flag & SC_LOCK_SELECTION)
			strcpy(str, "Locked");
	}

	if (str[0]) {
		float fill_color[4] = {0.0f, 0.0f, 0.0f, 0.6f};
		ED_region_info_draw(ar, str, block, fill_color);
	}
}
Пример #3
0
static void draw_render_info(const bContext *C,
                             Scene *scene,
                             Image *ima,
                             ARegion *ar,
                             float zoomx,
                             float zoomy)
{
	RenderResult *rr;
	Render *re = RE_GetRender(scene->id.name);
	RenderData *rd = RE_engine_get_render_data(re);
	Scene *stats_scene = ED_render_job_get_scene(C);
	if (stats_scene == NULL) {
		stats_scene = CTX_data_scene(C);
	}

	rr = BKE_image_acquire_renderresult(stats_scene, ima);

	if (rr && rr->text) {
		float fill_color[4] = {0.0f, 0.0f, 0.0f, 0.25f};
		ED_region_info_draw(ar, rr->text, 1, fill_color);
	}

	BKE_image_release_renderresult(stats_scene, ima);

	if (re) {
		int total_tiles;
		bool need_free_tiles;
		rcti *tiles;

		tiles = RE_engine_get_current_tiles(re, &total_tiles, &need_free_tiles);

		if (total_tiles) {
			int i, x, y;
			rcti *tile;

			/* find window pixel coordinates of origin */
			UI_view2d_view_to_region(&ar->v2d, 0.0f, 0.0f, &x, &y);

			glPushMatrix();
			glTranslatef(x, y, 0.0f);
			glScalef(zoomx, zoomy, 1.0f);

			if (rd->mode & R_BORDER) {
				glTranslatef((int)(-rd->border.xmin * rd->xsch * rd->size / 100.0f),
				             (int)(-rd->border.ymin * rd->ysch * rd->size / 100.0f),
				             0.0f);
			}

			UI_ThemeColor(TH_FACE_SELECT);

			for (i = 0, tile = tiles; i < total_tiles; i++, tile++) {
				glaDrawBorderCorners(tile, zoomx, zoomy);
			}

			if (need_free_tiles) {
				MEM_freeN(tiles);
			}

			glPopMatrix();
		}
	}
}
Пример #4
0
static void draw_render_info(Scene *scene, Image *ima, ARegion *ar, float zoomx, float zoomy)
{
	RenderResult *rr;
	Render *re = RE_GetRender(scene->id.name);

	rr = BKE_image_acquire_renderresult(scene, ima);

	if (rr && rr->text) {
		ED_region_info_draw(ar, rr->text, 1, 0.25);
	}

	BKE_image_release_renderresult(scene, ima);

	if (re) {
		int total_tiles;
		rcti *tiles;

		RE_engine_get_current_tiles(re, &total_tiles, &tiles);

		if (total_tiles) {
			int i, x, y;
			rcti *tile;

			/* find window pixel coordinates of origin */
			UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y);

			glPushMatrix();
			glTranslatef(x, y, 0.0f);
			glScalef(zoomx, zoomy, 1.0f);

			if (scene->r.mode & R_BORDER) {
				glTranslatef(-scene->r.border.xmin * scene->r.xsch * scene->r.size / 100.0f,
				             -scene->r.border.ymin * scene->r.ysch * scene->r.size / 100.0f,
				             0.0f);
			}

			UI_ThemeColor(TH_FACE_SELECT);

			for (i = 0, tile = tiles; i < total_tiles; i++, tile++) {
				float delta_x = 4.0f * UI_DPI_FAC / zoomx;
				float delta_y = 4.0f * UI_DPI_FAC / zoomy;

				delta_x = min_ff(delta_x, tile->xmax - tile->xmin);
				delta_y = min_ff(delta_y, tile->ymax - tile->ymin);

				/* left bottom corner */
				glBegin(GL_LINE_STRIP);
				glVertex2f(tile->xmin, tile->ymin + delta_y);
				glVertex2f(tile->xmin, tile->ymin);
				glVertex2f(tile->xmin + delta_x, tile->ymin);
				glEnd();

				/* left top corner */
				glBegin(GL_LINE_STRIP);
				glVertex2f(tile->xmin, tile->ymax - delta_y);
				glVertex2f(tile->xmin, tile->ymax);
				glVertex2f(tile->xmin + delta_x, tile->ymax);
				glEnd();

				/* right bottom corner */
				glBegin(GL_LINE_STRIP);
				glVertex2f(tile->xmax - delta_x, tile->ymin);
				glVertex2f(tile->xmax, tile->ymin);
				glVertex2f(tile->xmax, tile->ymin + delta_y);
				glEnd();

				/* right top corner */
				glBegin(GL_LINE_STRIP);
				glVertex2f(tile->xmax - delta_x, tile->ymax);
				glVertex2f(tile->xmax, tile->ymax);
				glVertex2f(tile->xmax, tile->ymax - delta_y);
				glEnd();
			}

			MEM_freeN(tiles);

			glPopMatrix();
		}
	}
}