示例#1
0
        private Mogre.Image SystemtoMogreImage(System.Drawing.Image image)
        {
            Stream oStream = new MemoryStream();

            image.Save(oStream, System.Drawing.Imaging.ImageFormat.Png);

            /* Back to the start of the stream */
            oStream.Position = 0;

            /* read all the stream in a buffer */
            BinaryReader oBinaryReader = new BinaryReader(oStream);

            byte[] pBuffer = oBinaryReader.ReadBytes((int)oBinaryReader.BaseStream.Length);
            oStream.Close(); /*No more needed */

            Mogre.Image oMogreImage = new Mogre.Image();

            unsafe
            {
                System.Runtime.InteropServices.GCHandle handle = System.Runtime.InteropServices.GCHandle.Alloc(pBuffer, System.Runtime.InteropServices.GCHandleType.Pinned);
                byte *pUnsafeByte   = (byte *)handle.AddrOfPinnedObject();
                void *pUnsafeBuffer = (void *)handle.AddrOfPinnedObject();

                MemoryDataStream oMemoryStream  = new MemoryDataStream(pUnsafeBuffer, (uint)pBuffer.Length);
                DataStreamPtr    oPtrDataStream = new DataStreamPtr(oMemoryStream);
                oMogreImage = oMogreImage.Load(oPtrDataStream, "png");
                handle.Free();
            }

            return(oMogreImage);
        }
示例#2
0
 public bool Load(DataStreamPtr reader)
 {
     index[0] = MBOgreUtil.LoadInt32(reader);
     index[1] = MBOgreUtil.LoadInt32(reader);
     index[2] = MBOgreUtil.LoadInt32(reader);
     return(true);
 }
示例#3
0
        public static unsafe string LoadStringMaybe(DataStreamPtr reader, string ifnot)
        {
            byte[] bytes = new byte[1];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 1);
            }

            byte b = bytes[0];

            bytes = new byte[3];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 3);
            }

            if (b < 99 && b > 0)
            {
                bytes = new byte[b];
                fixed(byte *buff = bytes)
                {
                    reader.Read(buff, b);
                }

                string str = Encoding.UTF8.GetString(bytes);
                return(str);
            }
            else
            {
                uint pos = reader.Tell();
                pos = pos - 4;
                reader.Seek(pos);
                return(ifnot);
            }
        }
示例#4
0
 public void Load(DataStreamPtr reader)
 {
     map     = MBOgreUtil.LoadInt32(reader);
     colorOp = MBOgreUtil.LoadUInt32(reader);
     alphaOp = MBOgreUtil.LoadUInt32(reader);
     flags   = MBOgreUtil.LoadUInt32(reader);
 }
示例#5
0
 public void Load(DataStreamPtr reader)
 {
     if (globalVersion == 0)
     {
         index  = MBOgreUtil.LoadInt32(reader);
         col    = MBOgreUtil.LoadUInt32(reader);              // color x vert! as 4 bytes AABBGGRR
         __norm = MBOgreUtil.LoadPoint3F(reader);
         ta     = MBOgreUtil.LoadPoint2F(reader);
         ta.Y   = 1 - ta.Y;
         tb     = MBOgreUtil.LoadPoint2F(reader);
         tb.Y   = 1 - tb.Y;
     }
     else if (globalVersion == 1)
     {
         index  = MBOgreUtil.LoadInt32(reader);
         col    = MBOgreUtil.LoadUInt32(reader);              // color x vert! as 4 bytes AABBGGRR
         __norm = MBOgreUtil.LoadPoint3F(reader);
         tang   = MBOgreUtil.LoadPoint3F(reader);
         tangi  = MBOgreUtil.LoadByte(reader);
         ta     = MBOgreUtil.LoadPoint2F(reader);
         ta.Y   = 1 - ta.Y;
         tb     = ta;
     }
     else if (globalVersion == 2)
     {
         index  = MBOgreUtil.LoadInt32(reader);
         col    = MBOgreUtil.LoadUInt32(reader);              // color x vert! as 4 bytes AABBGGRR
         __norm = MBOgreUtil.LoadPoint3F(reader);
         ta     = MBOgreUtil.LoadPoint2F(reader);
         ta.Y   = 1 - ta.Y;
         tb     = ta;
     }
 }
