Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-06-29 00:39:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-06-29 00:40:51 +0300
commit46dceefc353ab8c84731c9f8f09a34733e004d1b (patch)
tree1f71886d323ead19c9a694b383d53b3d7819abc7 /source/blender/editors/screen
parentaa6247a385663fbe5c6a947d7b265aaca64f3e14 (diff)
WM: Remove Screen Cast
This feature is better handled by specialized tools.
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r--source/blender/editors/screen/screen_intern.h1
-rw-r--r--source/blender/editors/screen/screen_ops.c2
-rw-r--r--source/blender/editors/screen/screendump.c263
3 files changed, 0 insertions, 266 deletions
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index 63d616e986e..a7cd9713973 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -72,7 +72,6 @@ extern const char *screen_context_dir[]; /* doc access */
/* screendump.c */
void SCREEN_OT_screenshot(struct wmOperatorType *ot);
-void SCREEN_OT_screencast(struct wmOperatorType *ot);
/* screen_ops.c */
void region_blend_start(struct bContext *C, struct ScrArea *sa, struct ARegion *ar);
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 1f5b51d211c..6418db3e279 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -4493,7 +4493,6 @@ void ED_operatortypes_screen(void)
WM_operatortype_append(SCREEN_OT_back_to_previous);
WM_operatortype_append(SCREEN_OT_spacedata_cleanup);
WM_operatortype_append(SCREEN_OT_screenshot);
- WM_operatortype_append(SCREEN_OT_screencast);
WM_operatortype_append(SCREEN_OT_userpref_show);
WM_operatortype_append(SCREEN_OT_region_blend);
WM_operatortype_append(SCREEN_OT_space_context_cycle);
@@ -4625,7 +4624,6 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
WM_keymap_add_item(keymap, "SCREEN_OT_screenshot", F3KEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "SCREEN_OT_screencast", F3KEY, KM_PRESS, KM_ALT, 0);
kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", TABKEY, KM_PRESS, KM_CTRL, 0);
RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index 54ff3d51479..ec486954ba3 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -36,7 +36,6 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
-#include "BLI_math.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -44,17 +43,14 @@
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_image.h"
#include "BKE_report.h"
-#include "BKE_writeavi.h"
#include "BIF_gl.h"
-#include "BIF_glutil.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -64,9 +60,6 @@
#include "WM_types.h"
#include "WM_api.h"
-#include "PIL_time.h"
-
-
#include "screen_intern.h"
typedef struct ScreenshotData {
@@ -305,259 +298,3 @@ void SCREEN_OT_screenshot(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "full", 1, "Full Screen",
"Capture the whole window (otherwise only capture the active area)");
}
-
-/* *************** screenshot movie job ************************* */
-
-typedef struct ScreenshotJob {
- Main *bmain;
- Scene *scene;
- wmWindowManager *wm;
- unsigned int *dumprect;
- int x, y, dumpsx, dumpsy;
- const short *stop;
- const short *do_update;
- ReportList reports;
-
- bMovieHandle *movie_handle;
- void *movie_ctx;
-} ScreenshotJob;
-
-
-static void screenshot_freejob(void *sjv)
-{
- ScreenshotJob *sj = sjv;
-
- if (sj->dumprect)
- MEM_freeN(sj->dumprect);
-
- if (sj->movie_handle) {
- bMovieHandle *mh = sj->movie_handle;
- mh->end_movie(sj->movie_ctx);
- mh->context_free(sj->movie_ctx);
- }
-
- MEM_freeN(sj);
-}
-
-
-/* called before redraw notifiers, copies a new dumprect */
-static void screenshot_updatejob(void *sjv)
-{
- ScreenshotJob *sj = sjv;
- unsigned int *dumprect;
-
- if (sj->dumprect == NULL) {
- dumprect = MEM_mallocN(sizeof(int) * sj->dumpsx * sj->dumpsy, "dumprect");
- screenshot_read_pixels(sj->x, sj->y, sj->dumpsx, sj->dumpsy, (unsigned char *)dumprect);
-
- sj->dumprect = dumprect;
- }
-}
-
-
-/* only this runs inside thread */
-static void screenshot_startjob(void *sjv, short *stop, short *do_update, float *UNUSED(progress))
-{
- ScreenshotJob *sj = sjv;
- RenderData rd = sj->scene->r;
- bMovieHandle *mh = NULL;
-
- /* we need this as local variables for renderdata */
- rd.frs_sec = U.scrcastfps;
- rd.frs_sec_base = 1.0f;
-
- if (BKE_imtype_is_movie(rd.im_format.imtype)) {
- mh = BKE_movie_handle_get(sj->scene->r.im_format.imtype);
- if (mh == NULL) {
- printf("Movie format unsupported\n");
- return;
- }
- sj->movie_ctx = mh->context_create();
- sj->movie_handle = mh;
-
- if (!mh->start_movie(sj->movie_ctx, sj->scene, &rd, sj->dumpsx, sj->dumpsy, &sj->reports, false, "")) {
- printf("screencast job stopped\n");
- return;
- }
- }
-
- sj->stop = stop;
- sj->do_update = do_update;
-
- *do_update = true; /* wait for opengl rect */
-
- while (*stop == 0) {
-
- if (sj->dumprect) {
-
- if (mh) {
- if (mh->append_movie(sj->movie_ctx, &rd, rd.sfra, rd.cfra, (int *)sj->dumprect,
- sj->dumpsx, sj->dumpsy, "", &sj->reports))
- {
- BKE_reportf(&sj->reports, RPT_INFO, "Appended frame: %d", rd.cfra);
- printf("Appended frame %d\n", rd.cfra);
- }
- else {
- break;
- }
- }
- else {
- ImBuf *ibuf = IMB_allocImBuf(sj->dumpsx, sj->dumpsy, rd.im_format.planes, 0);
- char name[FILE_MAX];
- int ok;
-
- BKE_image_path_from_imformat(
- name, rd.pic, BKE_main_blendfile_path(sj->bmain), rd.cfra,
- &rd.im_format, (rd.scemode & R_EXTENSION) != 0, true, NULL);
-
- ibuf->rect = sj->dumprect;
- ok = BKE_imbuf_write(ibuf, name, &rd.im_format);
-
- if (ok == 0) {
- printf("Write error: cannot save %s\n", name);
- BKE_reportf(&sj->reports, RPT_INFO, "Write error: cannot save %s", name);
- break;
- }
- else {
- printf("Saved file: %s\n", name);
- BKE_reportf(&sj->reports, RPT_INFO, "Saved file: %s", name);
- }
-
- /* imbuf knows which rects are not part of ibuf */
- IMB_freeImBuf(ibuf);
- }
-
- MEM_freeN(sj->dumprect);
- sj->dumprect = NULL;
-
- *do_update = true;
-
- rd.cfra++;
-
- }
- else
- PIL_sleep_ms(U.scrcastwait);
- }
-
- if (mh) {
- mh->end_movie(sj->movie_ctx);
- mh->context_free(sj->movie_ctx);
- sj->movie_handle = NULL;
- }
-
- BKE_report(&sj->reports, RPT_INFO, "Screencast job stopped");
-}
-
-/* Helper callback for drawing the cursor itself */
-static void screencast_draw_cursor(bContext *UNUSED(C), int x, int y, void *UNUSED(p_ptr))
-{
-
- glPushMatrix();
-
- glTranslatef((float)x, (float)y, 0.0f);
-
-
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_BLEND);
-
- glColor4ub(0, 0, 0, 32);
- glutil_draw_filled_arc(0.0, M_PI * 2.0, 20, 40);
-
- glColor4ub(255, 255, 255, 128);
- glutil_draw_lined_arc(0.0, M_PI * 2.0, 20, 40);
-
- glDisable(GL_BLEND);
- glDisable(GL_LINE_SMOOTH);
-
- glPopMatrix();
-}
-
-/* Turn brush cursor in 3D view on/off */
-static void screencast_cursor_toggle(wmWindowManager *wm, short enable)
-{
- static void *cursor = NULL;
-
- if (cursor && !enable) {
- /* clear cursor */
- WM_paint_cursor_end(wm, cursor);
- cursor = NULL;
- }
- else if (enable) {
- /* enable cursor */
- cursor = WM_paint_cursor_activate(wm, NULL, screencast_draw_cursor, NULL);
- }
-}
-
-static void screenshot_endjob(void *sjv)
-{
- ScreenshotJob *sj = sjv;
-
- screencast_cursor_toggle(sj->wm, 0);
-}
-
-
-static int screencast_exec(bContext *C, wmOperator *op)
-{
- wmWindowManager *wm = CTX_wm_manager(C);
- wmWindow *win = CTX_wm_window(C);
- bScreen *screen = CTX_wm_screen(C);
- wmJob *wm_job;
- ScreenshotJob *sj;
-
- /* if called again, stop the running job */
- if (WM_jobs_test(wm, screen, WM_JOB_TYPE_SCREENCAST))
- WM_jobs_stop(wm, screen, screenshot_startjob);
-
- wm_job = WM_jobs_get(wm, win, screen, "Screencast", 0, WM_JOB_TYPE_SCREENCAST);
- sj = MEM_callocN(sizeof(ScreenshotJob), "screenshot job");
-
- /* setup sj */
- if (RNA_boolean_get(op->ptr, "full")) {
- sj->x = 0;
- sj->y = 0;
- sj->dumpsx = WM_window_pixels_x(win);
- sj->dumpsy = WM_window_pixels_y(win);
- }
- else {
- ScrArea *curarea = CTX_wm_area(C);
- sj->x = curarea->totrct.xmin;
- sj->y = curarea->totrct.ymin;
- sj->dumpsx = curarea->totrct.xmax - sj->x;
- sj->dumpsy = curarea->totrct.ymax - sj->y;
- }
- sj->bmain = CTX_data_main(C);
- sj->scene = CTX_data_scene(C);
- sj->wm = wm;
-
- BKE_reports_init(&sj->reports, RPT_PRINT);
-
- /* setup job */
- WM_jobs_customdata_set(wm_job, sj, screenshot_freejob);
- WM_jobs_timer(wm_job, 0.1, 0, NC_SCREEN | ND_SCREENCAST);
- WM_jobs_callbacks(wm_job, screenshot_startjob, NULL, screenshot_updatejob, screenshot_endjob);
-
- WM_jobs_start(sj->wm, wm_job);
-
- screencast_cursor_toggle(sj->wm, 1);
-
- WM_event_add_notifier(C, NC_SCREEN | ND_SCREENCAST, screen);
-
- return OPERATOR_FINISHED;
-}
-
-void SCREEN_OT_screencast(wmOperatorType *ot)
-{
- ot->name = "Make Screencast";
- ot->idname = "SCREEN_OT_screencast";
- ot->description = "Capture a video of the active area or whole Blender window";
-
- ot->invoke = WM_operator_confirm;
- ot->exec = screencast_exec;
- ot->poll = screenshot_poll; /* shared poll */
-
- ot->flag = 0;
-
- RNA_def_property(ot->srna, "filepath", PROP_STRING, PROP_FILEPATH);
- RNA_def_boolean(ot->srna, "full", 1, "Full Screen",
- "Capture the whole window (otherwise only capture the active area)");
-}