Beispiel #1
0
        public void AttachTextureImage(FramebufferAttachmentPoint attachmentPoint, ITextureCubemapArray texture, int level, int arrayIndex, CubemapFace cubemapFace)
        {
            var layer   = 6 * arrayIndex + cubemapFace - CubemapFace.PositiveX;
            var newDesc = new FramebufferAttachmentDescription
            {
                Type          = FramebufferAttachmentType.Texture,
                TextureTarget = TextureTarget.TextureCubeMapArray,
                Texture       = texture,
                Level         = level,
                Layer         = layer
            };

            if (IsRedundant(attachmentPoint, ref newDesc))
            {
                return;
            }
            var framebufferTarget = context.Bindings.Framebuffers.EditingTarget;

            context.Bindings.Framebuffers.ByTarget(framebufferTarget).Set(this);
            GL.FramebufferTextureLayer((int)framebufferTarget, (int)attachmentPoint, texture.Handle, layer, level);
            UpdateStoredDescription(attachmentPoint, ref newDesc);
        }
Beispiel #2
0
        public void AttachTextureAsLayeredImage(FramebufferAttachmentPoint attachmentPoint, ITextureCubemapArray texture, int level)
        {
            var newDesc = new FramebufferAttachmentDescription
            {
                Type          = FramebufferAttachmentType.TextureLayers,
                TextureTarget = TextureTarget.TextureCubeMapArray,
                Texture       = texture,
                Level         = level
            };

            if (IsRedundant(attachmentPoint, ref newDesc))
            {
                return;
            }
            var framebufferTarget = context.Bindings.Framebuffers.EditingTarget;

            context.Bindings.Framebuffers.ByTarget(framebufferTarget).Set(this);
            //gl.FramebufferTexture(ft, fa, d.Texture.Handle, d.Level);
            GL.FramebufferTexture2D((int)framebufferTarget, (int)attachmentPoint, (int)texture.Target, texture.Handle, level);
            UpdateStoredDescription(attachmentPoint, ref newDesc);
        }
Beispiel #3
0
        public void AttachTextureImage(FramebufferAttachmentPoint attachmentPoint, ITextureCubemapArray texture, int level, int arrayIndex, CubemapFace cubemapFace)
        {
            var layer = 6 * arrayIndex + cubemapFace - CubemapFace.PositiveX;
            var newDesc = new FramebufferAttachmentDescription
            {
                Type = FramebufferAttachmentType.Texture,
                TextureTarget = TextureTarget.TextureCubeMapArray,
                Texture = texture,
                Level = level,
                Layer = layer
            };

            if (IsRedundant(attachmentPoint, ref newDesc))
                return;
            var framebufferTarget = context.Bindings.Framebuffers.EditingTarget;
            context.Bindings.Framebuffers.ByTarget(framebufferTarget).Set(this);
            GL.FramebufferTextureLayer((int)framebufferTarget, (int)attachmentPoint, texture.Handle, layer, level);
            UpdateStoredDescription(attachmentPoint, ref newDesc);
        }
Beispiel #4
0
        public void AttachTextureAsLayeredImage(FramebufferAttachmentPoint attachmentPoint, ITextureCubemapArray texture, int level)
        {
            var newDesc = new FramebufferAttachmentDescription
            {
                Type = FramebufferAttachmentType.TextureLayers,
                TextureTarget = TextureTarget.TextureCubeMapArray,
                Texture = texture,
                Level = level
            };

            if (IsRedundant(attachmentPoint, ref newDesc))
                return;
            var framebufferTarget = context.Bindings.Framebuffers.EditingTarget;
            context.Bindings.Framebuffers.ByTarget(framebufferTarget).Set(this);
            //gl.FramebufferTexture(ft, fa, d.Texture.Handle, d.Level);
            GL.FramebufferTexture2D((int)framebufferTarget, (int)attachmentPoint, (int)texture.Target, texture.Handle, level);
            UpdateStoredDescription(attachmentPoint, ref newDesc);
        }
Beispiel #5
0
 public static void SetDataCompressed(this ITextureCubemapArray texture, int level, int faceIndex, IntPtr data, int compressedSize, IBuffer pixelUnpackBuffer = null)
 {
     texture.SetDataCompressed(level, 0, 0, faceIndex, texture.CalculateMipWidth(level), texture.CalculateMipHeight(level), 1, data, compressedSize, pixelUnpackBuffer);
 }
Beispiel #6
0
 public static void SetData(this ITextureCubemapArray texture, int level, int faceIndex, IntPtr data, FormatColor format, FormatType type, IBuffer pixelUnpackBuffer = null)
 {
     texture.SetData(level, 0, 0, faceIndex, texture.CalculateMipWidth(level), texture.CalculateMipHeight(level), 1, data, format, type, pixelUnpackBuffer);
 }