示例#6
0
 public DataStreamPtr(DataStreamPtr r) : this(OgrePINVOKE.new_DataStreamPtr__SWIG_2(DataStreamPtr.getCPtr(r)), true)
 {
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#7
0
        public void Load(DataStreamPtr reader)
        {
            name      = MBOgreUtil.LoadString(reader);
            flags     = MBOgreUtil.LoadUInt32(reader);
            requires  = MBOgreUtil.LoadUInt32(reader);
            technique = MBOgreUtil.LoadString(reader);
            uint k = MBOgreUtil.LoadUInt32(reader);

            if (k <= 1)
            {
                if (k == 1)
                {
                    fallback = MBOgreUtil.LoadString(reader);
                }
                else
                {
                    fallback = null;
                }
            }
            k   = MBOgreUtil.LoadUInt32(reader);
            opt = new List <MBBrfShaderOpt>();
            for (int i = 0; i < k; i++)
            {
                MBBrfShaderOpt o = new MBBrfShaderOpt();
                o.Load(reader);
                opt.Add(o);
            }
        }
示例#8
0
        public void Load(DataStreamPtr reader)
        {
            name = MBOgreUtil.LoadString(reader);
            List <TmpBone4> tmpBone4v = new List <TmpBone4>();
            uint            k         = MBOgreUtil.LoadUInt32(reader);

            for (int i = 0; i < k; i++)
            {
                TmpBone4 tmpBone = new TmpBone4();
                tmpBone.Load(reader);
                tmpBone4v.Add(tmpBone);
            }
            nbones = (int)k;

            List <TmpCas3F> tmpCas3f = new List <TmpCas3F>();

            k = MBOgreUtil.LoadUInt32(reader);
            for (int i = 0; i < k; i++)
            {
                TmpCas3F tmpcas3 = new TmpCas3F();
                tmpcas3.Load(reader);
                tmpCas3f.Add(tmpcas3);
            }

            MBUtil.TmpBone2BrfFrame(tmpBone4v, tmpCas3f, out frames);
        }
 public MemoryDataStream(string name, DataStreamPtr sourceStream) : this(OgrePINVOKE.new_MemoryDataStream__SWIG_11(name, DataStreamPtr.getCPtr(sourceStream)), true)
 {
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#10
0
 public MemoryDataStream(DataStreamPtr sourceStream, bool freeOnClose, bool readOnly) : this(OgrePINVOKE.new_MemoryDataStream__SWIG_6(DataStreamPtr.getCPtr(sourceStream), freeOnClose, readOnly), true)
 {
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#11
0
        public static unsafe string LoadString(DataStreamPtr reader)
        {
            byte[] bytes = new byte[1];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 1);
            }

            byte b = bytes[0];

            bytes = new byte[3];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 3);
            }

            bytes = new byte[b];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, b);
            }

            string str = Encoding.UTF8.GetString(bytes);

            return(str);
        }
