static void CreateRenderTarget(MyRenderTargets renderTarget, int width, int height, Format preferredFormat, Usage usage = Usage.RenderTarget, bool mipmaps = true)
        {
            try
            {
                //  Dispose render target - this happens e.g. after video resolution change
                DisposeRenderTarget(renderTarget);
                if (width <= 0 || height <= 0) // may happen when creatting in load content
                {
                    return;
                }

                //  Create new render target, no anti-aliasing
                m_renderTargets[(int)renderTarget]           = new Texture(GraphicsDevice, width, height, mipmaps ? 0 : 1, usage, preferredFormat, Pool.Default);
                m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            }
            catch (Exception e)
            {
                string formatStr = "Creating render target failed, target: {0}({1}), width: {2}, height: {3}, format: {4}, usage: {5}, mipmaps: {6}";
                string str       = String.Format(formatStr, renderTarget, (int)renderTarget, width, height, preferredFormat, usage, mipmaps);

                if (m_adaptersList[m_settings.AdapterOrdinal].DeviceName.Contains("Microsoft Basic Display Adapter"))
                {
                    throw new MyRenderException(str, MyRenderExceptionEnum.DriverNotInstalled);
                }
                else
                {
                    throw new MyRenderException(str, MyRenderExceptionEnum.GpuNotSupported);
                }

                //throw new ApplicationException(str, e);
            }
        }
 static void DisposeRenderTarget(MyRenderTargets renderTarget)
 {
     if (m_renderTargets[(int)renderTarget] != null)
     {
         m_renderTargets[(int)renderTarget].Dispose();
         m_renderTargets[(int)renderTarget] = null;
     }
 }
        static void CreateRenderTargetCube(MyRenderTargets renderTarget, int size, Format surfaceFormat)
        {
            DisposeRenderTarget(renderTarget);
            if (size <= 0)
            {
                return;
            }

            m_renderTargets[(int)renderTarget]           = new CubeTexture(GraphicsDevice, size, 0, Usage.RenderTarget | Usage.AutoGenerateMipMap, surfaceFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
        }
Esempio n. 4
0
        static void CreateRenderTarget(MyRenderTargets renderTarget, int width, int height, Format preferredFormat, Usage usage = Usage.RenderTarget /*| Usage.AutoGenerateMipMap*/)
        {
            //  Dispose render target - this happens e.g. after video resolution change
            DisposeRenderTarget(renderTarget);
            if (width <= 0 || height <= 0) // may happen when creatting in load content
            {
                return;
            }

            //  Create new render target, no anti-aliasing
            m_renderTargets[(int)renderTarget]           = new Texture(m_device, width, height, 0, usage, preferredFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            m_renderTargets[(int)renderTarget].Tag       = new Vector2(width, height);
        }
Esempio n. 5
0
        static void CreateRenderTargetCube(MyRenderTargets renderTarget, int size, Format surfaceFormat)
        {
            MyMwcLog.WriteLine("MyRender.CreateRenderTargetCube - START");

            DisposeRenderTarget(renderTarget);
            if (size <= 0)
            {
                return;
            }

            m_renderTargets[(int)renderTarget]           = new CubeTexture(m_device, size, 0, Usage.RenderTarget, surfaceFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            m_renderTargets[(int)renderTarget].Tag       = new Vector2(size, size);

            MyMwcLog.WriteLine("MyRender.CreateRenderTargetCube - END");
        }
Esempio n. 6
0
        public MyShadowRenderer(int shadowMapSize, MyRenderTargets renderTarget, MyRenderTargets depthTarget, bool multiThreaded)
        {
            ShadowMapCascadeSize = shadowMapSize;
            m_shadowRenderTarget = renderTarget;
            m_shadowDepthTarget  = depthTarget;

            for (int i = 0; i < NumSplits; i++)
            {
                m_lightCameras[i] = new MyOrthographicCamera(1, 1, 1, 10);
                // Occ queries for shadows are disabled, so save memory by commenting this
                //m_occlusionQueriesLists[i] = new List<MyOcclusionQueryIssue>(1024);
                m_cascadeQueries[i] = new MyOcclusionQueryIssue(null);
                m_visibility[i]     = true;
            }

            MultiThreaded = multiThreaded;
        }
 internal static CubeTexture GetRenderTargetCube(MyRenderTargets renderTarget)
 {
     return (CubeTexture)m_renderTargets[(int)renderTarget];
 }
 internal static Texture GetRenderTarget(MyRenderTargets renderTarget)
 {
     return (Texture)m_renderTargets[(int)renderTarget];
 }
 static void DisposeRenderTarget(MyRenderTargets renderTarget)
 {
     if (m_renderTargets[(int)renderTarget] != null)
     {
         m_renderTargets[(int)renderTarget].Dispose();
         m_renderTargets[(int)renderTarget] = null;
     }
 }
Esempio n. 10
0
        static void CreateRenderTarget(MyRenderTargets renderTarget, int width, int height, Format preferredFormat, Usage usage = Usage.RenderTarget /*| Usage.AutoGenerateMipMap*/)
        {
            //  Dispose render target - this happens e.g. after video resolution change
            DisposeRenderTarget(renderTarget);
            if (width <= 0 || height <= 0) // may happen when creatting in load content
                return;

            //  Create new render target, no anti-aliasing
            m_renderTargets[(int)renderTarget] = new Texture(m_device, width, height, 0, usage, preferredFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            m_renderTargets[(int)renderTarget].Tag = new Vector2(width, height);
        }
        static void CreateRenderTargetCube(MyRenderTargets renderTarget, int size, Format surfaceFormat)
        {
            DisposeRenderTarget(renderTarget);
            if (size <= 0)
            {
                return;
            }

            m_renderTargets[(int)renderTarget] = new CubeTexture(GraphicsDevice, size, 0, Usage.RenderTarget | Usage.AutoGenerateMipMap, surfaceFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
        }
        /// <summary>
        /// Creates the renderer
        /// </summary>
        /// <param name="graphicsDevice">The GraphicsDevice to use for rendering</param>
        /// <param name="contentManager">The MyCustomContentManager to use for loading content</param>
        public MyShadowRenderer(int shadowMapSize, MyRenderTargets renderTarget, MyRenderTargets depthTarget, bool multiThreaded)
        {
            ShadowMapCascadeSize = shadowMapSize;
            m_shadowRenderTarget = renderTarget;
            m_shadowDepthTarget = depthTarget;

            for (int i = 0; i < NumSplits; i++)
            {
                m_lightCameras[i] = new MyOrthographicCamera(1, 1, 1, 10);
                // Occ queries for shadows are disabled, so save memory by commenting this
                //m_occlusionQueriesLists[i] = new List<MyOcclusionQueryIssue>(1024);
                m_cascadeQueries[i] = new MyOcclusionQueryIssue(null);
                m_visibility[i] = true;
            }

            MultiThreaded = multiThreaded;
        }
Esempio n. 13
0
 public static void TakeScreenshot(MyRenderTargets rt)
 {
     TakeScreenshot(GetRenderTarget(rt), rt.ToString());
 }
Esempio n. 14
0
 internal static Texture GetRenderTarget(MyRenderTargets renderTarget)
 {
     return((Texture)m_renderTargets[(int)renderTarget]);
 }
        static void CreateRenderTarget(MyRenderTargets renderTarget, int width, int height, Format preferredFormat, Usage usage = Usage.RenderTarget, bool mipmaps = true)
        {
            try
            {
                //  Dispose render target - this happens e.g. after video resolution change
                DisposeRenderTarget(renderTarget);
                if (width <= 0 || height <= 0) // may happen when creatting in load content
                    return;

                //  Create new render target, no anti-aliasing
                m_renderTargets[(int)renderTarget] = new Texture(GraphicsDevice, width, height, mipmaps ? 0 : 1, usage, preferredFormat, Pool.Default);
                m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            }
            catch (Exception e)
            {
                string formatStr = "Creating render target failed, target: {0}({1}), width: {2}, height: {3}, format: {4}, usage: {5}, mipmaps: {6}";
                string str = String.Format(formatStr, renderTarget, (int)renderTarget, width, height, preferredFormat, usage, mipmaps);

                if(m_adaptersList[m_settings.AdapterOrdinal].DeviceName.Contains("Microsoft Basic Display Adapter"))
                {
                    throw new MyRenderException(str, MyRenderExceptionEnum.DriverNotInstalled);
                }
                else
                {
                    throw new MyRenderException(str, MyRenderExceptionEnum.GpuNotSupported);
                }
                
                //throw new ApplicationException(str, e);
            }
        }
Esempio n. 16
0
 internal static CubeTexture GetRenderTargetCube(MyRenderTargets renderTarget)
 {
     return((CubeTexture)m_renderTargets[(int)renderTarget]);
 }
Esempio n. 17
0
        static void CreateRenderTargetCube(MyRenderTargets renderTarget, int size, Format surfaceFormat)
        {
            MyMwcLog.WriteLine("MyRender.CreateRenderTargetCube - START");

            DisposeRenderTarget(renderTarget);
            if (size <= 0)
            {
                return;
            }

            m_renderTargets[(int)renderTarget] = new CubeTexture(m_device, size, 0, Usage.RenderTarget, surfaceFormat, Pool.Default);
            m_renderTargets[(int)renderTarget].DebugName = renderTarget.ToString();
            m_renderTargets[(int)renderTarget].Tag = new Vector2(size, size);

            MyMwcLog.WriteLine("MyRender.CreateRenderTargetCube - END");
        }