コード例 #1
0
        protected internal virtual void createFBO(IRenderingEngine re, bool forDrawing)
        {
            // Create the FBO and associate it to the texture
            fboId = re.genFramebuffer();
            re.bindFramebuffer(pspsharp.graphics.RE.IRenderingEngine_Fields.RE_FRAMEBUFFER, fboId);

            // Create a render buffer for the depth buffer
            depthRenderBufferId = re.genRenderbuffer();
            re.bindRenderbuffer(depthRenderBufferId);
            re.setRenderbufferStorage(pspsharp.graphics.RE.IRenderingEngine_Fields.RE_DEPTH_COMPONENT, TexImageWidth, TexImageHeight);

            // Create the texture
            base.bind(re, forDrawing);

            // Attach the texture to the FBO
            re.setFramebufferTexture(pspsharp.graphics.RE.IRenderingEngine_Fields.RE_FRAMEBUFFER, pspsharp.graphics.RE.IRenderingEngine_Fields.RE_COLOR_ATTACHMENT0, textureId, 0);
            // Attach the depth buffer to the FBO
            re.setFramebufferRenderbuffer(pspsharp.graphics.RE.IRenderingEngine_Fields.RE_FRAMEBUFFER, pspsharp.graphics.RE.IRenderingEngine_Fields.RE_DEPTH_ATTACHMENT, depthRenderBufferId);
        }