Beispiel #1
0
 public ximg(ShaderResourceTexture T)
 {
     Prop = new bCAccessorPropertyObject(new eCImageResource2());
     header = new ximgHeader();
     Prop.Properties.addProperty("Width", "int", T.Width);
     Prop.Properties.addProperty("Height", "int", T.Height);
     Prop.Properties.addProperty("SkipMips", "long", 0);
     Prop.Properties.addProperty("PixelFormat", "bTPropertyContainer<enum eCGfxShared::eEColorFormat>", eCImageResource2_eCGfxShared_eEColorFormat.eEColorFormat_DXT1);
     System.IO.MemoryStream M = new System.IO.MemoryStream(T.Width * T.Height);
     M.Position = 0;
     SlimDX.Result r = SlimDX.Direct3D11.Texture2D.ToStream(T.Device.Context, T.Texture, SlimDX.Direct3D11.ImageFileFormat.Dds, M);
     long l = M.Position;
     M.Position = 0;
     tgaData = M.ReadBytes((int)l);
     M.Dispose();
 }
Beispiel #2
0
        public Material LoadMaterial(EFile _File, API_Device D)
        {
            if (_File.IsOpenable)
            {
                ShaderResourceTexture T = null;
                if (_File.Name == "Nat_Stone_Rock_01_Diffuse_01_Specular._xmat")
                    T = new ShaderResourceTexture("Nat_Stone_Rock_01_Diffuse_01._ximg", D);
                else if (_File.Name == "Special_Water_Swamp_01_Diffuse_01._xmat")
                    T = new ShaderResourceTexture("Special_Water_Caustics_01_Diffuse_01._ximg", D);
                else
                {
                    XmatWrapper W = new XmatWrapper(_File);

                    bCGuid src_Diffuse = (W.Mat.dataObj.Class as eCShaderDefault).ColorSrcDiffuse.Token;
                    bCGuid src_Normal = (W.Mat.dataObj.Class as eCShaderDefault).ColorSrcNormal.Token;
                    bCGuid src_Specular = (W.Mat.dataObj.Class as eCShaderDefault).ColorSrcSpecular.Token;
                    if (src_Diffuse.IsValid)
                    {
                        eCShaderDefault shader = (W.Mat.dataObj.Class as eCShaderDefault);
                        eCShaderEllementBase ellement = shader.GetEllementByGuid(shader.ColorSrcDiffuse.Token);
                        if (ellement is subClassBase)
                            T = (ellement as subClassBase).CreateTexture(D);
                    }
                    if (T == null)
                        T = ShaderResourceTexture.WhiteTexture;
                }
                return new Material(T);
            }
            else
            {
                return new Material("42", true, D);
            }
        }
 public void Init(API_Device D)
 {
     this.OwnerDraw = true;
     this.LargeImageList = this.SmallImageList = new ImageList();
     this.LargeImageList.ImageSize = new Size(22, 22);
     this.LargeImageList.Images.Add(new Bitmap(this.LargeImageList.ImageSize.Width, this.LargeImageList.ImageSize.Height));
     if (main != null)
         return;
     FileManager.g_pApp.PauseRendering();
     GameLibrary.ShaderResourceTexture mT = new ShaderResourceTexture("GUI_IconSets01._ximg", D);
     System.IO.Stream S = new System.IO.MemoryStream();
     SlimDX.Direct3D11.Texture2D.ToStream(D.Context, mT.Texture, SlimDX.Direct3D11.ImageFileFormat.Jpg, S);
     FileManager.g_pApp.ResumeRendering();
     main = new Bitmap(S);
     mT.Dispose();
     S.Dispose();
 }
