Пример #1
0
    def __init__(self, type, size, colorDepth = 32):
        if type == Float:
            self.type = RImage
        elif type == Float2:
            self.type = RGImage
        elif type == Float3:
            self.type = RGBImage
        elif type == Float4:
            self.type = RGBAImage
        else:
            raise RuntimeError("bork!")
            
     
        internalFormat = ATIFramebuffer.typeToOpenGL(type, colorDepth)
        Texture.__init__(self, internalFormat, size, ATIFramebuffer.TextureTarget)
        self.bind()
            
        w,h = size
        self.frameBuffer = glGenFramebuffersEXT(1);
        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, self.frameBuffer);
        glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
                                  GL_COLOR_ATTACHMENT0_EXT,
                                  self.target, self.texNo, 0);

        ## depth buffer
        self.depthBuffer = glGenRenderbuffersEXT(1);
        glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, self.depthBuffer);
        glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
                                 GL_DEPTH_COMPONENT24, w, h);
        glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
                                     GL_DEPTH_ATTACHMENT_EXT,
                                     GL_RENDERBUFFER_EXT, self.depthBuffer);
  
        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
Пример #2
0
    def __init__(self, type, size, colorDepth=32):
        if type == Float:
            self.type = RImage
        elif type == Float2:
            self.type = RGImage
        elif type == Float3:
            self.type = RGBImage
        elif type == Float4:
            self.type = RGBAImage
        else:
            raise RuntimeError("bork!")

        internalFormat = ATIFramebuffer.typeToOpenGL(type, colorDepth)
        Texture.__init__(self, internalFormat, size,
                         ATIFramebuffer.TextureTarget)
        self.bind()

        w, h = size
        self.frameBuffer = glGenFramebuffersEXT(1)
        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, self.frameBuffer)
        glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
                                  self.target, self.texNo, 0)

        ## depth buffer
        self.depthBuffer = glGenRenderbuffersEXT(1)
        glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, self.depthBuffer)
        glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, w,
                                 h)
        glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
                                     GL_DEPTH_ATTACHMENT_EXT,
                                     GL_RENDERBUFFER_EXT, self.depthBuffer)

        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0)