summaryrefslogtreecommitdiff
path: root/unrpyc/renpy/display/video.py
diff options
context:
space:
mode:
Diffstat (limited to 'unrpyc/renpy/display/video.py')
-rw-r--r--unrpyc/renpy/display/video.py234
1 files changed, 0 insertions, 234 deletions
diff --git a/unrpyc/renpy/display/video.py b/unrpyc/renpy/display/video.py
deleted file mode 100644
index 5451e89..0000000
--- a/unrpyc/renpy/display/video.py
+++ /dev/null
@@ -1,234 +0,0 @@
-# Copyright 2004-2013 Tom Rothamel <pytom@bishoujo.us>
-#
-# Permission is hereby granted, free of charge, to any person
-# obtaining a copy of this software and associated documentation files
-# (the "Software"), to deal in the Software without restriction,
-# including without limitation the rights to use, copy, modify, merge,
-# publish, distribute, sublicense, and/or sell copies of the Software,
-# and to permit persons to whom the Software is furnished to do so,
-# subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-import renpy.display
-import renpy.audio
-
-# The movie displayable that's currently being shown on the screen.
-current_movie = None
-
-# True if the movie that is currently displaying is in fullscreen mode,
-# False if it's a smaller size.
-fullscreen = False
-
-# The size of a Movie object that hasn't had an explicit size set.
-default_size = (400, 300)
-
-# The file we allocated the surface for.
-surface_file = None
-
-# The surface to display the movie on, if not fullscreen.
-surface = None
-
-def movie_stop(clear=True, only_fullscreen=False):
- """
- Stops the currently playing movie.
- """
-
- if (not fullscreen) and only_fullscreen:
- return
-
- renpy.audio.music.stop(channel='movie')
-
-
-def movie_start(filename, size=None, loops=0):
- """
- This starts a movie playing.
- """
-
- if renpy.game.less_updates:
- return
-
- global default_size
-
- if size is not None:
- default_size = size
-
- filename = [ filename ]
-
- if loops == -1:
- loop = True
- else:
- loop = False
- filename = filename * (loops + 1)
-
- renpy.audio.music.play(filename, channel='movie', loop=loop)
-
-movie_start_fullscreen = movie_start
-movie_start_displayable = movie_start
-
-def early_interact():
- """
- Called early in the interact process, to clear out the fullscreen
- flag.
- """
-
- global fullscreen
- global current_movie
-
- fullscreen = True
- current_movie = None
-
-
-def interact():
- """
- This is called each time the screen is redrawn. It helps us decide if
- the movie should be displayed fullscreen or not.
- """
-
- global surface
- global surface_file
-
- if not renpy.audio.music.get_playing("movie"):
- surface = None
- surface_file = None
- return False
-
- if fullscreen:
- return True
- else:
- return False
-
-def get_movie_texture():
- """
- Gets a movie texture we can draw to the screen.
- """
-
- global surface
- global surface_file
-
- playing = renpy.audio.music.get_playing("movie")
-
- pss = renpy.audio.audio.pss
-
- if pss:
- size = pss.movie_size()
- else:
- size = (64, 64)
-
- if (surface is None) or (surface.get_size() != size) or (surface_file != playing):
- surface = renpy.display.pgrender.surface(size, False)
- surface_file = playing
- surface.fill((0, 0, 0, 255))
-
- tex = None
-
- if playing is not None:
- renpy.display.render.mutated_surface(surface)
- tex = renpy.display.draw.load_texture(surface, True)
-
- return tex
-
-
-def render_movie(width, height):
- tex = get_movie_texture()
-
- if tex is None:
- return None
-
- sw, sh = tex.get_size()
-
- scale = min(1.0 * width / sw, 1.0 * height / sh)
-
- dw = scale * sw
- dh = scale * sh
-
- rv = renpy.display.render.Render(width, height, opaque=True)
- rv.forward = renpy.display.render.Matrix2D(1.0 / scale, 0.0, 0.0, 1.0 / scale)
- rv.reverse = renpy.display.render.Matrix2D(scale, 0.0, 0.0, scale)
- rv.blit(tex, (int((width - dw) / 2), int((height - dh) / 2)))
-
- return rv
-
-class Movie(renpy.display.core.Displayable):
- """
- This is a displayable that shows the current movie.
- """
-
- fullscreen = False
-
- def __init__(self, fps=24, size=None, **properties):
- """
- @param fps: The framerate that the movie should be shown at.
- """
- super(Movie, self).__init__(**properties)
- self.size = size
-
- def render(self, width, height, st, at):
-
- size = self.size
-
- if size is None:
- size = default_size
-
- width, height = size
-
- rv = render_movie(width, height)
-
- if rv is None:
- rv = renpy.display.render.Render(0, 0)
-
- # Usually we get redrawn when the frame is ready - but we want
- # the movie to disappear if it's ended, or if it hasn't started
- # yet.
- renpy.display.render.redraw(self, 0.1)
-
- return rv
-
-
- def per_interact(self):
- global fullscreen
- fullscreen = False
-
- global current_movie
- current_movie = self
-
-
-def playing():
- return renpy.audio.music.get_playing("movie")
-
-def frequent():
- """
- Called to update the video playback. Returns true if a video refresh is
- needed, false otherwise.
- """
-
- if not playing():
- return 0
-
- pss = renpy.audio.audio.pss
-
- if pss.needs_alloc():
-
- if renpy.display.video.fullscreen and renpy.display.draw.fullscreen_surface:
- surf = renpy.display.draw.fullscreen_surface
- else:
- get_movie_texture()
- surf = renpy.display.scale.real(surface)
-
- pss.alloc_event(surf)
-
- rv = pss.refresh_event()
-
- if rv and current_movie is not None:
- renpy.display.render.redraw(current_movie, 0)
-
- return rv