Beispiel #4
0
 internal void createImageViewer(ShaderResourceTexture srt)
 {
     if ((iw != null) && (!iw.closed))
     {
         iw.Texture = srt;
         if (iw.WindowState == FormWindowState.Minimized)
             iw.WindowState = FormWindowState.Normal;
     }
     else
     {
         iw = new ImageViewer(this, m_pApp.m_pPost);
         iw.Texture = srt;
     }
 }
        static string ConvertImage(string a_OriginalImage, DirectoryInfo a_Dir)
        {
            if (!a_OriginalImage.EndsWith("._ximg"))
            {
                FileInfo FI = null;
                if (File.Exists(a_Dir.FullName + "/" + a_OriginalImage))
                    FI = new FileInfo(a_Dir.FullName + "/" + a_OriginalImage);
                else if (File.Exists(MainFolder + "/" + a_OriginalImage))
                    FI = new FileInfo(MainFolder + "/" + a_OriginalImage);

                if (FI != null && FI.Exists)
                {
                    string s2 = FI.Name.Replace(FI.Extension, "");
                    string r = s2 + "._ximg";
                    EFile e = FileManager.CreateNewPhysicalFile(FileManager.NewFileType.Texture, r, false);
                    if (!e.IsOpenable)
                    {
                        ShaderResourceTexture T = new ShaderResourceTexture(FI.FullName, D);
                        ximg X = new ximg(T, new EFile(FI.FullName, new StdFileReader()));
                        eCFile Fi = eCFile.CreateNew(e);
                        Fi.Save(X);
                        Fi.Close();
                    }
                    return r;
                }
            }
            return a_OriginalImage;
        }
Beispiel #6
0
 public ShaderResourceTexture CreateTexture(API_Device D)
 {
     if(ColorModifier == eEShaderColorModifier.eEShaderColorModifier_Default)
         return (Operand as subClassBase).CreateTexture(D);
     ShaderResourceTexture src = (Operand as subClassBase).CreateTexture(D);
     ShaderResourceTexture R = new ShaderResourceTexture(src.Width, src.Height, 1, SlimDX.Direct3D11.ResourceUsage.Default, SlimDX.Direct3D11.BindFlags.ShaderResource, SlimDX.Direct3D11.CpuAccessFlags.None, SlimDX.DXGI.Format.B8G8R8A8_UNorm, 1, SlimDX.Direct3D11.ResourceOptionFlags.None, D);
     FileManager.e_MatEffect.Variables["sourceTex0"].SetVariable(src.ShaderResourceView);
     FileManager.e_MatEffect.Variables["dim"].SetVariable(new Vector2(R.Width, R.Height));
     bool all = ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_Default;
     bool rgb = ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_RGB;
     FileManager.e_MatEffect.Variables["r"].SetVariable(ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_R || all || rgb);
     FileManager.e_MatEffect.Variables["g"].SetVariable(ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_G || all || rgb);
     FileManager.e_MatEffect.Variables["b"].SetVariable(ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_B || all || rgb);
     FileManager.e_MatEffect.Variables["a"].SetVariable(ColorComponent == eEShaderColorSrcComponent.eEShaderColorSrcComponent_A || all);
     FileManager.e_MatEffect.Variables["op"].SetVariable((int)ColorModifier - 1);
     FileManager.g_pApp.PauseRendering();
     FileManager.r_MatTarget.SetTarget(ClearType.All);
     FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["blend"].Passes[0]);
     R.CopyFrom(FileManager.r_MatTarget, 0, 0, R.Width, 0, R.Height, 0, 0);
     FileManager.g_pApp.ResumeRendering();
     return R;
 }
Beispiel #7
0
 public override ShaderResourceTexture CreateTexture(API_Device D)
 {
     bCFloatColor q0 = (bCFloatColor)base.Container.Properties["Color"].Object;
     float al = (float)base.Container.Properties["Alpha"].Object;
     Color4 q = new Color4((Color3)q0);
     q.Alpha = al;
     ShaderResourceTexture s = new ShaderResourceTexture(q, D);
     return s;
 }
