Ejemplo n.º 1
0
        public static void ImgLoadImage(string filepathname, int flipVertical, out demoImage image)
        {
            UIImage imageClass = new UIImage(filepathname);
            CGImage cgImage    = imageClass.CGImage;

            if (cgImage == null)
            {
                image = null;
                return;
            }

            image             = new demoImage();
            image.width       = imageClass.Size.Width;
            image.height      = imageClass.Size.Height;
            image.rowByteSize = (int)image.width * 4;
            image.data        = new byte[(int)(image.height * image.rowByteSize)];
            image.format      = PixelFormat.Rgba;
            image.type        = PixelType.UnsignedByte;
            CGContext context = new CGBitmapContext(image.data, (nint)image.width, (nint)image.height, 8,
                                                    image.rowByteSize, cgImage.ColorSpace, (CGImageAlphaInfo)(CGBitmapFlags.AlphaInfoMask &
                                                                                                              CGBitmapFlags.NoneSkipLast));

            context.SetBlendMode(CGBlendMode.Copy);
            if (flipVertical != 0)
            {
                context.TranslateCTM(0f, image.height);
                context.ScaleCTM(1f, -1f);
            }
            context.DrawImage(new CGRect(0, 0, image.width, image.height), cgImage);
            if (image.data == null)
            {
                ImgDestroyImage(ref image);
            }
        }
Ejemplo n.º 2
0
        internal static int BuildTexture(demoImage image)
        {
            int texName = 0;

            // Create a texture object to apply to model
            unsafe  {
                GL.GenTextures(1, &texName);
                GL.BindTexture(TextureTarget.Texture2D, texName);

                // Set up filter and wrap modes for this texture object
                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (float)All.Nearest);


                // Allocate and load image data into texture
                GL.TexImage2D(TextureTarget.Texture2D, 0, (PixelInternalFormat)image.format,
                              (int)image.width, (int)image.height, 0,
                              image.format, image.type, Marshal.UnsafeAddrOfPinnedArrayElement(image.data, 0));
                RenderUtils.CheckGLError();
            }

            return(texName);
        }
Ejemplo n.º 3
0
 public static void ImgDestroyImage(ref demoImage image)
 {
     image = null;
 }