Beispiel #1
0
 def createBuffer(self,
                  name,
                  xsize,
                  ysize,
                  texgroup,
                  depthbits=1,
                  fbprops=None):
     """
     overload direct.filters.FilterManager.createBuffer
     :param name:
     :param xsize:
     :param ysize:
     :param texgroup:
     :param depthbits:
     :param fbprops:
     :return:
     """
     winprops = WindowProperties()
     winprops.setSize(xsize, ysize)
     props = FrameBufferProperties(FrameBufferProperties.getDefault())
     props.setBackBuffers(0)
     props.setRgbColor(1)
     props.setDepthBits(depthbits)
     props.setStereo(self.win.isStereo())
     if fbprops is not None:
         props.addProperties(fbprops)
     depthtex, colortex, auxtex0, auxtex1 = texgroup
     if (auxtex0 != None):
         props.setAuxRgba(1)
     if (auxtex1 != None):
         props.setAuxRgba(2)
     buffer = base.graphicsEngine.makeOutput(
         self.win.getPipe(), name, -1, props, winprops,
         GraphicsPipe.BFRefuseWindow | GraphicsPipe.BFResizeable,
         self.win.getGsg(), self.win)
     if (buffer == None):
         return buffer
     if (colortex):
         buffer.addRenderTexture(colortex, GraphicsOutput.RTMBindOrCopy,
                                 GraphicsOutput.RTPColor)
     if (depthtex):
         buffer.addRenderTexture(depthtex, GraphicsOutput.RTMBindOrCopy,
                                 GraphicsOutput.RTPDepth)
     if (auxtex0):
         buffer.addRenderTexture(auxtex0, GraphicsOutput.RTMBindOrCopy,
                                 GraphicsOutput.RTPAuxRgba0)
     if (auxtex1):
         buffer.addRenderTexture(auxtex1, GraphicsOutput.RTMBindOrCopy,
                                 GraphicsOutput.RTPAuxRgba1)
     buffer.setSort(self.nextsort)
     buffer.disableClears()
     self.nextsort += 1
     return buffer
Beispiel #2
0
    def createBuffer(self,
                     name,
                     xsize,
                     ysize,
                     texgroup,
                     depthbits=True,
                     fbprops=None):
        """ Low-level buffer creation.  Not intended for public use. """

        winprops = WindowProperties()
        winprops.setSize(xsize, ysize)
        props = FrameBufferProperties(FrameBufferProperties.getDefault())
        props.setBackBuffers(0)
        props.setRgbColor(1)
        if depthbits is True:
            # Respect depth-bits from Config.prc
            if props.getDepthBits() == 0:
                props.setDepthBits(1)
        else:
            props.setDepthBits(depthbits)
        props.setStereo(self.win.isStereo())
        if fbprops is not None:
            props.addProperties(fbprops)

        depthtex, colortex, auxtex0, auxtex1 = texgroup
        if auxtex0 is not None:
            props.setAuxRgba(1)
        if auxtex1 is not None:
            props.setAuxRgba(2)
        buffer = base.graphicsEngine.makeOutput(
            self.win.getPipe(), name, -1, props, winprops,
            GraphicsPipe.BFRefuseWindow | GraphicsPipe.BFResizeable,
            self.win.getGsg(), self.win)
        if buffer is None:
            return buffer
        if depthtex:
            buffer.addRenderTexture(depthtex, GraphicsOutput.RTMBindOrCopy,
                                    GraphicsOutput.RTPDepth)
        if colortex:
            buffer.addRenderTexture(colortex, GraphicsOutput.RTMBindOrCopy,
                                    GraphicsOutput.RTPColor)
        if auxtex0:
            buffer.addRenderTexture(auxtex0, GraphicsOutput.RTMBindOrCopy,
                                    GraphicsOutput.RTPAuxRgba0)
        if auxtex1:
            buffer.addRenderTexture(auxtex1, GraphicsOutput.RTMBindOrCopy,
                                    GraphicsOutput.RTPAuxRgba1)
        buffer.setSort(self.nextsort)
        buffer.disableClears()
        self.nextsort += 1
        return buffer