def __init__(self, address, objDesc, screenRect, fullRect, absRect, zoom=(4,4), pos=None, size=None, blend=False, cropRect=None, fps=None, scale=None, allowFrameSkip=True, gridColsRows=None, doCenter=True): BaseTileDisplayObject.__init__(self, screenRect=screenRect, fullRect=fullRect, absRect=absRect, zoom=zoom, pos=pos, size=size, blend=blend, cropRect=cropRect) self.address = address if gridColsRows == None: self.streamCols = 1 self.streamRows = 1 else: self.streamCols = gridColsRows[0] self.streamRows = gridColsRows[1] #self.streamWidth = 352 #self.streamHeight = 288 self.streamWidth = objDesc.streamWidth self.streamHeight = objDesc.streamHeight if scale != None: self.streamWidth *= scale[0] self.streamHeight *= scale[1] addVisibleSeparation = False if addVisibleSeparation: self.streamWidth += 3 self.streamHeight += 3 self.size = self.streamCols * self.streamWidth, self.streamRows * self.streamHeight self.streamObjs = [] # print "GROUP:", self.pos, self.size if doCenter: # center on pos self.setPos(pos[0] -self.size[0]/2, pos[1] - self.size[1]/2) for r in range(self.streamRows): for c in range(self.streamCols): objOffset = Vec2(c * self.streamWidth, r * self.streamHeight) #objPos = (self.pos[0] + c * self.streamWidth, self.pos[1] + r * self.streamHeight) objPos = Vec2(self.pos[0] + objOffset[0], self.pos[1] + objOffset[1]) streamObj = glStreamedTxtrBox(address, screenRect=screenRect, imagePos=objPos, absRect= absRect, fullRect=fullRect, blend=blend, scale=scale, streamState=StreamState(), streamWidth=objDesc.streamWidth, streamHeight=objDesc.streamHeight, vflip=objDesc.vflip) streamObj.groupOffset = objOffset self.streamObjs.append(streamObj) # information for sorting and aligning tiles self.targetLocationOrder = [] self.locations = [] for r in range(self.streamRows): for c in range(self.streamCols): self.locations.append(Vec2(c * self.streamWidth, r * self.streamHeight)) #nC = self.streamCols-c #self.targetLocationOrder.append(r*self.streamCols+c) self.initialObjOrder = list(self.streamObjs) # DEBUG #self.targetLocationOrder = [ 0, 1, 2, 3] # numbers for the location self.targetLocationOrder = range(self.streamRows*self.streamCols)
def __init__(self, imageFilename, screenRect, fullRect, absRect, zoom=(4,4), imagePos=None, imageSize=None, blend=False, cropRect=None, scale=None): pos = imagePos # FIXME, replace imagePos arg above and its mention in other files with "pos" BaseTileDisplayObject.__init__(self, screenRect=screenRect, fullRect=fullRect, absRect=absRect, zoom=zoom, pos=pos, size=imageSize, blend=blend, cropRect=cropRect) self.hasDrawFunc=True self.hasEraseDrawFunc=True self.visible = True self.texture = Texture( imageFilename, cropRect=cropRect) #self.easyTexture = EasyTexture(imageFilename, screenGeomRect=screenRect, blend=False) #self.easyTexture.width = renderer.width * 0.8 #self.easyTexture.height = renderer.height * 0.8 #self.easyTexture.width = renderer.width #self.easyTexture.height = renderer.height self.useDrawPixel = False # For comparison debugging self.xvel = 0.1 self.yvel = 0.1 self.vflipTexture = False # Now in base class #self.blend=blend #self.zoom = zoom #self.easyTexture.zoom(zoom[0], zoom[1]) #self.easyTexture.setOffset(initialOffset[0], initialOffset[1]) self.autoPan = False if pos: self.pos = Vec2(pos[0], pos[1]) else: self.pos = Vec2(0.0, 0.0) self.srcImageSize = self.texture.getWidth(), self.texture.getHeight() if imageSize == None: self.imageSize = self.texture.getWidth(), self.texture.getHeight() else: self.imageSize = imageSize self.scale = scale if self.scale != None: self.imageSize = self.imageSize[0] * self.scale[0], self.imageSize[1] * self.scale[1] self.fullRect = fullRect self.absRect = absRect self.screenRect = screenRect
def __init__(self, filename, screenRect, fullRect, absRect, zoom=(4,4), pos=None, size=None, blend=False, cropRect=None, fps=None, scale=None, allowFrameSkip=True): BaseTileDisplayObject.__init__(self, screenRect=screenRect, fullRect=fullRect, absRect=absRect, zoom=zoom, pos=pos, size=size, blend=blend, cropRect=cropRect) if IsTiledMovieChunkImageBased(filename): print "Using ImageMovieReader" r = ImageMovieReader(quiet = True) else: print "Using PyFfmpegMovieReader" if not PyFfmpegMovieReader: print "PyFfmpegMovieReader is not available, make sure pyffmpeg and pyFfmpegMoviereader are installed before playing a movie." r = PyFfmpegMovieReader(quiet=True) r.setSecondsToPauseBeforeRewind(1.0) if fps != None: r.setFps(fps) r.discoverFps = False self.scale = scale self.movieReader = r #r.setFile("/home/eolson/blah_mpeg1.mpg") self.filename = filename r.setFile(self.filename) r.loadFile() print "Setting movie size:", r.getSize() self.moviePlayer = GLMoviePlayer(origWidth=r.getSize()[0], origHeight=r.getSize()[1], textureScale=scale, dstRectScale=scale) # note textureScale unused since local code replaces moviePlayer's draw function() self.moviePlayer.setAllowFrameSkip(allowFrameSkip) # because we want to # getNextFrame if it's not on current tile's display (for draggable movies) self.size = tuple(r.getSize()) if self.scale != None: self.size = self.size[0] * self.scale[0], self.size[1]* self.scale[1] if pos: # avoid None self.moviePlayer.setPos(pos[0], pos[1]) self.moviePlayer.setPos(0,0) self.setPos(*pos) print "TileMovieOBject.__init__, SETTING pos:", self.getPos() else: print "Pos is:", pos #raise print "WARNING DEBUG setting movie pos to 0,0" self.moviePlayer.setPos(0,0) self.setPos(0,0) self.moviePlayer.setVideoSource(r) print "TileMovieOBject.__init__, pos:", self.getPos() r.start()
def __init__(self, imageFilename, screenRect, fullRect, absRect, zoom=(4, 4), imagePos=None, imageSize=None, blend=False, cropRect=None, scale=None): pos = imagePos # FIXME, replace imagePos arg above and its mention in other files with "pos" BaseTileDisplayObject.__init__(self, screenRect=screenRect, fullRect=fullRect, absRect=absRect, zoom=zoom, pos=pos, size=imageSize, blend=blend, cropRect=cropRect) self.hasDrawFunc = True self.hasEraseDrawFunc = True self.visible = True self.texture = Texture(imageFilename, cropRect=cropRect) #self.easyTexture = EasyTexture(imageFilename, screenGeomRect=screenRect, blend=False) #self.easyTexture.width = renderer.width * 0.8 #self.easyTexture.height = renderer.height * 0.8 #self.easyTexture.width = renderer.width #self.easyTexture.height = renderer.height self.useDrawPixel = False # For comparison debugging self.xvel = 0.1 self.yvel = 0.1 self.vflipTexture = False # Now in base class #self.blend=blend #self.zoom = zoom #self.easyTexture.zoom(zoom[0], zoom[1]) #self.easyTexture.setOffset(initialOffset[0], initialOffset[1]) self.autoPan = False if pos: self.pos = Vec2(pos[0], pos[1]) else: self.pos = Vec2(0.0, 0.0) self.srcImageSize = self.texture.getWidth(), self.texture.getHeight() if imageSize == None: self.imageSize = self.texture.getWidth(), self.texture.getHeight() else: self.imageSize = imageSize self.scale = scale if self.scale != None: self.imageSize = self.imageSize[0] * self.scale[0], self.imageSize[ 1] * self.scale[1] self.fullRect = fullRect self.absRect = absRect self.screenRect = screenRect
def setPos(self, x, y): BaseTileDisplayObject.setPos(self, x,y) for streamObj in self.streamObjs: streamObj.setPos(*(self.pos + streamObj.groupOffset))
def __init__(self, filename, screenRect, fullRect, absRect, zoom=(4, 4), pos=None, size=None, blend=False, cropRect=None, fps=None, scale=None, allowFrameSkip=True): BaseTileDisplayObject.__init__(self, screenRect=screenRect, fullRect=fullRect, absRect=absRect, zoom=zoom, pos=pos, size=size, blend=blend, cropRect=cropRect) if IsTiledMovieChunkImageBased(filename): print "Using ImageMovieReader" r = ImageMovieReader(quiet=True) else: print "Using PyFfmpegMovieReader" if not PyFfmpegMovieReader: print "PyFfmpegMovieReader is not available, make sure pyffmpeg and pyFfmpegMoviereader are installed before playing a movie." r = PyFfmpegMovieReader(quiet=True) r.setSecondsToPauseBeforeRewind(1.0) if fps != None: r.setFps(fps) r.discoverFps = False self.scale = scale self.movieReader = r #r.setFile("/home/eolson/blah_mpeg1.mpg") self.filename = filename r.setFile(self.filename) r.loadFile() print "Setting movie size:", r.getSize() self.moviePlayer = GLMoviePlayer(origWidth=r.getSize()[0], origHeight=r.getSize()[1], textureScale=scale, dstRectScale=scale) # note textureScale unused since local code replaces moviePlayer's draw function() self.moviePlayer.setAllowFrameSkip( allowFrameSkip) # because we want to # getNextFrame if it's not on current tile's display (for draggable movies) self.size = tuple(r.getSize()) if self.scale != None: self.size = self.size[0] * self.scale[0], self.size[ 1] * self.scale[1] if pos: # avoid None self.moviePlayer.setPos(pos[0], pos[1]) self.moviePlayer.setPos(0, 0) self.setPos(*pos) print "TileMovieOBject.__init__, SETTING pos:", self.getPos() else: print "Pos is:", pos #raise print "WARNING DEBUG setting movie pos to 0,0" self.moviePlayer.setPos(0, 0) self.setPos(0, 0) self.moviePlayer.setVideoSource(r) print "TileMovieOBject.__init__, pos:", self.getPos() r.start()