Beispiel #8
0
 public override ShaderResourceTexture CreateTexture(API_Device D)
 {
     return (Source0 as subClassBase).CreateTexture(D);
     eEColorSrcCombinerType q = (eEColorSrcCombinerType)base.Container.Properties["CombinerType"].Object;
     ShaderResourceTexture src0 = ColorSrc1.CreateTexture(D);
     ShaderResourceTexture src1 = ColorSrc2.CreateTexture(D);
     if (src0 == null || src1 == null)
         return src0 != null ? src0 : src1;
     ShaderResourceTexture R = new ShaderResourceTexture(Math.Max(src0.Width, src1.Width), Math.Max(src0.Height, src1.Height), 1, SlimDX.Direct3D11.ResourceUsage.Default, SlimDX.Direct3D11.BindFlags.ShaderResource, SlimDX.Direct3D11.CpuAccessFlags.None, SlimDX.DXGI.Format.B8G8R8A8_UNorm, 1, SlimDX.Direct3D11.ResourceOptionFlags.None, D);
     FileManager.e_MatEffect.Variables["sourceTex0"].SetVariable(src0.ShaderResourceView);
     FileManager.e_MatEffect.Variables["sourceTex1"].SetVariable(src1.ShaderResourceView);
     FileManager.e_MatEffect.Variables["dim"].SetVariable(new Vector2(R.Width, R.Height));
     FileManager.g_pApp.PauseRendering();
     FileManager.r_MatTarget.SetTarget(ClearType.All);
     switch (q)
     {
         case eEColorSrcCombinerType.eEColorSrcCombinerType_Add :
             FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Combiner_Add"].Passes[0]);
             break;
         case eEColorSrcCombinerType.eEColorSrcCombinerType_Subtract:
             FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Combiner_Sub"].Passes[0]);
             break;
         case eEColorSrcCombinerType.eEColorSrcCombinerType_Multiply:
             FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Combiner_Mul"].Passes[0]);
             break;
         case eEColorSrcCombinerType.eEColorSrcCombinerType_Max:
             FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Combiner_Max"].Passes[0]);
             break;
         case eEColorSrcCombinerType.eEColorSrcCombinerType_Min:
             FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Combiner_Min"].Passes[0]);
             break;
     }
     R.CopyFrom(FileManager.r_MatTarget, 0, 0, R.Width, 0, R.Height, 0, 0);
     FileManager.g_pApp.ResumeRendering();
     //src0.ToFile("src0.dds", SlimDX.Direct3D11.ImageFileFormat.Dds);
     //src1.ToFile("src1.dds", SlimDX.Direct3D11.ImageFileFormat.Dds);
     //R.ToFile("res.dds", SlimDX.Direct3D11.ImageFileFormat.Dds);
     return R;
 }
Beispiel #9
0
 public override ShaderResourceTexture CreateTexture(API_Device D)
 {
     return (ColorSrc1.Operand as subClassBase).CreateTexture(D);
     ShaderResourceTexture src0 = ColorSrc1.CreateTexture(D);
     ShaderResourceTexture src1 = ColorSrc1.CreateTexture(D);
     ShaderResourceTexture src2 = BlendSrc.CreateTexture(D);
     int w = Math.Max(Math.Max(src0.Width, src1.Width), src2.Width);
     int h = Math.Max(Math.Max(src0.Height, src1.Height), src2.Height);
     ShaderResourceTexture R = new ShaderResourceTexture(w, h, 1, SlimDX.Direct3D11.ResourceUsage.Default, SlimDX.Direct3D11.BindFlags.ShaderResource, SlimDX.Direct3D11.CpuAccessFlags.None, SlimDX.DXGI.Format.B8G8R8A8_UNorm, 1, SlimDX.Direct3D11.ResourceOptionFlags.None, D);
     FileManager.e_MatEffect.Variables["sourceTex0"].SetVariable(src0.ShaderResourceView);
     FileManager.e_MatEffect.Variables["sourceTex1"].SetVariable(src1.ShaderResourceView);
     FileManager.e_MatEffect.Variables["sourceTex2"].SetVariable(src2.ShaderResourceView);
     FileManager.e_MatEffect.Variables["dim"].SetVariable(new Vector2(w, h));
     FileManager.g_pApp.PauseRendering();
     FileManager.r_MatTarget.SetTarget(ClearType.All);
     FullScreenQuad.RenderQuad(FileManager.e_MatEffect.Techniques["Lerp"].Passes[0]);
     R.CopyFrom(FileManager.r_MatTarget, 0, 0, R.Width, 0, R.Height, 0, 0);
     FileManager.g_pApp.ResumeRendering();
     return R;
 }
