Beispiel #1
0
//		Primitive						m_Prim_Cube;

        public ViewerForm(ArkaneService.BImage _Image)
        {
            InitializeComponent();

//TransparencyKey = SystemColors.Control;

            // Setup device
            m_device = new Device();
            m_device.Init(Handle, false, true);

            m_CB_Global = new ConstantBuffer <CB_Global>(m_device, 0);

            // Create shaders
            m_shader_Render2D = new Shader(m_device, new System.IO.FileInfo(@"./Shaders/Render2D.hlsl"), VERTEX_FORMAT.Pt4, "VS", null, "PS", null);

            // Create the texture
            try {
                if (_Image.m_opts.m_type == ArkaneService.BImage.ImageOptions.TYPE.TT_2D)
                {
                    m_Tex2D = _Image.CreateTexture2D(m_device);

                    m_CB_Global.m.m_ImageWidth  = (uint)m_Tex2D.Width;
                    m_CB_Global.m.m_ImageHeight = (uint)m_Tex2D.Height;
                    m_CB_Global.m.m_ImageDepth  = (uint)m_Tex2D.ArraySize;
                    m_CB_Global.m.m_ImageType   = 0;

                    integerTrackbarControlMipLevel.RangeMax        = (int)m_Tex2D.MipLevelsCount;
                    integerTrackbarControlMipLevel.VisibleRangeMax = (int)m_Tex2D.MipLevelsCount;
                }
                else if (_Image.m_opts.m_type == ArkaneService.BImage.ImageOptions.TYPE.TT_CUBIC)
                {
                    m_TexCube = _Image.CreateTextureCube(m_device);

                    m_CB_Global.m.m_ImageWidth  = (uint)m_TexCube.Width;
                    m_CB_Global.m.m_ImageHeight = (uint)m_TexCube.Height;
                    m_CB_Global.m.m_ImageDepth  = (uint)m_TexCube.ArraySize;
                    m_CB_Global.m.m_ImageType   = 1;

                    integerTrackbarControlMipLevel.RangeMax        = (int)m_TexCube.MipLevelsCount;
                    integerTrackbarControlMipLevel.VisibleRangeMax = (int)m_TexCube.MipLevelsCount;
                }
                else if (_Image.m_opts.m_type == ArkaneService.BImage.ImageOptions.TYPE.TT_3D)
                {
                    m_Tex3D = _Image.CreateTexture3D(m_device);
                }

                // Enable EV manipulation for HDR images
                bool showExposure = _Image.m_opts.m_format.m_type == ArkaneService.BImage.PixelFormat.Type.FLOAT;
                labelEV.Visible = showExposure;
                floatTrackbarControlEV.Visible = showExposure;
            } catch (Exception _e) {
                MessageBox.Show(this, "Failed to create a valid texture from the image:\r\n\r\n" + _e.Message, "BImage Viewer", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            Application.Idle += new EventHandler(Application_Idle);
        }
Beispiel #2
0
        static void Main(string[] _args)
        {
//_args = new string[] { @"..\..\..\Arkane\BImages\stainedglass2_area.bimage7" };
//_args = new string[] { @"..\..\..\Arkane\CubeMaps\dust_return\pr_obe_1127_cube_BC6H_UF16.bimage" };
//_args = new string[] { @"D:\Workspaces\Arkane\Dishonored2\Dishonored2\base\editors\arkane\preview\cubemaps\exterior.bimage" };


            TestResourcesIndex();


            if (_args.Length != 1)
            {
                MessageBox.Show("Missing filename argument! Can't open unspecified file...", "BImage Viewer");
                return;
            }

            System.IO.FileInfo imageFileName = new System.IO.FileInfo(_args[0]);
            if (!imageFileName.Exists)
            {
                MessageBox.Show("Specified image name \"" + _args[1] + "\" not found on disk!", "BImage Viewer");
                return;
            }

            ArkaneService.BImage Image = null;
            try {
                using (System.IO.FileStream S = imageFileName.OpenRead())
                    using (System.IO.BinaryReader R = new System.IO.BinaryReader(S)) {
                        Image = new ArkaneService.BImage(R, imageFileName, true);
                    }
            } catch (Exception _e) {
                MessageBox.Show("An error occurred while loading bimage \"" + imageFileName.FullName + "\":\r\n\r\n" + _e.Message, "BImage Viewer");
                return;
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new ViewerForm(Image));
        }