示例#1
0
    def _readFromScreenshotPictureToTexture(self):
        f = open(self.textureName, 'rb')
        data = f.read()
        f.close()

        stream = ogre.MemoryDataStream("%s" % str(self), len(data), False)
        stream.setData(data)
        img = ogre.Image()
        img.load(stream, ogre.Image.getFileExtFromMagic(stream))

        txtrMngr = ogre.TextureManager.getSingleton()
        screenshot = txtrMngr.loadImage(self.textureName, env.resource_group,
                                        img)
        self.texture.getBuffer().blit(screenshot.getBuffer())
        txtrMngr.remove(screenshot)
        screenshot.unload()
示例#2
0
    def _setSheet(self, _sheet):
        BaseModeLogic._setSheet(self, _sheet)
        
        _sheet.eventRootChanged = self._onRoot
        
        # trying to get data for showing
        import suit.core.sc_utils as sc_utils
        session = core.Kernel.session()
        _addr = _sheet._getScAddr()
        _fmt = sc_utils.getContentFormat(session, _addr)
        assert _fmt is not None
        
        _cont = session.get_content_const(_addr)
        assert _cont is not None
        
        _cont_data = _cont.convertToCont()
        
        _type = session.get_idtf(_fmt).lower()
        global count
        count += 1
        
#        import os, pm.pm
#        self.imageName = os.path.join(env.res_tmp_dir, "%s.jpg" % str(_addr.this))
#        pm.pm.saveContentToFile(self.imageName + "%d.jpg" % count, _cont)

        
#        file(self.imageName + "_", "wb").write(_cont.get_data(_cont_data.d.size))
        
        data = _cont.get_data(_cont_data.d.size)
        stream = ogre.MemoryDataStream("%s" % str(self), _cont_data.d.size, False)
        stream.setData(data)
#     
        try:
            img = ogre.Image()
            img.load(stream, ogre.Image.getFileExtFromMagic(stream))
            self._createTexture(img)
            self._createMaterial()
            self._resizeRect()
        except:
            import sys, traceback
            print "Error:", sys.exc_info()[0]
            traceback.print_exc(file=sys.stdout)
示例#3
0
    def getFormatIcon(self, _format):
        """Return icon associated with specified format
        @param _format: sc-node that designate format
        @type _format: sc_addr
        
        @return: Name of texture that contains icon associated to _format, if there are no any
                icons, then return None
        """
        import suit.core.sc_utils as sc_utils
        import sc_core.constants as sc_constants
        import sc_core.pm as sc
        import ogre.renderer.OGRE as ogre

        session = core.Kernel.session()

        icon = None
        idtf_set = sc_utils.searchOneShotBinPairAttrToNode(
            session, _format, keynodes.common.nrel_identification, sc.SC_CONST)
        if idtf_set is not None:

            it1 = session.create_iterator(
                session.sc_constraint_new(sc_constants.CONSTR_3_f_a_a,
                                          idtf_set, sc.SC_A_CONST,
                                          sc.SC_N_CONST), True)
            while not it1.is_over():
                if sc_utils.checkIncToSets(session, it1.value(2),
                                           [keynodes.common.group_image],
                                           sc.SC_CONST):
                    icon = it1.value(2)
                    break
                it1.next()

            if icon is None:
                return None

            _fmt = sc_utils.getContentFormat(session, icon)
            assert _fmt is not None

            _cont = session.get_content_const(icon)
            assert _cont is not None

            _cont_data = _cont.convertToCont()

            data = _cont.get_data(_cont_data.d.size)
            stream = ogre.MemoryDataStream("%s" % str(self), _cont_data.d.size,
                                           False)
            stream.setData(data)

            try:
                img = ogre.Image()
                img.load(stream, ogre.Image.getFileExtFromMagic(stream))
            except:
                import sys, traceback
                print "Error:", sys.exc_info()[0]
                traceback.print_exc(file=sys.stdout)

            icon_name = "icon_%s" % str(_format)
            ogre.TextureManager.getSingleton().loadImage(
                icon_name, "General", img)
            return icon_name

        return None