Beispiel #10
0
        private void ImageViewer_DragDrop(object sender, DragEventArgs e)
        {
            string O = (e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop) as string[])[0];

            GameLibrary.IO.EFile f = FileManager.GetFile(O);
            this.Texture = new ShaderResourceTexture(xLoader.LoadTextureFromFile(f, this.Device), Device);
        }
Beispiel #11
0
 private void button2_Click(object sender, EventArgs e)
 {
     openFileDialog1.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
     DialogResult dr = openFileDialog1.ShowDialog();
     if (dr == System.Windows.Forms.DialogResult.Abort || dr == System.Windows.Forms.DialogResult.Cancel || dr == System.Windows.Forms.DialogResult.No || dr == System.Windows.Forms.DialogResult.None)
         return;
     string path = openFileDialog1.FileName;
     if (!System.IO.File.Exists(path))
         return;
     this.Texture = new ShaderResourceTexture(path, D);
 }
Beispiel #12
0
 public ConsolProcessor(Form1 F, UserConsole U)
     : base(F.Device)
 {
     m_pParent = F;
     SP = new SpriteBatch(F.Device);
     const int fSize = 13;
     lCount = (uint)(boxHeight / (fSize + 3)) - 1u;
     m_Rend = new GameLibrary.AdvTextRenderer(new Font("Arial", fSize), F.Device, Color.White, 4096);//extra strings = current line etc
     m_parent = U;
     m_pBoxTex = new ShaderResourceTexture(new Bitmap(1, 1), Device, System.Drawing.Imaging.ImageFormat.Bmp);//RisenEditor.Properties.Resources.console
     m_pRectTex = new ShaderResourceTexture(new Bitmap(1, 1), Device, System.Drawing.Imaging.ImageFormat.Bmp);//RisenEditor.Properties.Resources.conslRect
     SystemLog.OnAppend += new EventHandler<SystemLog.OnAppend_EventArgs>(SystemLog_OnAppend);
 }
Beispiel #13
0
 public ximg(ShaderResourceTexture T, EFile rawFile)
 {
     Prop = new bCAccessorPropertyObject(new eCImageResource2());
     header = new ximgHeader();
     Prop.Properties.addProperty("Width", "int", T.Width);
     Prop.Properties.addProperty("Height", "int", T.Height);
     Prop.Properties.addProperty("SkipMips", "long", 0);
     Prop.Properties.addProperty("PixelFormat", "bTPropertyContainer<enum eCGfxShared::eEColorFormat>", eCImageResource2_eCGfxShared_eEColorFormat.eEColorFormat_DXT1);
     var s = rawFile.Open(System.IO.FileAccess.Read);
     tgaData = s.GetAllBytes();
     rawFile.Close();
 }
Beispiel #14
0
        private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            EFile _F = FileManager.GetFile(e.Node.Text);
            if (!_F.IsDirectory && _F.IsOpenable)
            {
                if (_F.Name.EndsWith("._xmac") || _F.Name.EndsWith("._xmsh"))
                {
                    GameLibrary.Objekte.GraphicNode gn = DA.Device.Content.LoadModelFromFile(_F.Name, false);
                    DA.createModelViewer(gn);
                }
                else if (_F.Name.EndsWith("._ximg"))
                {
                    ShaderResourceTexture s = new ShaderResourceTexture(_F.Name, DA.Device);
                    DA.createImageViewer(s);
                }
                else if (_F.Name.EndsWith(".lrent"))
                {

                }
                else if (_F.Name.EndsWith(".sec"))
                {

                }
            }
        }