示例#12
0
 public void importNamedConstants(DataStreamPtr stream, GpuNamedConstants pDest)
 {
     OgrePINVOKE.GpuNamedConstantsSerializer_importNamedConstants(swigCPtr, DataStreamPtr.getCPtr(stream), GpuNamedConstants.getCPtr(pDest));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#13
0
 public void exportNamedConstants(GpuNamedConstants pConsts, DataStreamPtr stream)
 {
     OgrePINVOKE.GpuNamedConstantsSerializer_exportNamedConstants__SWIG_3(swigCPtr, GpuNamedConstants.getCPtr(pConsts), DataStreamPtr.getCPtr(stream));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#14
0
 public void loadRawData(DataStreamPtr stream, ushort uWidth, ushort uHeight, PixelFormat eFormat)
 {
     OgrePINVOKE.TexturePtr_loadRawData(swigCPtr, DataStreamPtr.getCPtr(stream), uWidth, uHeight, (int)eFormat);
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#15
0
 public void importMesh(DataStreamPtr stream, Mesh pDest)
 {
     OgrePINVOKE.MeshSerializer_importMesh(swigCPtr, DataStreamPtr.getCPtr(stream), Mesh.getCPtr(pDest));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#16
0
 public virtual void parseScript(DataStreamPtr stream, string groupName)
 {
     OgrePINVOKE.ScriptLoader_parseScript(swigCPtr, DataStreamPtr.getCPtr(stream), groupName);
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
        public override void Execute(params object[] executeArgs)
        {
            string        campaignFileName = getVariableValue(commandArgs[0]).ToString();
            DataStreamPtr dataStream       = ResourceGroupManager.Singleton.OpenResource(campaignFileName, ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME);
            string        dataString       = dataStream.AsString;

            CampaignManager.Instance.InitCampaignList(dataString);
        }
示例#18
0
        public static PointF LoadPoint2F(DataStreamPtr reader)
        {
            PointF vect = new PointF();

            vect.X = LoadFloat(reader);
            vect.Y = LoadFloat(reader);
            return(vect);
        }
示例#19
0
 public void exportMesh(Mesh pMesh, DataStreamPtr stream)
 {
     OgrePINVOKE.MeshSerializer_exportMesh__SWIG_5(swigCPtr, Mesh.getCPtr(pMesh), DataStreamPtr.getCPtr(stream));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#20
0
 public void load(DataStreamPtr stream)
 {
     OgrePINVOKE.GpuNamedConstants_load(swigCPtr, DataStreamPtr.getCPtr(stream));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#21
0
 public void loadMicrocodeCache(DataStreamPtr stream)
 {
     OgrePINVOKE.GpuProgramManager_loadMicrocodeCache(swigCPtr, DataStreamPtr.getCPtr(stream));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
 public override void parseScript(DataStreamPtr stream, string groupName)
 {
     OgrePINVOKE.ParticleSystemManager_parseScript(swigCPtr, DataStreamPtr.getCPtr(stream), groupName);
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#23
0
 public void exportMesh(Mesh pMesh, DataStreamPtr stream, MeshVersion version, Serializer.Endian endianMode)
 {
     OgrePINVOKE.MeshSerializer_exportMesh__SWIG_6(swigCPtr, Mesh.getCPtr(pMesh), DataStreamPtr.getCPtr(stream), (int)version, (int)endianMode);
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#24
0
        public static Point3F LoadPoint3F(DataStreamPtr reader)
        {
            Point3F vect = new Point3F();

            vect.x = LoadFloat(reader);
            vect.y = LoadFloat(reader);
            vect.z = LoadFloat(reader);
            return(vect);
        }
        public DataStreamPtr openResource(string resourceName, string groupName)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.ResourceGroupManager_openResource__SWIG_2(swigCPtr, resourceName, groupName), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
        public DataStreamPtr createResource(string filename, string groupName, bool overwrite, string locationPattern)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.ResourceGroupManager_createResource__SWIG_0(swigCPtr, filename, groupName, overwrite, locationPattern), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
示例#27
0
        public virtual DataStreamPtr encode(MemoryDataStreamPtr input, SWIGTYPE_p_Ogre__SharedPtrT_Ogre__Codec__CodecData_t pData)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.Codec_encode(swigCPtr, MemoryDataStreamPtr.getCPtr(input), SWIGTYPE_p_Ogre__SharedPtrT_Ogre__Codec__CodecData_t.getCPtr(pData)), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
        public DataStreamPtr createResource(string filename)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.ResourceGroupManager_createResource__SWIG_3(swigCPtr, filename), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
示例#29
0
        public virtual DataStreamPtr open(string filename, bool readOnly)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.Archive_open__SWIG_0(swigCPtr, filename, readOnly), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
示例#30
0
        public virtual DataStreamPtr create(string filename)
        {
            DataStreamPtr ret = new DataStreamPtr(OgrePINVOKE.Archive_create(swigCPtr, filename), true);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
            public override void LoadResource(Resource resource)
            {
                string pathAbs = ThingPath.path_cache + resource.Name;
                FileStream fs = new FileStream(pathAbs, FileMode.Open);
                DataStreamPtr stream = new DataStreamPtr(new ManagedDataStream(fs));
                //Mesh m = new Mesh(resource.Creator, resource.Name, 1234L, "");
                new MeshSerializer().ImportMesh(stream, (Mesh)resource);

                stream.Close();
                fs.Close();
                // resource = m;
            }
示例#32
0
 public int Add(string pathRelFile)
 {
     string pathAbsImg = path_cache + pathRelFile;
     Mogre.Image image = new Mogre.Image();
     FileStream fs = new FileStream(pathAbsImg, FileMode.Open);
     DataStreamPtr fs2 = new DataStreamPtr(new ManagedDataStream(fs));
     image.Load(fs2);
     TexturePtr texturePtr = TextureManager.Singleton.LoadImage(pathRelFile, ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME, image);
     fs2.Close();
     fs.Close();
     lock (allTextures)
     {
         return allTextures.Add(texturePtr);
     }
 }
示例#33
0
 //public unsafe void Replace3(Mogre.Image image, string textureName)
 //{
 //    if (this.IndexOf(textureName) < 0) throw new ArgumentException("The texture \"" + textureName + "\"doesn't exist");
 //    TexturePtr pTexture = this[textureName];
 //    HardwarePixelBufferSharedPtr texBuffer = pTexture.GetBuffer();
 //    texBuffer.Lock(HardwareBuffer.LockOptions.HBL_DISCARD);
 //    PixelBox pb = texBuffer.CurrentLock;
 //    PixelBox imagBox = image.GetPixelBox();
 //    imagBox.data
 //    Marshal.Copy(bytes, 0, pb.data, bytes.Length);
 //    texBuffer.Unlock();
 //    texBuffer.Dispose();
 //}
 public byte[] ConvertImageToRgbValues(byte[] inBytes)
 {
     Mogre.Image image = new Mogre.Image();
     MemoryStream ms = new MemoryStream(inBytes);
     DataStreamPtr fs2 = new DataStreamPtr(new ManagedDataStream(ms));
     image.Load(fs2);
     PixelBox imagBox = image.GetPixelBox();
     uint bytes = imagBox.GetConsecutiveSize();
     byte[] rgbValues = new byte[bytes];
     Marshal.Copy(imagBox.data, rgbValues, 0, (int)bytes);
     image.Dispose();
     fs2.Close();
     ms.Close();
     return rgbValues;
 }
示例#34
0
 public void Replace(byte[] bytes, string textureName)
 {
     if (this.IndexOf(textureName) < 0) throw new ArgumentException("The texture \"" + textureName + "\"doesn't exist");
     Mogre.Image image = new Mogre.Image();
     MemoryStream ms = new MemoryStream(bytes);
     DataStreamPtr fs2 = new DataStreamPtr(new ManagedDataStream(ms));
     image.Load(fs2);
     PixelBox imagBox = image.GetPixelBox();
     TexturePtr pTexture = this[textureName];
     TextureManager lTextureManager = TextureManager.Singleton;
     HardwarePixelBuffer buffer = pTexture.GetBuffer();
     unsafe
     {
         buffer.BlitFromMemory(imagBox);
     }
     image.Dispose();
     fs2.Close();
     ms.Close();
 }