示例#1
0
def create(file_format='png', name=None):
    """
    Create a screenshot
    :param file_format: formats supported by PIL (png, jpeg etc)
    """
    dest = ""
    if settings.SCREENSHOT_PATH:
        if not os.path.exists(settings.SCREENSHOT_PATH):
            print("SCREENSHOT_PATH does not exist. creating: {}".format(
                settings.SCREENSHOT_PATH))
            os.makedirs(settings.SCREENSHOT_PATH)
        dest = settings.SCREENSHOT_PATH
    else:
        print(
            "SCREENSHOT_PATH not defined in settings. Using cwd as fallback.")

    if not Config.target:
        Config.target = context.window().mgl_fbo()

    image = Image.frombytes("RGB", (Config.target.width, Config.target.height),
                            Config.target.read(alignment=Config.alignment))
    image = image.transpose(Image.FLIP_TOP_BOTTOM)

    if not name:
        name = "{}.{}".format(datetime.now().strftime("%Y-%m-%d-%H-%M-%S-%f"),
                              file_format)

    dest = os.path.join(dest, name)
    print("Creating screenshot:", dest)
    image.save(dest, format=file_format)
示例#2
0
class DemosysTestCase(TestCase):

    window = context.window()
    ctx = context.ctx()

    def create_shader(self, source=None, path=None):
        """
        Create a shader from source or file
        """
        program = ShaderProgram(name="test", path=path)

        if source:
            program.set_source(source)
            program.prepare()

        if path:
            resources.shaders.load_shader(program)

        return program

    def get_texture(self, path):
        return resources.textures.get(path, create=True)

    def get_texture_array(self, path, layers=0):
        return resources.textures.get(path,
                                      create=True,
                                      cls=TextureArray,
                                      layers=layers)

    def get_track(self, name):
        return resources.tracks.get(name)
示例#3
0
class DemosysTestCase(TestCase):

    window = context.window()
    ctx = context.ctx()
    project = project.instance
    timeline = None

    apply_mocks()

    def load_program(self, path):
        return resources.programs.load(
            ProgramDescription(label=path, path=path))

    def load_texture(self, path):
        return resources.textures.load(
            TextureDescription(label=path, path=path))

    def load_texture_array(self, path, layers=0):
        return resources.textures.load(
            TextureDescription(label=path,
                               path=path,
                               loader='array',
                               layers=layers))

    def load_scene(self, path):
        return resources.scenes.load(SceneDescription(label=path, path=path))

    def load_data(self, path, loader=None):
        return resources.data.load(
            DataDescription(label=path, path=path, loader=loader))

    def get_track(self, name):
        return resources.tracks.get(name)
示例#4
0
文件: fbo.py 项目: binaryf/demosys-py
 def __init__(self):
     self._window = context.window()
     self.color_buffers = []
     self.depth_buffer = None
     self.fbo = None
     self.default_framebuffer = False