示例#1
0
文件: RenderJob.py 项目: bandy101/PFS
    def __init__(self, name, renderer, tasks):
        VisualJob.__init__(self, name, groupId="render")
        self.renderer = renderer
        self.tasks = tasks

        self.SetMaxProgress(len(tasks))

        self.resultsForRendererLock = threading.Lock()
        self.resultForRendererIdx = 0
        self.resultsForRendererCache = {}

        self.taskResultCache = {}
        self.finalizeHandler = self.renderer.GetFinalizeHandler()

        self.__logger = logging.getLogger("RenderJob")
示例#2
0
    def Load(self, importPath=None):
        wxvJob = VisualJob(_("Loading project %s") % self._filename,
                           self.__Load, args=(importPath,))
        wxvJob.SetAltPath = self.SetAltPath
        dlg = DlgJobVisual(self.__wxParent, wxvJob)
        dlg.Bind(EVT_JOB_RESULT, self.__OnJobDone)

        wxvJob.AddVisualJobHandler(dlg)

        self.__wxvJob = wxvJob
        JobManager().EnqueueContext(wxvJob)
        try:
            return self.__WaitUntilJobDone()
        finally:
            dlg.Destroy()
示例#3
0
    def Load(self, importPath=None):
        wxvJob = VisualJob(_("Loading project %s") % self._filename,
                           self.__Load, args=(importPath,))
        wxvJob.SetAltPath = self.SetAltPath
        dlg = DlgJobVisual(self.__wxParent, wxvJob)
        dlg.Bind(EVT_JOB_RESULT, self.__OnJobDone)
        
        wxvJob.AddVisualJobHandler(dlg)
 
        self.__wxvJob = wxvJob
        JobManager().EnqueueContext(wxvJob)
        try:
            return self.__WaitUntilJobDone()
        finally:
            dlg.Destroy()
示例#4
0
    def Save(self, includePics=False):
        wxvJob = VisualJob(_("Saving project %s") % self._filename,
                           self.__Save, args=(includePics,),
                           maxProgress=len(self._project.GetPictures()))

        dlg = DlgJobVisual(self.__wxParent, wxvJob)
        dlg.Bind(EVT_JOB_RESULT, self.__OnJobDone)

        wxvJob.AddVisualJobHandler(dlg)

        self.__wxvJob = wxvJob
        JobManager().EnqueueContext(wxvJob)
        try:
            return self.__WaitUntilJobDone()
        finally:
            dlg.Destroy()
示例#5
0
    def _OnStart(self, outpath, profile=None, gstElements=None):
        self._UpdateProject()
        vj = StoryEngine(self.__story.GetMedias(), outpath, profile,
                         gstElements)

        if outpath is None:
            # do a preview
            label = "Preview"
            groupId = "general"
        else:
            label = _("Generate video %s") % outpath
            groupId = "render"

        wxvJob = VisualJob(label, vj.Execute, maxProgress=100, groupId=groupId)
        if outpath:
            wxvJob.GetOutputFile = lambda: outpath
        JobManager().EnqueueContext(wxvJob)
示例#6
0
    def __init__(self, name, renderer, tasks):
        VisualJob.__init__(self, name, groupId="render")
        self.renderer = renderer
        self.tasks = tasks

        self.SetMaxProgress(len(tasks))
        
        self.imgCacheLock = threading.Lock()
        self.imgCache = {}
        self.imgKeyStack = []

        self.resultToFetchLock = threading.Lock()
        self.resultToFetch = 0
        self.sink = None
        
        self.results = {}

        self.__logger = logging.getLogger("RenderJob")
示例#7
0
文件: RenderJob.py 项目: tReMaker/PFS
    def GetWorkLoad(self):
        task = VisualJob.GetWorkLoad(self)
        self.SetInfo(task.GetInfo())

        self.__logger.debug("%s: %s: %s - start",
                            threading.current_thread().getName(),
                            self.GetName(), task.GetKey())

        return task
示例#8
0
 def __init__(self, name):
     VisualJob.__init__(self, name, target=lambda: None)
     self.SetMaxProgress(100)